diff --git a/css/fieldmanager-options.css b/css/fieldmanager-options.css
index aed6a780f0..e72f8533f6 100644
--- a/css/fieldmanager-options.css
+++ b/css/fieldmanager-options.css
@@ -1,3 +1,3 @@
-.chzn-container-multi .chzn-choices .search-field input {
+.chosen-container-multi .chosen-choices .search-field input {
height: 21px !important;
}
\ No newline at end of file
diff --git a/css/fieldmanager.css b/css/fieldmanager.css
index aaa1353630..c9b370984e 100644
--- a/css/fieldmanager.css
+++ b/css/fieldmanager.css
@@ -278,9 +278,13 @@ div.fm-group-label-wrapper .fmjs-remove {
color: #333;
}
-.chzn-container-multi .chzn-choices .search-field input {
+/* Chosen.js overrides */
+.chosen-container-multi .chosen-choices .search-field input {
height: 21px !important;
}
+.chosen-search input {
+ min-width: 100%;
+ }
/* Grid editor CSS */
.grid-toggle-wrapper {
diff --git a/js/chosen/chosen-sprite.png b/js/chosen/chosen-sprite.png
index 113dc9885a..c57da70b4b 100644
Binary files a/js/chosen/chosen-sprite.png and b/js/chosen/chosen-sprite.png differ
diff --git a/js/chosen/chosen-sprite@2x.png b/js/chosen/chosen-sprite@2x.png
new file mode 100644
index 0000000000..6b50545202
Binary files /dev/null and b/js/chosen/chosen-sprite@2x.png differ
diff --git a/js/chosen/chosen.css b/js/chosen/chosen.css
index 7895721de3..d4219b4916 100644
--- a/js/chosen/chosen.css
+++ b/js/chosen/chosen.css
@@ -1,397 +1,490 @@
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.8.2
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011-2017 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 */
-.chzn-container {
- font-size: 13px;
+.chosen-container {
position: relative;
display: inline-block;
- zoom: 1;
- *display: inline;
+ vertical-align: middle;
+ font-size: 13px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
}
-.chzn-container .chzn-drop {
- background: #fff;
- border: 1px solid #aaa;
- border-top: 0;
+
+.chosen-container * {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+}
+
+.chosen-container .chosen-drop {
position: absolute;
- top: 29px;
- left: 0;
- -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
- -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
- box-shadow : 0 4px 5px rgba(0,0,0,.15);
+ top: 100%;
z-index: 1010;
+ width: 100%;
+ border: 1px solid #aaa;
+ border-top: 0;
+ background: #fff;
+ -webkit-box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
+ box-shadow: 0 4px 5px rgba(0, 0, 0, 0.15);
+ clip: rect(0, 0, 0, 0);
}
-/* @end */
-/* @group Single Chosen */
-.chzn-container-single .chzn-single {
- background-color: #ffffff;
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
- background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #ffffff), color-stop(50%, #f6f6f6), color-stop(52%, #eeeeee), color-stop(100%, #f4f4f4));
- background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
- background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
- background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
- background-image: linear-gradient(#ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
- -webkit-border-radius: 5px;
- -moz-border-radius : 5px;
- border-radius : 5px;
- -moz-background-clip : padding;
- -webkit-background-clip: padding-box;
- background-clip : padding-box;
- border: 1px solid #aaaaaa;
- -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
- -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
- box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
- display: block;
+.chosen-container.chosen-with-drop .chosen-drop {
+ clip: auto;
+}
+
+.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;
- height: 23px;
- line-height: 24px;
+ display: block;
+ overflow: hidden;
padding: 0 0 0 8px;
- color: #444444;
+ height: 25px;
+ border: 1px solid #aaa;
+ border-radius: 5px;
+ background-color: #fff;
+ background: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #fff), color-stop(50%, #f6f6f6), color-stop(52%, #eee), to(#f4f4f4));
+ background: linear-gradient(#fff 20%, #f6f6f6 50%, #eee 52%, #f4f4f4 100%);
+ background-clip: padding-box;
+ -webkit-box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
+ box-shadow: 0 0 3px #fff inset, 0 1px 1px rgba(0, 0, 0, 0.1);
+ color: #444;
text-decoration: none;
+ white-space: nowrap;
+ line-height: 24px;
}
-.chzn-container-single .chzn-default {
+
+.chosen-container-single .chosen-default {
color: #999;
}
-.chzn-container-single .chzn-single span {
- margin-right: 26px;
+
+.chosen-container-single .chosen-single span {
display: block;
overflow: hidden;
- white-space: nowrap;
- -o-text-overflow: ellipsis;
- -ms-text-overflow: ellipsis;
+ margin-right: 26px;
text-overflow: ellipsis;
+ white-space: nowrap;
}
-.chzn-container-single .chzn-single abbr {
- display: block;
+
+.chosen-container-single .chosen-single-with-deselect span {
+ margin-right: 38px;
+}
+
+.chosen-container-single .chosen-single abbr {
position: absolute;
- right: 26px;
top: 6px;
+ right: 26px;
+ display: block;
width: 12px;
- height: 13px;
+ height: 12px;
+ background: url("chosen-sprite.png") -42px 1px no-repeat;
font-size: 1px;
- background: url('chosen-sprite.png') right top no-repeat;
}
-.chzn-container-single .chzn-single abbr:hover {
- background-position: right -11px;
+
+.chosen-container-single .chosen-single abbr:hover {
+ background-position: -42px -10px;
}
-.chzn-container-single.chzn-disabled .chzn-single abbr:hover {
- background-position: right top;
+
+.chosen-container-single.chosen-disabled .chosen-single abbr:hover {
+ background-position: -42px -10px;
}
-.chzn-container-single .chzn-single div {
+
+.chosen-container-single .chosen-single div {
position: absolute;
- right: 0;
top: 0;
+ right: 0;
display: block;
- height: 100%;
width: 18px;
+ height: 100%;
}
-.chzn-container-single .chzn-single div b {
- background: url('chosen-sprite.png') no-repeat 0 0;
+
+.chosen-container-single .chosen-single div b {
display: block;
width: 100%;
height: 100%;
+ background: url("chosen-sprite.png") no-repeat 0px 2px;
}
-.chzn-container-single .chzn-search {
- padding: 3px 4px;
+
+.chosen-container-single .chosen-search {
position: relative;
+ z-index: 1010;
margin: 0;
+ padding: 3px 4px;
white-space: nowrap;
- z-index: 1010;
}
-.chzn-container-single .chzn-search input {
- background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
- background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
- background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(#eeeeee 1%, #ffffff 15%);
+
+.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;
- font-family: sans-serif;
+ background: url("chosen-sprite.png") no-repeat 100% -20px;
font-size: 1em;
+ font-family: sans-serif;
+ line-height: normal;
+ border-radius: 0;
}
-.chzn-container-single .chzn-drop {
- -webkit-border-radius: 0 0 4px 4px;
- -moz-border-radius : 0 0 4px 4px;
- border-radius : 0 0 4px 4px;
- -moz-background-clip : padding;
- -webkit-background-clip: padding-box;
- background-clip : padding-box;
+
+.chosen-container-single .chosen-drop {
+ margin-top: -1px;
+ border-radius: 0 0 4px 4px;
+ background-clip: padding-box;
}
-/* @end */
-.chzn-container-single-nosearch .chzn-search input {
+.chosen-container-single.chosen-container-single-nosearch .chosen-search {
position: absolute;
- left: -9000px;
+ clip: rect(0, 0, 0, 0);
}
+/* @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, left top, left bottom, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
+ 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 */
-.chzn-container-multi .chzn-choices {
- background-color: #fff;
- background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
- background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background-image: linear-gradient(#eeeeee 1%, #ffffff 15%);
- border: 1px solid #aaa;
+.chosen-container-multi .chosen-choices {
+ position: relative;
+ overflow: hidden;
margin: 0;
- padding: 0;
+ padding: 0 5px;
+ width: 100%;
+ height: auto;
+ border: 1px solid #aaa;
+ background-color: #fff;
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(1%, #eee), color-stop(15%, #fff));
+ background-image: linear-gradient(#eee 1%, #fff 15%);
cursor: text;
- overflow: hidden;
- height: auto !important;
- height: 1%;
- position: relative;
}
-.chzn-container-multi .chzn-choices li {
+
+.chosen-container-multi .chosen-choices li {
float: left;
list-style: none;
}
-.chzn-container-multi .chzn-choices .search-field {
- white-space: nowrap;
+
+.chosen-container-multi .chosen-choices li.search-field {
margin: 0;
padding: 0;
+ white-space: nowrap;
}
-.chzn-container-multi .chzn-choices .search-field input {
- color: #666;
- background: transparent !important;
- border: 0 !important;
- font-family: sans-serif;
- font-size: 100%;
- height: 15px;
- padding: 5px;
+
+.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;
-webkit-box-shadow: none;
- -moz-box-shadow : none;
- box-shadow : none;
-}
-.chzn-container-multi .chzn-choices .search-field .default {
+ box-shadow: none;
color: #999;
+ font-size: 100%;
+ font-family: sans-serif;
+ line-height: normal;
+ border-radius: 0;
+ width: 25px;
}
-.chzn-container-multi .chzn-choices .search-choice {
- -webkit-border-radius: 3px;
- -moz-border-radius : 3px;
- border-radius : 3px;
- -moz-background-clip : padding;
- -webkit-background-clip: padding-box;
- background-clip : padding-box;
- background-color: #e4e4e4;
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
- background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
- background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
- -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
- box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
+
+.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, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
+ background-size: 100% 19px;
+ background-repeat: repeat-x;
+ background-clip: padding-box;
+ -webkit-box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
+ box-shadow: 0 0 2px #fff inset, 0 1px 0 rgba(0, 0, 0, 0.05);
color: #333;
- border: 1px solid #aaaaaa;
line-height: 13px;
- padding: 3px 20px 3px 5px;
- margin: 3px 0 3px 5px;
- position: relative;
cursor: default;
}
-.chzn-container-multi .chzn-choices .search-choice.search-choice-disabled {
- background-color: #e4e4e4;
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
- background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), color-stop(100%, #eeeeee));
- background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
- color: #666;
- border: 1px solid #cccccc;
- padding-right: 5px;
-}
-.chzn-container-multi .chzn-choices .search-choice-focus {
- background: #d4d4d4;
+
+.chosen-container-multi .chosen-choices li.search-choice span {
+ word-wrap: break-word;
}
-.chzn-container-multi .chzn-choices .search-choice .search-choice-close {
- display: block;
+
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
position: absolute;
- right: 3px;
top: 4px;
+ right: 3px;
+ display: block;
width: 12px;
- height: 13px;
+ height: 12px;
+ background: url("chosen-sprite.png") -42px 1px no-repeat;
font-size: 1px;
- background: url('chosen-sprite.png') right top no-repeat;
}
-.chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
- background-position: right -11px;
+
+.chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
+ background-position: -42px -10px;
}
-.chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
- background-position: right -11px;
+
+.chosen-container-multi .chosen-choices li.search-choice-disabled {
+ padding-right: 5px;
+ border: 1px solid #ccc;
+ background-color: #e4e4e4;
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #f4f4f4), color-stop(50%, #f0f0f0), color-stop(52%, #e8e8e8), to(#eee));
+ background-image: linear-gradient(#f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eee 100%);
+ color: #666;
}
-/* @end */
-/* @group Results */
-.chzn-container .chzn-results {
- margin: 0 4px 4px 0;
- max-height: 240px;
- padding: 0 0 0 4px;
- position: relative;
- overflow-x: hidden;
- overflow-y: auto;
- -webkit-overflow-scrolling: touch;
+.chosen-container-multi .chosen-choices li.search-choice-focus {
+ background: #d4d4d4;
}
-.chzn-container-multi .chzn-results {
- margin: -1px 0 0;
- padding: 0;
+
+.chosen-container-multi .chosen-choices li.search-choice-focus .search-choice-close {
+ background-position: -42px -10px;
}
-.chzn-container .chzn-results li {
- display: none;
- line-height: 15px;
- padding: 5px 6px;
+
+.chosen-container-multi .chosen-results {
margin: 0;
- list-style: none;
-}
-.chzn-container .chzn-results .active-result {
- cursor: pointer;
- display: list-item;
-}
-.chzn-container .chzn-results .highlighted {
- background-color: #3875d7;
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
- background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
- background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
- background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
- background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
- background-image: linear-gradient(#3875d7 20%, #2a62bc 90%);
- color: #fff;
-}
-.chzn-container .chzn-results li em {
- background: #feffde;
- font-style: normal;
-}
-.chzn-container .chzn-results .highlighted em {
- background: transparent;
+ padding: 0;
}
-.chzn-container .chzn-results .no-results {
- background: #f4f4f4;
+
+.chosen-container-multi .chosen-drop .result-selected {
display: list-item;
-}
-.chzn-container .chzn-results .group-result {
+ color: #ccc;
cursor: default;
- color: #999;
- font-weight: bold;
}
-.chzn-container .chzn-results .group-option {
- padding-left: 15px;
-}
-.chzn-container-multi .chzn-drop .result-selected {
- display: none;
-}
-.chzn-container .chzn-results-scroll {
- background: white;
- margin: 0 4px;
- position: absolute;
- text-align: center;
- width: 321px; /* This should by dynamic with js */
- z-index: 1;
-}
-.chzn-container .chzn-results-scroll span {
- display: inline-block;
- height: 17px;
- text-indent: -5000px;
- width: 9px;
-}
-.chzn-container .chzn-results-scroll-down {
- bottom: 0;
-}
-.chzn-container .chzn-results-scroll-down span {
- background: url('chosen-sprite.png') no-repeat -4px -3px;
-}
-.chzn-container .chzn-results-scroll-up span {
- background: url('chosen-sprite.png') no-repeat -22px -3px;
-}
-/* @end */
+/* @end */
/* @group Active */
-.chzn-container-active .chzn-single {
- -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
- -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
- box-shadow : 0 0 5px rgba(0,0,0,.3);
+.chosen-container-active .chosen-single {
border: 1px solid #5897fb;
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
-.chzn-container-active .chzn-single-with-drop {
+
+.chosen-container-active.chosen-with-drop .chosen-single {
border: 1px solid #aaa;
- -webkit-box-shadow: 0 1px 0 #fff inset;
- -moz-box-shadow : 0 1px 0 #fff inset;
- box-shadow : 0 1px 0 #fff inset;
- background-color: #eee;
- filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
- background-image: -webkit-gradient(linear, 0 0, 0 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
- background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
- background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
- background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
- background-image: linear-gradient(#eeeeee 20%, #ffffff 80%);
- -webkit-border-bottom-left-radius : 0;
- -webkit-border-bottom-right-radius: 0;
- -moz-border-radius-bottomleft : 0;
- -moz-border-radius-bottomright: 0;
- border-bottom-left-radius : 0;
border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0;
+ background-image: -webkit-gradient(linear, left top, left bottom, color-stop(20%, #eee), color-stop(80%, #fff));
+ background-image: linear-gradient(#eee 20%, #fff 80%);
+ -webkit-box-shadow: 0 1px 0 #fff inset;
+ box-shadow: 0 1px 0 #fff inset;
}
-.chzn-container-active .chzn-single-with-drop div {
- background: transparent;
+
+.chosen-container-active.chosen-with-drop .chosen-single div {
border-left: none;
+ background: transparent;
}
-.chzn-container-active .chzn-single-with-drop div b {
- background-position: -18px 1px;
+
+.chosen-container-active.chosen-with-drop .chosen-single div b {
+ background-position: -18px 2px;
}
-.chzn-container-active .chzn-choices {
- -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
- -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
- box-shadow : 0 0 5px rgba(0,0,0,.3);
+
+.chosen-container-active .chosen-choices {
border: 1px solid #5897fb;
+ -webkit-box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
+ box-shadow: 0 0 5px rgba(0, 0, 0, 0.3);
}
-.chzn-container-active .chzn-choices .search-field input {
- color: #111 !important;
+
+.chosen-container-active .chosen-choices li.search-field input[type="text"] {
+ color: #222 !important;
}
-/* @end */
+/* @end */
/* @group Disabled Support */
-.chzn-disabled {
+.chosen-disabled {
+ opacity: 0.5 !important;
cursor: default;
- opacity:0.5 !important;
}
-.chzn-disabled .chzn-single {
+
+.chosen-disabled .chosen-single {
cursor: default;
}
-.chzn-disabled .chzn-choices .search-choice .search-choice-close {
+
+.chosen-disabled .chosen-choices .search-choice .search-choice-close {
cursor: default;
}
+/* @end */
/* @group Right to Left */
-.chzn-rtl { text-align: right; }
-.chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
-.chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
+.chosen-rtl {
+ text-align: right;
+}
+
+.chosen-rtl .chosen-single {
+ overflow: visible;
+ padding: 0 8px 0 0;
+}
-.chzn-rtl .chzn-single div { left: 3px; right: auto; }
-.chzn-rtl .chzn-single abbr {
+.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 .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;
}
-.chzn-rtl .chzn-choices .search-field input { direction: rtl; }
-.chzn-rtl .chzn-choices li { float: right; }
-.chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
-.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
-.chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
-.chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
-.chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
-.chzn-rtl .chzn-search input {
- background: #fff url('chosen-sprite.png') no-repeat -38px -22px;
- background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0 0, 0 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
- background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
- background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(#eeeeee 1%, #ffffff 15%);
+
+.chosen-rtl .chosen-search input[type="text"] {
padding: 4px 5px 4px 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 */
diff --git a/js/chosen/chosen.jquery.js b/js/chosen/chosen.jquery.js
index 3e559e2c54..b8e20eb732 100644
--- a/js/chosen/chosen.jquery.js
+++ b/js/chosen/chosen.jquery.js
@@ -1,17 +1,22 @@
-// Chosen, a Select Box Enhancer for jQuery and Protoype
-// by Patrick Filler for Harvest, http://getharvest.com
-//
-// Version 0.9.8
-// Full source at https://github.com/harvesthq/chosen
-// Copyright (c) 2011 Harvest http://getharvest.com
-
-// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-// This file is generated by `cake build`, do not edit it by hand.
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.8.2
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011-2017 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 SelectParser;
+ var $, AbstractChosen, Chosen, SelectParser,
+ bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; },
+ extend = 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; },
+ hasProp = {}.hasOwnProperty;
SelectParser = (function() {
-
function SelectParser() {
this.options_index = 0;
this.parsed = [];
@@ -26,37 +31,43 @@
};
SelectParser.prototype.add_group = function(group) {
- var group_position, option, _i, _len, _ref, _results;
+ var group_position, i, len, option, ref, results1;
group_position = this.parsed.length;
this.parsed.push({
array_index: group_position,
group: true,
label: group.label,
+ title: group.title ? group.title : void 0,
children: 0,
- disabled: group.disabled
+ 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));
+ ref = group.childNodes;
+ results1 = [];
+ for (i = 0, len = ref.length; i < len; i++) {
+ option = ref[i];
+ results1.push(this.add_option(option, group_position, group.disabled));
}
- return _results;
+ return results1;
};
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;
+ 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
});
@@ -76,75 +87,84 @@
})();
SelectParser.select_to_array = function(select) {
- var child, parser, _i, _len, _ref;
+ var child, i, len, parser, ref;
parser = new SelectParser();
- _ref = select.childNodes;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- child = _ref[_i];
+ ref = select.childNodes;
+ for (i = 0, len = ref.length; i < len; i++) {
+ child = ref[i];
parser.add_node(child);
}
return parser.parsed;
};
- this.SelectParser = SelectParser;
-
-}).call(this);
-
-/*
-Chosen source: generate output using 'cake build'
-Copyright (c) 2011 by Harvest
-*/
-
-(function() {
- var AbstractChosen, root;
-
- root = this;
-
AbstractChosen = (function() {
-
- function AbstractChosen(form_field, options) {
+ function AbstractChosen(form_field, options1) {
this.form_field = form_field;
- this.options = options != null ? options : {};
- this.set_default_values();
+ this.options = options1 != null ? options1 : {};
+ this.label_click_handler = bind(this.label_click_handler, this);
+ 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.finish_setup();
+ 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.click_test_action = (function(_this) {
+ return function(evt) {
+ return _this.test_active_click(evt);
+ };
+ })(this);
+ this.activate_action = (function(_this) {
+ return function(evt) {
+ return _this.activate_field(evt);
+ };
+ })(this);
this.active_field = false;
this.mouse_on_container = false;
this.results_showing = false;
this.result_highlighted = null;
- this.result_single_selected = null;
+ this.is_rtl = this.options.rtl || /\bchosen-rtl\b/.test(this.form_field.className);
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.choices = 0;
- this.single_backstroke_delete = this.options.single_backstroke_delete || false;
- return this.max_selected_options = this.options.max_selected_options || Infinity;
+ 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;
+ this.case_sensitive_search = this.options.case_sensitive_search || false;
+ return this.hide_results_on_select = this.options.hide_results_on_select != null ? this.options.hide_results_on_select : true;
};
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 || "Select Some Options";
+ 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;
+ }
+ this.default_text = this.escape_html(this.default_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 "" + item.group_label + "" + item.html;
} else {
- this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || "Select an Option";
+ return item.html;
}
- return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || "No results match";
};
AbstractChosen.prototype.mouse_enter = function() {
@@ -156,48 +176,153 @@ Copyright (c) 2011 by Harvest
};
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);
+ return setTimeout(((function(_this) {
+ return function() {
+ return _this.container_mousedown();
+ };
+ })(this)), 50);
}
} else {
- if (!this.active_field) return this.activate_field();
+ 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);
+ return setTimeout(((function(_this) {
+ return function() {
+ return _this.blur_test();
+ };
+ })(this)), 100);
}
};
- AbstractChosen.prototype.result_add_option = function(option) {
- var classes, style;
- if (!option.disabled) {
- option.dom_id = this.container_id + "_o_" + option.array_index;
- classes = option.selected && this.is_multiple ? [] : ["active-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);
- style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
- return '
' + option.html + '';
+ AbstractChosen.prototype.label_click_handler = function(evt) {
+ if (this.is_multiple) {
+ return this.container_mousedown(evt);
} else {
- return "";
+ return this.activate_field();
+ }
+ };
+
+ AbstractChosen.prototype.results_option_build = function(options) {
+ var content, data, data_content, i, len, ref, shown_results;
+ 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.highlighted_html || option.html;
+ 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.highlighted_html || this.escape_html(group.label);
+ if (group.title) {
+ group_el.title = group.title;
+ }
+ return this.outerHTML(group_el);
};
AbstractChosen.prototype.results_update_field = function() {
- if (!this.is_multiple) this.results_reset_cleanup();
+ this.set_default_text();
+ if (!this.is_multiple) {
+ this.results_reset_cleanup();
+ }
this.result_clear_highlight();
- this.result_single_selected = null;
- return this.results_build();
+ this.results_build();
+ if (this.results_showing) {
+ return this.winnow_results();
+ }
+ };
+
+ AbstractChosen.prototype.reset_single_select_options = function() {
+ var i, len, ref, result, results1;
+ ref = this.results_data;
+ results1 = [];
+ for (i = 0, len = ref.length; i < len; i++) {
+ result = ref[i];
+ if (result.selected) {
+ results1.push(result.selected = false);
+ } else {
+ results1.push(void 0);
+ }
+ }
+ return results1;
};
AbstractChosen.prototype.results_toggle = function() {
@@ -216,247 +341,540 @@ Copyright (c) 2011 by Harvest
}
};
+ AbstractChosen.prototype.winnow_results = function() {
+ var escapedQuery, fix, i, len, option, prefix, query, ref, regex, results, results_group, search_match, startpos, suffix, text;
+ this.no_results_clear();
+ results = 0;
+ query = this.get_search_text();
+ escapedQuery = query.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
+ regex = this.get_search_regex(escapedQuery);
+ ref = this.results_data;
+ for (i = 0, len = ref.length; i < len; i++) {
+ option = ref[i];
+ option.search_match = false;
+ results_group = null;
+ search_match = null;
+ option.highlighted_html = '';
+ 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;
+ }
+ text = option.group ? option.label : option.text;
+ if (!(option.group && !this.group_search)) {
+ search_match = this.search_string_match(text, regex);
+ option.search_match = search_match != null;
+ if (option.search_match && !option.group) {
+ results += 1;
+ }
+ if (option.search_match) {
+ if (query.length) {
+ startpos = search_match.index;
+ prefix = text.slice(0, startpos);
+ fix = text.slice(startpos, startpos + query.length);
+ suffix = text.slice(startpos + query.length);
+ option.highlighted_html = (this.escape_html(prefix)) + "" + (this.escape_html(fix)) + "" + (this.escape_html(suffix));
+ }
+ 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 && query.length) {
+ this.update_results_content("");
+ return this.no_results(query);
+ } 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_flag, regex_string;
+ regex_string = this.search_contains ? escaped_search_string : "(^|\\s|\\b)" + escaped_search_string + "[^\\s]*";
+ if (!(this.enable_split_word_search || this.search_contains)) {
+ regex_string = "^" + regex_string;
+ }
+ regex_flag = this.case_sensitive_search ? "" : "i";
+ return new RegExp(regex_string, regex_flag);
+ };
+
+ AbstractChosen.prototype.search_string_match = function(search_string, regex) {
+ var match;
+ match = regex.exec(search_string);
+ if (!this.search_contains && (match != null ? match[1] : void 0)) {
+ match.index += 1;
+ }
+ return match;
+ };
+
+ AbstractChosen.prototype.choices_count = function() {
+ var i, len, option, 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();
+ this.activate_field();
+ if (!(this.results_showing || this.is_disabled)) {
+ return this.results_show();
+ }
+ };
+
+ AbstractChosen.prototype.keydown_checker = function(evt) {
+ var ref, stroke;
+ stroke = (ref = evt.which) != null ? ref : evt.keyCode;
+ this.search_field_scale();
+ if (stroke !== 8 && this.pending_backstroke) {
+ this.clear_backstroke();
+ }
+ switch (stroke) {
+ case 8:
+ this.backstroke_length = this.get_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 27:
+ 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;
+ }
+ };
+
AbstractChosen.prototype.keyup_checker = function(evt) {
- var stroke, _ref;
- stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
+ var ref, stroke;
+ 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 > 0) {
- return this.keydown_backstroke();
+ if (this.is_multiple && this.backstroke_length < 1 && this.choices_count() > 0) {
+ this.keydown_backstroke();
} else if (!this.pending_backstroke) {
this.result_clear_highlight();
- return this.results_search();
+ this.results_search();
}
break;
case 13:
evt.preventDefault();
- if (this.results_showing) return this.result_select(evt);
+ if (this.results_showing) {
+ this.result_select(evt);
+ }
break;
case 27:
- if (this.results_showing) this.results_hide();
- return true;
+ if (this.results_showing) {
+ this.results_hide();
+ }
+ break;
case 9:
+ case 16:
+ case 17:
+ case 18:
case 38:
case 40:
- case 16:
case 91:
- case 17:
break;
default:
- return this.results_search();
+ this.results_search();
+ break;
}
};
- AbstractChosen.prototype.generate_field_id = function() {
- var new_id;
- new_id = this.generate_random_id();
- this.form_field.id = new_id;
- return new_id;
+ AbstractChosen.prototype.clipboard_event_checker = function(evt) {
+ if (this.is_disabled) {
+ return;
+ }
+ return setTimeout(((function(_this) {
+ return function() {
+ return _this.results_search();
+ };
+ })(this)), 50);
};
- AbstractChosen.prototype.generate_random_char = function() {
- var chars, newchar, rand;
- chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- rand = Math.floor(Math.random() * chars.length);
- return newchar = chars.substring(rand, rand + 1);
+ AbstractChosen.prototype.container_width = function() {
+ if (this.options.width != null) {
+ return this.options.width;
+ } else {
+ return this.form_field.offsetWidth + "px";
+ }
};
- return AbstractChosen;
+ 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);
+ };
- root.AbstractChosen = AbstractChosen;
+ AbstractChosen.prototype.search_results_touchmove = function(evt) {
+ this.touch_started = false;
+ return this.search_results_mouseout(evt);
+ };
-}).call(this);
+ AbstractChosen.prototype.search_results_touchend = function(evt) {
+ if (this.touch_started) {
+ return this.search_results_mouseup(evt);
+ }
+ };
-/*
-Chosen source: generate output using 'cake build'
-Copyright (c) 2011 by Harvest
-*/
+ AbstractChosen.prototype.outerHTML = function(element) {
+ var tmp;
+ if (element.outerHTML) {
+ return element.outerHTML;
+ }
+ tmp = document.createElement("div");
+ tmp.appendChild(element);
+ return tmp.innerHTML;
+ };
-(function() {
- var $, Chosen, get_side_border_padding, root,
- __hasProp = Object.prototype.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; };
+ AbstractChosen.prototype.get_single_html = function() {
+ return "\n " + this.default_text + "\n
\n\n";
+ };
+
+ AbstractChosen.prototype.get_multi_html = function() {
+ return "\n";
+ };
- root = this;
+ AbstractChosen.prototype.get_no_results_html = function(terms) {
+ return "\n " + this.results_none_found + " " + (this.escape_html(terms)) + "\n";
+ };
+
+ 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 ($.browser.msie && ($.browser.version === "6.0" || ($.browser.version === "7.0" && document.documentMode === 7))) {
+ if (!AbstractChosen.browser_is_supported()) {
return this;
}
return this.each(function(input_field) {
- var $this;
+ var $this, chosen;
$this = $(this);
- if (!$this.hasClass("chzn-done")) {
- return $this.data('chosen', new Chosen(this, options));
+ 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);
+ Chosen = (function(superClass) {
+ extend(Chosen, superClass);
function Chosen() {
- Chosen.__super__.constructor.apply(this, arguments);
+ return Chosen.__super__.constructor.apply(this, arguments);
}
Chosen.prototype.setup = function() {
this.form_field_jq = $(this.form_field);
- this.current_value = this.form_field_jq.val();
- return this.is_rtl = this.form_field_jq.hasClass("chzn-rtl");
- };
-
- Chosen.prototype.finish_setup = function() {
- return this.form_field_jq.addClass("chzn-done");
+ return this.current_selectedIndex = this.form_field.selectedIndex;
};
Chosen.prototype.set_up_html = function() {
- var container_div, dd_top, dd_width, sf_width;
- this.container_id = this.form_field.id.length ? this.form_field.id.replace(/[^\w]/g, '_') : this.generate_field_id();
- this.container_id += "_chzn";
- this.f_width = this.form_field_jq.outerWidth();
- container_div = $("", {
- id: this.container_id,
- "class": "chzn-container" + (this.is_rtl ? ' chzn-rtl' : ''),
- style: 'width: ' + this.f_width + 'px;'
- });
+ 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(' '),
+ 'title': this.form_field.title
+ };
+ if (this.form_field.id.length) {
+ container_props.id = this.form_field.id.replace(/[^\w]/g, '_') + "_chosen";
+ }
+ this.container = $("", container_props);
+ this.container.width(this.container_width());
if (this.is_multiple) {
- container_div.html('');
+ this.container.html(this.get_multi_html());
} else {
- container_div.html('' + this.default_text + '
');
- }
- this.form_field_jq.hide().after(container_div);
- this.container = $('#' + this.container_id);
- this.container.addClass("chzn-container-" + (this.is_multiple ? "multi" : "single"));
- this.dropdown = this.container.find('div.chzn-drop').first();
- dd_top = this.container.height();
- dd_width = this.f_width - get_side_border_padding(this.dropdown);
- this.dropdown.css({
- "width": dd_width + "px",
- "top": dd_top + "px"
- });
+ this.container.html(this.get_single_html());
+ }
+ this.form_field_jq.hide().after(this.container);
+ this.dropdown = this.container.find('div.chosen-drop').first();
this.search_field = this.container.find('input').first();
- this.search_results = this.container.find('ul.chzn-results').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.chzn-choices').first();
+ 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.chzn-search').first();
- this.selected_item = this.container.find('.chzn-single').first();
- sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field);
- this.search_field.css({
- "width": sf_width + "px"
- });
+ 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.form_field_jq.trigger("liszt:ready", {
+ 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.mousedown(function(evt) {
- return _this.container_mousedown(evt);
- });
- this.container.mouseup(function(evt) {
- return _this.container_mouseup(evt);
- });
- this.container.mouseenter(function(evt) {
- return _this.mouse_enter(evt);
- });
- this.container.mouseleave(function(evt) {
- return _this.mouse_leave(evt);
- });
- this.search_results.mouseup(function(evt) {
- return _this.search_results_mouseup(evt);
- });
- this.search_results.mouseover(function(evt) {
- return _this.search_results_mouseover(evt);
- });
- this.search_results.mouseout(function(evt) {
- return _this.search_results_mouseout(evt);
- });
- this.form_field_jq.bind("liszt:updated", function(evt) {
- return _this.results_update_field(evt);
- });
- this.form_field_jq.bind("liszt:activate", function(evt) {
- return _this.activate_field(evt);
- });
- this.form_field_jq.bind("liszt:open", function(evt) {
- return _this.container_mousedown(evt);
- });
- this.search_field.blur(function(evt) {
- return _this.input_blur(evt);
- });
- this.search_field.keyup(function(evt) {
- return _this.keyup_checker(evt);
- });
- this.search_field.keydown(function(evt) {
- return _this.keydown_checker(evt);
- });
- this.search_field.focus(function(evt) {
- return _this.input_focus(evt);
- });
+ this.container.on('touchstart.chosen', (function(_this) {
+ return function(evt) {
+ _this.container_mousedown(evt);
+ };
+ })(this));
+ this.container.on('touchend.chosen', (function(_this) {
+ return function(evt) {
+ _this.container_mouseup(evt);
+ };
+ })(this));
+ this.container.on('mousedown.chosen', (function(_this) {
+ return function(evt) {
+ _this.container_mousedown(evt);
+ };
+ })(this));
+ this.container.on('mouseup.chosen', (function(_this) {
+ return function(evt) {
+ _this.container_mouseup(evt);
+ };
+ })(this));
+ this.container.on('mouseenter.chosen', (function(_this) {
+ return function(evt) {
+ _this.mouse_enter(evt);
+ };
+ })(this));
+ this.container.on('mouseleave.chosen', (function(_this) {
+ return function(evt) {
+ _this.mouse_leave(evt);
+ };
+ })(this));
+ this.search_results.on('mouseup.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_mouseup(evt);
+ };
+ })(this));
+ this.search_results.on('mouseover.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_mouseover(evt);
+ };
+ })(this));
+ this.search_results.on('mouseout.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_mouseout(evt);
+ };
+ })(this));
+ this.search_results.on('mousewheel.chosen DOMMouseScroll.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_mousewheel(evt);
+ };
+ })(this));
+ this.search_results.on('touchstart.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_touchstart(evt);
+ };
+ })(this));
+ this.search_results.on('touchmove.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_touchmove(evt);
+ };
+ })(this));
+ this.search_results.on('touchend.chosen', (function(_this) {
+ return function(evt) {
+ _this.search_results_touchend(evt);
+ };
+ })(this));
+ this.form_field_jq.on("chosen:updated.chosen", (function(_this) {
+ return function(evt) {
+ _this.results_update_field(evt);
+ };
+ })(this));
+ this.form_field_jq.on("chosen:activate.chosen", (function(_this) {
+ return function(evt) {
+ _this.activate_field(evt);
+ };
+ })(this));
+ this.form_field_jq.on("chosen:open.chosen", (function(_this) {
+ return function(evt) {
+ _this.container_mousedown(evt);
+ };
+ })(this));
+ this.form_field_jq.on("chosen:close.chosen", (function(_this) {
+ return function(evt) {
+ _this.close_field(evt);
+ };
+ })(this));
+ this.search_field.on('blur.chosen', (function(_this) {
+ return function(evt) {
+ _this.input_blur(evt);
+ };
+ })(this));
+ this.search_field.on('keyup.chosen', (function(_this) {
+ return function(evt) {
+ _this.keyup_checker(evt);
+ };
+ })(this));
+ this.search_field.on('keydown.chosen', (function(_this) {
+ return function(evt) {
+ _this.keydown_checker(evt);
+ };
+ })(this));
+ this.search_field.on('focus.chosen', (function(_this) {
+ return function(evt) {
+ _this.input_focus(evt);
+ };
+ })(this));
+ this.search_field.on('cut.chosen', (function(_this) {
+ return function(evt) {
+ _this.clipboard_event_checker(evt);
+ };
+ })(this));
+ this.search_field.on('paste.chosen', (function(_this) {
+ return function(evt) {
+ _this.clipboard_event_checker(evt);
+ };
+ })(this));
if (this.is_multiple) {
- return this.search_choices.click(function(evt) {
- return _this.choices_click(evt);
- });
+ return this.search_choices.on('click.chosen', (function(_this) {
+ return function(evt) {
+ _this.choices_click(evt);
+ };
+ })(this));
} else {
- return this.container.click(function(evt) {
- return evt.preventDefault();
+ return this.container.on('click.chosen', function(evt) {
+ evt.preventDefault();
});
}
};
+ Chosen.prototype.destroy = function() {
+ $(this.container[0].ownerDocument).off('click.chosen', this.click_test_action);
+ if (this.form_field_label.length > 0) {
+ this.form_field_label.off('click.chosen');
+ }
+ 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;
+ this.is_disabled = this.form_field.disabled || this.form_field_jq.parents('fieldset').is(':disabled');
+ this.container.toggleClass('chosen-disabled', this.is_disabled);
+ this.search_field[0].disabled = this.is_disabled;
+ if (!this.is_multiple) {
+ this.selected_item.off('focus.chosen', this.activate_field);
+ }
if (this.is_disabled) {
- this.container.addClass('chzn-disabled');
- this.search_field[0].disabled = true;
- if (!this.is_multiple) {
- this.selected_item.unbind("focus", this.activate_action);
- }
return this.close_field();
- } else {
- this.container.removeClass('chzn-disabled');
- this.search_field[0].disabled = false;
- if (!this.is_multiple) {
- return this.selected_item.bind("focus", this.activate_action);
- }
+ } else if (!this.is_multiple) {
+ return this.selected_item.on('focus.chosen', this.activate_field);
}
};
Chosen.prototype.container_mousedown = function(evt) {
- var target_closelink;
- if (!this.is_disabled) {
- target_closelink = evt != null ? ($(evt.target)).hasClass("search-choice-close") : false;
- if (evt && evt.type === "mousedown" && !this.results_showing) {
- evt.stopPropagation();
- }
- if (!this.pending_destroy_click && !target_closelink) {
- if (!this.active_field) {
- if (this.is_multiple) this.search_field.val("");
- $(document).click(this.click_test_action);
- this.results_show();
- } else if (!this.is_multiple && evt && (($(evt.target)[0] === this.selected_item[0]) || $(evt.target).parents("a.chzn-single").length)) {
- evt.preventDefault();
- this.results_toggle();
+ var ref;
+ if (this.is_disabled) {
+ return;
+ }
+ if (evt && ((ref = evt.type) === 'mousedown' || ref === 'touchstart') && !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("");
}
- return this.activate_field();
- } else {
- return this.pending_destroy_click = false;
+ $(this.container[0].ownerDocument).on('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();
}
};
@@ -466,32 +884,51 @@ Copyright (c) 2011 by Harvest
}
};
+ 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("chzn-container-active")) {
+ if (!this.active_field && this.container.hasClass("chosen-container-active")) {
return this.close_field();
}
};
Chosen.prototype.close_field = function() {
- $(document).unbind("click", this.click_test_action);
+ $(this.container[0].ownerDocument).off("click.chosen", this.click_test_action);
this.active_field = false;
this.results_hide();
- this.container.removeClass("chzn-container-active");
- this.winnow_results_clear();
+ this.container.removeClass("chosen-container-active");
this.clear_backstroke();
this.show_search_field_default();
- return this.search_field_scale();
+ this.search_field_scale();
+ return this.search_field.blur();
};
Chosen.prototype.activate_field = function() {
- this.container.addClass("chzn-container-active");
+ if (this.is_disabled) {
+ return;
+ }
+ 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) {
- if ($(evt.target).parents('#' + this.container_id).length) {
+ 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();
@@ -499,52 +936,30 @@ Copyright (c) 2011 by Harvest
};
Chosen.prototype.results_build = function() {
- var content, data, _i, _len, _ref;
this.parsing = true;
- this.results_data = root.SelectParser.select_to_array(this.form_field);
- if (this.is_multiple && this.choices > 0) {
+ 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();
- this.choices = 0;
} else if (!this.is_multiple) {
- this.selected_item.addClass("chzn-default").find("span").text(this.default_text);
+ this.single_set_selected_text();
if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
- this.container.addClass("chzn-container-single-nosearch");
+ this.search_field[0].readOnly = true;
+ this.container.addClass("chosen-container-single-nosearch");
} else {
- this.container.removeClass("chzn-container-single-nosearch");
- }
- }
- content = '';
- _ref = this.results_data;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- data = _ref[_i];
- if (data.group) {
- content += this.result_add_group(data);
- } else if (!data.empty) {
- content += this.result_add_option(data);
- if (data.selected && this.is_multiple) {
- this.choice_build(data);
- } else if (data.selected && !this.is_multiple) {
- this.selected_item.removeClass("chzn-default").find("span").text(data.text);
- if (this.allow_single_deselect) this.single_deselect_control_build();
- }
+ 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();
- this.search_results.html(content);
return this.parsing = false;
};
- Chosen.prototype.result_add_group = function(group) {
- if (!group.disabled) {
- group.dom_id = this.container_id + "_g_" + group.array_index;
- return '' + $("").text(group.label).html() + '';
- } else {
- return "";
- }
- };
-
Chosen.prototype.result_do_highlight = function(el) {
var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
if (el.length) {
@@ -565,62 +980,65 @@ Copyright (c) 2011 by Harvest
};
Chosen.prototype.result_clear_highlight = function() {
- if (this.result_highlight) this.result_highlight.removeClass("highlighted");
+ if (this.result_highlight) {
+ this.result_highlight.removeClass("highlighted");
+ }
return this.result_highlight = null;
};
Chosen.prototype.results_show = function() {
- var dd_top;
- if (!this.is_multiple) {
- this.selected_item.addClass("chzn-single-with-drop");
- if (this.result_single_selected) {
- this.result_do_highlight(this.result_single_selected);
- }
- } else if (this.max_selected_options <= this.choices) {
- this.form_field_jq.trigger("liszt:maxselected", {
+ if (this.is_multiple && this.max_selected_options <= this.choices_count()) {
+ this.form_field_jq.trigger("chosen:maxselected", {
chosen: this
});
return false;
}
- dd_top = this.is_multiple ? this.container.height() : this.container.height() - 1;
- this.form_field_jq.trigger("liszt:showing_dropdown", {
- chosen: this
- });
- this.dropdown.css({
- "top": dd_top + "px",
- "left": 0
- });
+ this.container.addClass("chosen-with-drop");
this.results_showing = true;
this.search_field.focus();
- this.search_field.val(this.search_field.val());
- return this.winnow_results();
+ this.search_field.val(this.get_search_field_value());
+ 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.is_multiple) {
- this.selected_item.removeClass("chzn-single-with-drop");
+ if (this.results_showing) {
+ this.result_clear_highlight();
+ this.container.removeClass("chosen-with-drop");
+ this.form_field_jq.trigger("chosen:hiding_dropdown", {
+ chosen: this
+ });
}
- this.result_clear_highlight();
- this.form_field_jq.trigger("liszt:hiding_dropdown", {
- chosen: this
- });
- this.dropdown.css({
- "left": "-9000px"
- });
return this.results_showing = false;
};
Chosen.prototype.set_tab_index = function(el) {
var ti;
- if (this.form_field_jq.attr("tabindex")) {
- ti = this.form_field_jq.attr("tabindex");
- this.form_field_jq.attr("tabindex", -1);
- return this.search_field.attr("tabindex", 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() {
+ 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.on('click.chosen', this.label_click_handler);
}
};
Chosen.prototype.show_search_field_default = function() {
- if (this.is_multiple && this.choices < 1 && !this.active_field) {
+ 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 {
@@ -642,136 +1060,148 @@ Copyright (c) 2011 by Harvest
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);
+ 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())) {
+ if ($(evt.target).hasClass("active-result") || $(evt.target).parents('.active-result').first()) {
return this.result_clear_highlight();
}
};
- Chosen.prototype.choices_click = function(evt) {
- evt.preventDefault();
- if (this.active_field && !($(evt.target).hasClass("search-choice" || $(evt.target).parents('.search-choice').first)) && !this.results_showing) {
- return this.results_show();
- }
- };
-
Chosen.prototype.choice_build = function(item) {
- var choice_id, html, link,
- _this = this;
- if (this.is_multiple && this.max_selected_options <= this.choices) {
- this.form_field_jq.trigger("liszt:maxselected", {
- chosen: this
- });
- return false;
- }
- choice_id = this.container_id + "_c_" + item.array_index;
- this.choices += 1;
+ var choice, close_link;
+ choice = $('', {
+ "class": "search-choice"
+ }).html("" + (this.choice_label(item)) + "");
if (item.disabled) {
- html = '' + item.html + '';
+ choice.addClass('search-choice-disabled');
} else {
- html = '' + item.html + '';
+ close_link = $('', {
+ "class": 'search-choice-close',
+ 'data-option-array-index': item.array_index
+ });
+ close_link.on('click.chosen', (function(_this) {
+ return function(evt) {
+ return _this.choice_destroy_link_click(evt);
+ };
+ })(this));
+ choice.append(close_link);
}
- this.search_container.before(html);
- link = $('#' + choice_id).find("a").first();
- return link.click(function(evt) {
- return _this.choice_destroy_link_click(evt);
- });
+ return this.search_container.before(choice);
};
Chosen.prototype.choice_destroy_link_click = function(evt) {
evt.preventDefault();
+ evt.stopPropagation();
if (!this.is_disabled) {
- this.pending_destroy_click = true;
return this.choice_destroy($(evt.target));
- } else {
- return evt.stopPropagation;
}
};
Chosen.prototype.choice_destroy = function(link) {
- if (this.result_deselect(link.attr("rel"))) {
- this.choices -= 1;
- this.show_search_field_default();
- if (this.is_multiple && this.choices > 0 && this.search_field.val().length < 1) {
+ if (this.result_deselect(link[0].getAttribute("data-option-array-index"))) {
+ if (this.active_field) {
+ this.search_field.focus();
+ } else {
+ this.show_search_field_default();
+ }
+ if (this.is_multiple && this.choices_count() > 0 && this.get_search_field_value().length < 1) {
this.results_hide();
}
- return link.parents('li').first().remove();
+ 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.selected_item.find("span").text(this.default_text);
- if (!this.is_multiple) this.selected_item.addClass("chzn-default");
+ 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();
+ this.trigger_form_field_change();
+ if (this.active_field) {
+ return this.results_hide();
+ }
};
Chosen.prototype.results_reset_cleanup = function() {
- this.current_value = this.form_field_jq.val();
+ this.current_selectedIndex = this.form_field.selectedIndex;
return this.selected_item.find("abbr").remove();
};
Chosen.prototype.result_select = function(evt) {
- var high, high_id, item, position;
+ var high, item;
if (this.result_highlight) {
high = this.result_highlight;
- high_id = high.attr("id");
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) {
- this.result_deactivate(high);
+ high.removeClass("active-result");
} else {
- this.search_results.find(".result-selected").removeClass("result-selected");
- this.result_single_selected = high;
- this.selected_item.removeClass("chzn-default");
+ this.reset_single_select_options();
}
high.addClass("result-selected");
- position = high_id.substr(high_id.lastIndexOf("_") + 1);
- item = this.results_data[position];
+ 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;
+ this.search_field.val("");
if (this.is_multiple) {
this.choice_build(item);
} else {
- this.selected_item.find("span").first().text(item.text);
- if (this.allow_single_deselect) this.single_deselect_control_build();
+ this.single_set_selected_text(this.choice_label(item));
}
- if (!(evt.metaKey && this.is_multiple)) this.results_hide();
- this.search_field.val("");
- if (this.is_multiple || this.form_field_jq.val() !== this.current_value) {
- this.form_field_jq.trigger("change", {
- 'selected': this.form_field.options[item.options_index].value
+ if (this.is_multiple && (!this.hide_results_on_select || (evt.metaKey || evt.ctrlKey))) {
+ this.winnow_results();
+ } else {
+ this.results_hide();
+ this.show_search_field_default();
+ }
+ if (this.is_multiple || this.form_field.selectedIndex !== this.current_selectedIndex) {
+ this.trigger_form_field_change({
+ selected: this.form_field.options[item.options_index].value
});
}
- this.current_value = this.form_field_jq.val();
+ this.current_selectedIndex = this.form_field.selectedIndex;
+ evt.preventDefault();
return this.search_field_scale();
}
};
- Chosen.prototype.result_activate = function(el) {
- return el.addClass("active-result");
- };
-
- Chosen.prototype.result_deactivate = function(el) {
- return el.removeClass("active-result");
+ 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, result_data;
+ 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;
- result = $("#" + this.container_id + "_o_" + pos);
- result.removeClass("result-selected").addClass("active-result").show();
+ this.selected_option_count = null;
this.result_clear_highlight();
- this.winnow_results();
- this.form_field_jq.trigger("change", {
+ if (this.results_showing) {
+ this.winnow_results();
+ }
+ this.trigger_form_field_change({
deselected: this.form_field.options[result_data.options_index].value
});
this.search_field_scale();
@@ -782,106 +1212,43 @@ Copyright (c) 2011 by Harvest
};
Chosen.prototype.single_deselect_control_build = function() {
- if (this.allow_single_deselect && this.selected_item.find("abbr").length < 1) {
- return this.selected_item.find("span").first().after("");
+ if (!this.allow_single_deselect) {
+ return;
}
+ if (!this.selected_item.find("abbr").length) {
+ this.selected_item.find("span").first().after("");
+ }
+ return this.selected_item.addClass("chosen-single-with-deselect");
};
- Chosen.prototype.winnow_results = function() {
- var found, option, part, parts, regex, regexAnchor, result, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref;
- this.no_results_clear();
- results = 0;
- searchText = this.search_field.val() === this.default_text ? "" : $('').text($.trim(this.search_field.val())).html();
- regexAnchor = this.search_contains ? "" : "^";
- regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
- zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
- _ref = this.results_data;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- option = _ref[_i];
- if (!option.disabled && !option.empty) {
- if (option.group) {
- $('#' + option.dom_id).css('display', 'none');
- } else if (!(this.is_multiple && option.selected)) {
- found = false;
- result_id = option.dom_id;
- result = $("#" + result_id);
- if (regex.test(option.html)) {
- found = true;
- results += 1;
- } else if (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0) {
- parts = option.html.replace(/\[|\]/g, "").split(" ");
- if (parts.length) {
- for (_j = 0, _len2 = parts.length; _j < _len2; _j++) {
- part = parts[_j];
- if (regex.test(part)) {
- found = true;
- results += 1;
- }
- }
- }
- }
- if (found) {
- if (searchText.length) {
- startpos = option.html.search(zregex);
- text = option.html.substr(0, startpos + searchText.length) + '' + option.html.substr(startpos + searchText.length);
- text = text.substr(0, startpos) + '' + text.substr(startpos);
- } else {
- text = option.html;
- }
- result.html(text);
- this.result_activate(result);
- if (option.group_array_index != null) {
- $("#" + this.results_data[option.group_array_index].dom_id).css('display', 'list-item');
- }
- } else {
- if (this.result_highlight && result_id === this.result_highlight.attr('id')) {
- this.result_clear_highlight();
- }
- this.result_deactivate(result);
- }
- }
- }
- }
- if (results < 1 && searchText.length) {
- return this.no_results(searchText);
- } else {
- return this.winnow_results_set_highlight();
- }
+ Chosen.prototype.get_search_field_value = function() {
+ return this.search_field.val();
};
- Chosen.prototype.winnow_results_clear = function() {
- var li, lis, _i, _len, _results;
- this.search_field.val("");
- lis = this.search_results.find("li");
- _results = [];
- for (_i = 0, _len = lis.length; _i < _len; _i++) {
- li = lis[_i];
- li = $(li);
- if (li.hasClass("group-result")) {
- _results.push(li.css('display', 'auto'));
- } else if (!this.is_multiple || !li.hasClass("result-selected")) {
- _results.push(this.result_activate(li));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
+ Chosen.prototype.get_search_text = function() {
+ return $.trim(this.get_search_field_value());
+ };
+
+ Chosen.prototype.escape_html = function(text) {
+ return $('').text(text).html();
};
Chosen.prototype.winnow_results_set_highlight = function() {
var do_high, selected_results;
- if (!this.result_highlight) {
- 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);
+ 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 = $('' + this.results_none_found + ' ""');
- no_results_html.find("span").first().html(terms);
- return this.search_results.append(no_results_html);
+ no_results_html = this.get_no_results_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() {
@@ -889,15 +1256,15 @@ Copyright (c) 2011 by Harvest
};
Chosen.prototype.keydown_arrow = function() {
- var first_active, next_sib;
- if (!this.result_highlight) {
- first_active = this.search_results.find("li.active-result").first();
- if (first_active) this.result_do_highlight($(first_active));
- } else if (this.results_showing) {
+ var next_sib;
+ if (this.results_showing && this.result_highlight) {
next_sib = this.result_highlight.nextAll("li.active-result").first();
- if (next_sib) this.result_do_highlight(next_sib);
+ if (next_sib) {
+ return this.result_do_highlight(next_sib);
+ }
+ } else {
+ return this.results_show();
}
- if (!this.results_showing) return this.results_show();
};
Chosen.prototype.keyup_arrow = function() {
@@ -909,7 +1276,9 @@ Copyright (c) 2011 by Harvest
if (prev_sibs.length) {
return this.result_do_highlight(prev_sibs.first());
} else {
- if (this.choices > 0) this.results_hide();
+ if (this.choices_count() > 0) {
+ this.results_hide();
+ }
return this.result_clear_highlight();
}
}
@@ -940,79 +1309,41 @@ Copyright (c) 2011 by Harvest
return this.pending_backstroke = null;
};
- Chosen.prototype.keydown_checker = function(evt) {
- var stroke, _ref;
- stroke = (_ref = evt.which) != null ? _ref : 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:
- evt.preventDefault();
- break;
- case 38:
- evt.preventDefault();
- this.keyup_arrow();
- break;
- case 40:
- this.keydown_arrow();
- break;
- }
- };
-
Chosen.prototype.search_field_scale = function() {
- var dd_top, div, 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 = $('', {
- 'style': style_block
- });
- div.text(this.search_field.val());
- $('body').append(div);
- w = div.width() + 25;
- div.remove();
- if (w > this.f_width - 10) w = this.f_width - 10;
- this.search_field.css({
- 'width': w + 'px'
- });
- dd_top = this.container.height();
- return this.dropdown.css({
- "top": dd_top + "px"
- });
+ var div, i, len, style, style_block, styles, width;
+ if (!this.is_multiple) {
+ return;
+ }
+ style_block = {
+ position: 'absolute',
+ left: '-1000px',
+ top: '-1000px',
+ display: 'none',
+ whiteSpace: 'pre'
+ };
+ styles = ['fontSize', 'fontStyle', 'fontWeight', 'fontFamily', 'lineHeight', 'textTransform', 'letterSpacing'];
+ for (i = 0, len = styles.length; i < len; i++) {
+ style = styles[i];
+ style_block[style] = this.search_field.css(style);
}
+ div = $('').css(style_block);
+ div.text(this.get_search_field_value());
+ $('body').append(div);
+ width = div.width() + 25;
+ div.remove();
+ if (this.container.is(':visible')) {
+ width = Math.min(this.container.outerWidth() - 10, width);
+ }
+ return this.search_field.width(width);
};
- Chosen.prototype.generate_random_id = function() {
- var string;
- string = "sel" + this.generate_random_char() + this.generate_random_char() + this.generate_random_char();
- while ($("#" + string).length > 0) {
- string += this.generate_random_char();
- }
- return string;
+ Chosen.prototype.trigger_form_field_change = function(extra) {
+ this.form_field_jq.trigger("input", extra);
+ return this.form_field_jq.trigger("change", extra);
};
return Chosen;
})(AbstractChosen);
- get_side_border_padding = function(elmt) {
- var side_border_padding;
- return side_border_padding = elmt.outerWidth() - elmt.width();
- };
-
- root.get_side_border_padding = get_side_border_padding;
-
}).call(this);
diff --git a/js/chosen/chosen.jquery.min.js b/js/chosen/chosen.jquery.min.js
index 5b08f7bd2f..d67677fbdf 100644
--- a/js/chosen/chosen.jquery.min.js
+++ b/js/chosen/chosen.jquery.min.js
@@ -1,10 +1,3 @@
-// Chosen, a Select Box Enhancer for jQuery and Protoype
-// by Patrick Filler for Harvest, http://getharvest.com
-//
-// Version 0.9.8
-// Full source at https://github.com/harvesthq/chosen
-// Copyright (c) 2011 Harvest http://getharvest.com
+/* Chosen v1.8.2 | (c) 2011-2017 by Harvest | MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md */
-// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-// This file is generated by `cake build`, do not edit it by hand.
-(function(){var SelectParser;SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return child.nodeName.toUpperCase()==="OPTGROUP"?this.add_group(child):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:!0,label:group.label,children:0,disabled:group.disabled}),_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")return option.text!==""?(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,selected:option.selected,disabled:group_disabled===!0?group_disabled:option.disabled,group_array_index:group_position,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},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},this.SelectParser=SelectParser}).call(this),function(){var AbstractChosen,root;root=this,AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field,this.options=options!=null?options:{},this.set_default_values(),this.is_multiple=this.form_field.multiple,this.set_default_text(),this.setup(),this.set_up_html(),this.register_observers(),this.finish_setup()}return AbstractChosen.prototype.set_default_values=function(){var _this=this;return 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=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=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:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.search_contains=this.options.search_contains||!1,this.choices=0,this.single_backstroke_delete=this.options.single_backstroke_delete||!1,this.max_selected_options=this.options.max_selected_options||Infinity},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||"Select Some Options":this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||"Select an Option",this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||"No results match"},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(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)return this.active_field=!1,setTimeout(function(){return _this.blur_test()},100)},AbstractChosen.prototype.result_add_option=function(option){var classes,style;return option.disabled?"":(option.dom_id=this.container_id+"_o_"+option.array_index,classes=option.selected&&this.is_multiple?[]:["active-result"],option.selected&&classes.push("result-selected"),option.group_array_index!=null&&classes.push("group-option"),option.classes!==""&&classes.push(option.classes),style=option.style.cssText!==""?' style="'+option.style+'"':"",'"+option.html+"")},AbstractChosen.prototype.results_update_field=function(){return this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.result_single_selected=null,this.results_build()},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():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>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:evt.preventDefault();if(this.results_showing)return this.result_select(evt);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.generate_field_id=function(){var new_id;return new_id=this.generate_random_id(),this.form_field.id=new_id,new_id},AbstractChosen.prototype.generate_random_char=function(){var chars,newchar,rand;return chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",rand=Math.floor(Math.random()*chars.length),newchar=chars.substring(rand,rand+1)},AbstractChosen}(),root.AbstractChosen=AbstractChosen}.call(this),function(){var $,Chosen,get_side_border_padding,root,__hasProp=Object.prototype.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};root=this,$=jQuery,$.fn.extend({chosen:function(options){return $.browser.msie&&($.browser.version==="6.0"||$.browser.version==="7.0"&&document.documentMode===7)?this:this.each(function(input_field){var $this;$this=$(this);if(!$this.hasClass("chzn-done"))return $this.data("chosen",new Chosen(this,options))})}}),Chosen=function(_super){function Chosen(){Chosen.__super__.constructor.apply(this,arguments)}return __extends(Chosen,_super),Chosen.prototype.setup=function(){return this.form_field_jq=$(this.form_field),this.current_value=this.form_field_jq.val(),this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")},Chosen.prototype.finish_setup=function(){return this.form_field_jq.addClass("chzn-done")},Chosen.prototype.set_up_html=function(){var container_div,dd_top,dd_width,sf_width;return this.container_id=this.form_field.id.length?this.form_field.id.replace(/[^\w]/g,"_"):this.generate_field_id(),this.container_id+="_chzn",this.f_width=this.form_field_jq.outerWidth(),container_div=$("",{id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px;"}),this.is_multiple?container_div.html(''):container_div.html(''+this.default_text+'
'),this.form_field_jq.hide().after(container_div),this.container=$("#"+this.container_id),this.container.addClass("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.find("div.chzn-drop").first(),dd_top=this.container.height(),dd_width=this.f_width-get_side_border_padding(this.dropdown),this.dropdown.css({width:dd_width+"px",top:dd_top+"px"}),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chzn-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.chzn-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chzn-search").first(),this.selected_item=this.container.find(".chzn-single").first(),sf_width=dd_width-get_side_border_padding(this.search_container)-get_side_border_padding(this.search_field),this.search_field.css({width:sf_width+"px"})),this.results_build(),this.set_tab_index(),this.form_field_jq.trigger("liszt:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this=this;return this.container.mousedown(function(evt){return _this.container_mousedown(evt)}),this.container.mouseup(function(evt){return _this.container_mouseup(evt)}),this.container.mouseenter(function(evt){return _this.mouse_enter(evt)}),this.container.mouseleave(function(evt){return _this.mouse_leave(evt)}),this.search_results.mouseup(function(evt){return _this.search_results_mouseup(evt)}),this.search_results.mouseover(function(evt){return _this.search_results_mouseover(evt)}),this.search_results.mouseout(function(evt){return _this.search_results_mouseout(evt)}),this.form_field_jq.bind("liszt:updated",function(evt){return _this.results_update_field(evt)}),this.form_field_jq.bind("liszt:activate",function(evt){return _this.activate_field(evt)}),this.form_field_jq.bind("liszt:open",function(evt){return _this.container_mousedown(evt)}),this.search_field.blur(function(evt){return _this.input_blur(evt)}),this.search_field.keyup(function(evt){return _this.keyup_checker(evt)}),this.search_field.keydown(function(evt){return _this.keydown_checker(evt)}),this.search_field.focus(function(evt){return _this.input_focus(evt)}),this.is_multiple?this.search_choices.click(function(evt){return _this.choices_click(evt)}):this.container.click(function(evt){return evt.preventDefault()})},Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled)return this.container.addClass("chzn-disabled"),this.search_field[0].disabled=!0,this.is_multiple||this.selected_item.unbind("focus",this.activate_action),this.close_field();this.container.removeClass("chzn-disabled"),this.search_field[0].disabled=!1;if(!this.is_multiple)return this.selected_item.bind("focus",this.activate_action)},Chosen.prototype.container_mousedown=function(evt){var target_closelink;if(!this.is_disabled)return target_closelink=evt!=null?$(evt.target).hasClass("search-choice-close"):!1,evt&&evt.type==="mousedown"&&!this.results_showing&&evt.stopPropagation(),!this.pending_destroy_click&&!target_closelink?(this.active_field?!this.is_multiple&&evt&&($(evt.target)[0]===this.selected_item[0]||$(evt.target).parents("a.chzn-single").length)&&(evt.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),$(document).click(this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chzn-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return $(document).unbind("click",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClass("chzn-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){return $(evt.target).parents("#"+this.container_id).length?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){var content,data,_i,_len,_ref;this.parsing=!0,this.results_data=root.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.find("li.search-choice").remove(),this.choices=0):this.is_multiple||(this.selected_item.addClass("chzn-default").find("span").text(this.default_text),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?this.container.addClass("chzn-container-single-nosearch"):this.container.removeClass("chzn-container-single-nosearch")),content="",_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++)data=_ref[_i],data.group?content+=this.result_add_group(data):data.empty||(content+=this.result_add_option(data),data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&(this.selected_item.removeClass("chzn-default").find("span").text(data.text),this.allow_single_deselect&&this.single_deselect_control_build()));return this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.html(content),this.parsing=!1},Chosen.prototype.result_add_group=function(group){return group.disabled?"":(group.dom_id=this.container_id+"_g_"+group.array_index,''+$("").text(group.label).html()+"")},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);if(high_top'+item.html+"":html=''+item.html+'',this.search_container.before(html),link=$("#"+choice_id).find("a").first(),link.click(function(evt){return _this.choice_destroy_link_click(evt)}))},Chosen.prototype.choice_destroy_link_click=function(evt){return evt.preventDefault(),this.is_disabled?evt.stopPropagation:(this.pending_destroy_click=!0,this.choice_destroy($(evt.target)))},Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link.attr("rel")))return this.choices-=1,this.show_search_field_default(),this.is_multiple&&this.choices>0&&this.search_field.val().length<1&&this.results_hide(),link.parents("li").first().remove()},Chosen.prototype.results_reset=function(){this.form_field.options[0].selected=!0,this.selected_item.find("span").text(this.default_text),this.is_multiple||this.selected_item.addClass("chzn-default"),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(){return this.current_value=this.form_field_jq.val(),this.selected_item.find("abbr").remove()},Chosen.prototype.result_select=function(evt){var high,high_id,item,position;if(this.result_highlight)return high=this.result_highlight,high_id=high.attr("id"),this.result_clear_highlight(),this.is_multiple?this.result_deactivate(high):(this.search_results.find(".result-selected").removeClass("result-selected"),this.result_single_selected=high,this.selected_item.removeClass("chzn-default")),high.addClass("result-selected"),position=high_id.substr(high_id.lastIndexOf("_")+1),item=this.results_data[position],item.selected=!0,this.form_field.options[item.options_index].selected=!0,this.is_multiple?this.choice_build(item):(this.selected_item.find("span").first().text(item.text),this.allow_single_deselect&&this.single_deselect_control_build()),(!evt.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.val(""),(this.is_multiple||this.form_field_jq.val()!==this.current_value)&&this.form_field_jq.trigger("change",{selected:this.form_field.options[item.options_index].value}),this.current_value=this.form_field_jq.val(),this.search_field_scale()},Chosen.prototype.result_activate=function(el){return el.addClass("active-result")},Chosen.prototype.result_deactivate=function(el){return el.removeClass("active-result")},Chosen.prototype.result_deselect=function(pos){var result,result_data;return result_data=this.results_data[pos],this.form_field.options[result_data.options_index].disabled?!1:(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,result=$("#"+this.container_id+"_o_"+pos),result.removeClass("result-selected").addClass("active-result").show(),this.result_clear_highlight(),this.winnow_results(),this.form_field_jq.trigger("change",{deselected:this.form_field.options[result_data.options_index].value}),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&this.selected_item.find("abbr").length<1)return this.selected_item.find("span").first().after('')},Chosen.prototype.winnow_results=function(){var found,option,part,parts,regex,regexAnchor,result,result_id,results,searchText,startpos,text,zregex,_i,_j,_len,_len2,_ref;this.no_results_clear(),results=0,searchText=this.search_field.val()===this.default_text?"":$("").text($.trim(this.search_field.val())).html(),regexAnchor=this.search_contains?"":"^",regex=new RegExp(regexAnchor+searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),zregex=new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(!option.disabled&&!option.empty)if(option.group)$("#"+option.dom_id).css("display","none");else if(!this.is_multiple||!option.selected){found=!1,result_id=option.dom_id,result=$("#"+result_id);if(regex.test(option.html))found=!0,results+=1;else if(option.html.indexOf(" ")>=0||option.html.indexOf("[")===0){parts=option.html.replace(/\[|\]/g,"").split(" ");if(parts.length)for(_j=0,_len2=parts.length;_j<_len2;_j++)part=parts[_j],regex.test(part)&&(found=!0,results+=1)}found?(searchText.length?(startpos=option.html.search(zregex),text=option.html.substr(0,startpos+searchText.length)+""+option.html.substr(startpos+searchText.length),text=text.substr(0,startpos)+""+text.substr(startpos)):text=option.html,result.html(text),this.result_activate(result),option.group_array_index!=null&&$("#"+this.results_data[option.group_array_index].dom_id).css("display","list-item")):(this.result_highlight&&result_id===this.result_highlight.attr("id")&&this.result_clear_highlight(),this.result_deactivate(result))}}return results<1&&searchText.length?this.no_results(searchText):this.winnow_results_set_highlight()},Chosen.prototype.winnow_results_clear=function(){var li,lis,_i,_len,_results;this.search_field.val(""),lis=this.search_results.find("li"),_results=[];for(_i=0,_len=lis.length;_i<_len;_i++)li=lis[_i],li=$(li),li.hasClass("group-result")?_results.push(li.css("display","auto")):!this.is_multiple||!li.hasClass("result-selected")?_results.push(this.result_activate(li)):_results.push(void 0);return _results},Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;if(!this.result_highlight){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;return no_results_html=$(''+this.results_none_found+' ""'),no_results_html.find("span").first().html(terms),this.search_results.append(no_results_html)},Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},Chosen.prototype.keydown_arrow=function(){var first_active,next_sib;this.result_highlight?this.results_showing&&(next_sib=this.result_highlight.nextAll("li.active-result").first(),next_sib&&this.result_do_highlight(next_sib)):(first_active=this.search_results.find("li.active-result").first(),first_active&&this.result_do_highlight($(first_active)));if(!this.results_showing)return this.results_show()},Chosen.prototype.keyup_arrow=function(){var prev_sibs;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return prev_sibs=this.result_highlight.prevAll("li.active-result"),prev_sibs.length?this.result_do_highlight(prev_sibs.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;if(this.pending_backstroke)return this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke();next_available_destroy=this.search_container.siblings("li.search-choice").last();if(next_available_destroy.length&&!next_available_destroy.hasClass("search-choice-disabled"))return this.pending_backstroke=next_available_destroy,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")},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(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale(),stroke!==8&&this.pending_backstroke&&this.clear_backstroke();switch(stroke){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var dd_top,div,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)+";";return div=$("",{style:style_block}),div.text(this.search_field.val()),$("body").append(div),w=div.width()+25,div.remove(),w>this.f_width-10&&(w=this.f_width-10),this.search_field.css({width:w+"px"}),dd_top=this.container.height(),this.dropdown.css({top:dd_top+"px"})}},Chosen.prototype.generate_random_id=function(){var string;string="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while($("#"+string).length>0)string+=this.generate_random_char();return string},Chosen}(AbstractChosen),get_side_border_padding=function(elmt){var side_border_padding;return side_border_padding=elmt.outerWidth()-elmt.width()},root.get_side_border_padding=get_side_border_padding}.call(this);
\ No newline at end of file
+(function(){var t,e,s,i,n=function(t,e){return function(){return t.apply(e,arguments)}},r=function(t,e){function s(){this.constructor=t}for(var i in e)o.call(e,i)&&(t[i]=e[i]);return s.prototype=e.prototype,t.prototype=new s,t.__super__=e.prototype,t},o={}.hasOwnProperty;(i=function(){function t(){this.options_index=0,this.parsed=[]}return t.prototype.add_node=function(t){return"OPTGROUP"===t.nodeName.toUpperCase()?this.add_group(t):this.add_option(t)},t.prototype.add_group=function(t){var e,s,i,n,r,o;for(e=this.parsed.length,this.parsed.push({array_index:e,group:!0,label:t.label,title:t.title?t.title:void 0,children:0,disabled:t.disabled,classes:t.className}),o=[],s=0,i=(r=t.childNodes).length;s"+t.group_label+""+t.html:t.html},t.prototype.mouse_enter=function(){return this.mouse_on_container=!0},t.prototype.mouse_leave=function(){return this.mouse_on_container=!1},t.prototype.input_focus=function(t){if(this.is_multiple){if(!this.active_field)return setTimeout(function(t){return function(){return t.container_mousedown()}}(this),50)}else if(!this.active_field)return this.activate_field()},t.prototype.input_blur=function(t){if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(t){return function(){return t.blur_test()}}(this),100)},t.prototype.label_click_handler=function(t){return this.is_multiple?this.container_mousedown(t):this.activate_field()},t.prototype.results_option_build=function(t){var e,s,i,n,r,o,h;for(e="",h=0,n=0,r=(o=this.results_data).length;n=this.max_shown_results));n++);return e},t.prototype.result_add_option=function(t){var e,s;return t.search_match&&this.include_option_in_results(t)?(e=[],t.disabled||t.selected&&this.is_multiple||e.push("active-result"),!t.disabled||t.selected&&this.is_multiple||e.push("disabled-result"),t.selected&&e.push("result-selected"),null!=t.group_array_index&&e.push("group-option"),""!==t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.style.cssText=t.style,s.setAttribute("data-option-array-index",t.array_index),s.innerHTML=t.highlighted_html||t.html,t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.result_add_group=function(t){var e,s;return(t.search_match||t.group_match)&&t.active_options>0?((e=[]).push("group-result"),t.classes&&e.push(t.classes),s=document.createElement("li"),s.className=e.join(" "),s.innerHTML=t.highlighted_html||this.escape_html(t.label),t.title&&(s.title=t.title),this.outerHTML(s)):""},t.prototype.results_update_field=function(){if(this.set_default_text(),this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.results_build(),this.results_showing)return this.winnow_results()},t.prototype.reset_single_select_options=function(){var t,e,s,i,n;for(n=[],t=0,e=(s=this.results_data).length;t"+this.escape_html(e)+""+this.escape_html(d)),null!=_&&(_.group_match=!0)):null!=n.group_array_index&&this.results_data[n.group_array_index].search_match&&(n.search_match=!0)));return this.result_clear_highlight(),c<1&&o.length?(this.update_results_content(""),this.no_results(o)):(this.update_results_content(this.results_option_build()),this.winnow_results_set_highlight())},t.prototype.get_search_regex=function(t){var e,s;return s=this.search_contains?t:"(^|\\s|\\b)"+t+"[^\\s]*",this.enable_split_word_search||this.search_contains||(s="^"+s),e=this.case_sensitive_search?"":"i",new RegExp(s,e)},t.prototype.search_string_match=function(t,e){var s;return s=e.exec(t),!this.search_contains&&(null!=s?s[1]:void 0)&&(s.index+=1),s},t.prototype.choices_count=function(){var t,e,s;if(null!=this.selected_option_count)return this.selected_option_count;for(this.selected_option_count=0,t=0,e=(s=this.form_field.options).length;t0?this.keydown_backstroke():this.pending_backstroke||(this.result_clear_highlight(),this.results_search());break;case 13:t.preventDefault(),this.results_showing&&this.result_select(t);break;case 27:this.results_showing&&this.results_hide();break;case 9:case 16:case 17:case 18:case 38:case 40:case 91:break;default:this.results_search()}},t.prototype.clipboard_event_checker=function(t){if(!this.is_disabled)return setTimeout(function(t){return function(){return t.results_search()}}(this),50)},t.prototype.container_width=function(){return null!=this.options.width?this.options.width:this.form_field.offsetWidth+"px"},t.prototype.include_option_in_results=function(t){return!(this.is_multiple&&!this.display_selected_options&&t.selected)&&(!(!this.display_disabled_options&&t.disabled)&&!t.empty)},t.prototype.search_results_touchstart=function(t){return this.touch_started=!0,this.search_results_mouseover(t)},t.prototype.search_results_touchmove=function(t){return this.touch_started=!1,this.search_results_mouseout(t)},t.prototype.search_results_touchend=function(t){if(this.touch_started)return this.search_results_mouseup(t)},t.prototype.outerHTML=function(t){var e;return t.outerHTML?t.outerHTML:((e=document.createElement("div")).appendChild(t),e.innerHTML)},t.prototype.get_single_html=function(){return'\n '+this.default_text+'\n
\n\n'},t.prototype.get_multi_html=function(){return'\n'},t.prototype.get_no_results_html=function(t){return'\n '+this.results_none_found+" "+this.escape_html(t)+"\n"},t.browser_is_supported=function(){return"Microsoft Internet Explorer"===window.navigator.appName?document.documentMode>=8:!(/iP(od|hone)/i.test(window.navigator.userAgent)||/IEMobile/i.test(window.navigator.userAgent)||/Windows Phone/i.test(window.navigator.userAgent)||/BlackBerry/i.test(window.navigator.userAgent)||/BB10/i.test(window.navigator.userAgent)||/Android.*Mobile/i.test(window.navigator.userAgent))},t.default_multiple_text="Select Some Options",t.default_single_text="Select an Option",t.default_no_result_text="No results match",t}(),(t=jQuery).fn.extend({chosen:function(i){return e.browser_is_supported()?this.each(function(e){var n,r;r=(n=t(this)).data("chosen"),"destroy"!==i?r instanceof s||n.data("chosen",new s(this,i)):r instanceof s&&r.destroy()}):this}}),s=function(s){function n(){return n.__super__.constructor.apply(this,arguments)}return r(n,e),n.prototype.setup=function(){return this.form_field_jq=t(this.form_field),this.current_selectedIndex=this.form_field.selectedIndex},n.prototype.set_up_html=function(){var e,s;return(e=["chosen-container"]).push("chosen-container-"+(this.is_multiple?"multi":"single")),this.inherit_select_classes&&this.form_field.className&&e.push(this.form_field.className),this.is_rtl&&e.push("chosen-rtl"),s={"class":e.join(" "),title:this.form_field.title},this.form_field.id.length&&(s.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"),this.container=t("",s),this.container.width(this.container_width()),this.is_multiple?this.container.html(this.get_multi_html()):this.container.html(this.get_single_html()),this.form_field_jq.hide().after(this.container),this.dropdown=this.container.find("div.chosen-drop").first(),this.search_field=this.container.find("input").first(),this.search_results=this.container.find("ul.chosen-results").first(),this.search_field_scale(),this.search_no_results=this.container.find("li.no-results").first(),this.is_multiple?(this.search_choices=this.container.find("ul.chosen-choices").first(),this.search_container=this.container.find("li.search-field").first()):(this.search_container=this.container.find("div.chosen-search").first(),this.selected_item=this.container.find(".chosen-single").first()),this.results_build(),this.set_tab_index(),this.set_label_behavior()},n.prototype.on_ready=function(){return this.form_field_jq.trigger("chosen:ready",{chosen:this})},n.prototype.register_observers=function(){return this.container.on("touchstart.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("touchend.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mousedown.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.container.on("mouseup.chosen",function(t){return function(e){t.container_mouseup(e)}}(this)),this.container.on("mouseenter.chosen",function(t){return function(e){t.mouse_enter(e)}}(this)),this.container.on("mouseleave.chosen",function(t){return function(e){t.mouse_leave(e)}}(this)),this.search_results.on("mouseup.chosen",function(t){return function(e){t.search_results_mouseup(e)}}(this)),this.search_results.on("mouseover.chosen",function(t){return function(e){t.search_results_mouseover(e)}}(this)),this.search_results.on("mouseout.chosen",function(t){return function(e){t.search_results_mouseout(e)}}(this)),this.search_results.on("mousewheel.chosen DOMMouseScroll.chosen",function(t){return function(e){t.search_results_mousewheel(e)}}(this)),this.search_results.on("touchstart.chosen",function(t){return function(e){t.search_results_touchstart(e)}}(this)),this.search_results.on("touchmove.chosen",function(t){return function(e){t.search_results_touchmove(e)}}(this)),this.search_results.on("touchend.chosen",function(t){return function(e){t.search_results_touchend(e)}}(this)),this.form_field_jq.on("chosen:updated.chosen",function(t){return function(e){t.results_update_field(e)}}(this)),this.form_field_jq.on("chosen:activate.chosen",function(t){return function(e){t.activate_field(e)}}(this)),this.form_field_jq.on("chosen:open.chosen",function(t){return function(e){t.container_mousedown(e)}}(this)),this.form_field_jq.on("chosen:close.chosen",function(t){return function(e){t.close_field(e)}}(this)),this.search_field.on("blur.chosen",function(t){return function(e){t.input_blur(e)}}(this)),this.search_field.on("keyup.chosen",function(t){return function(e){t.keyup_checker(e)}}(this)),this.search_field.on("keydown.chosen",function(t){return function(e){t.keydown_checker(e)}}(this)),this.search_field.on("focus.chosen",function(t){return function(e){t.input_focus(e)}}(this)),this.search_field.on("cut.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.search_field.on("paste.chosen",function(t){return function(e){t.clipboard_event_checker(e)}}(this)),this.is_multiple?this.search_choices.on("click.chosen",function(t){return function(e){t.choices_click(e)}}(this)):this.container.on("click.chosen",function(t){t.preventDefault()})},n.prototype.destroy=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.form_field_label.length>0&&this.form_field_label.off("click.chosen"),this.search_field[0].tabIndex&&(this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex),this.container.remove(),this.form_field_jq.removeData("chosen"),this.form_field_jq.show()},n.prototype.search_field_disabled=function(){return this.is_disabled=this.form_field.disabled||this.form_field_jq.parents("fieldset").is(":disabled"),this.container.toggleClass("chosen-disabled",this.is_disabled),this.search_field[0].disabled=this.is_disabled,this.is_multiple||this.selected_item.off("focus.chosen",this.activate_field),this.is_disabled?this.close_field():this.is_multiple?void 0:this.selected_item.on("focus.chosen",this.activate_field)},n.prototype.container_mousedown=function(e){var s;if(!this.is_disabled)return!e||"mousedown"!==(s=e.type)&&"touchstart"!==s||this.results_showing||e.preventDefault(),null!=e&&t(e.target).hasClass("search-choice-close")?void 0:(this.active_field?this.is_multiple||!e||t(e.target)[0]!==this.selected_item[0]&&!t(e.target).parents("a.chosen-single").length||(e.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),t(this.container[0].ownerDocument).on("click.chosen",this.click_test_action),this.results_show()),this.activate_field())},n.prototype.container_mouseup=function(t){if("ABBR"===t.target.nodeName&&!this.is_disabled)return this.results_reset(t)},n.prototype.search_results_mousewheel=function(t){var e;if(t.originalEvent&&(e=t.originalEvent.deltaY||-t.originalEvent.wheelDelta||t.originalEvent.detail),null!=e)return t.preventDefault(),"DOMMouseScroll"===t.type&&(e*=40),this.search_results.scrollTop(e+this.search_results.scrollTop())},n.prototype.blur_test=function(t){if(!this.active_field&&this.container.hasClass("chosen-container-active"))return this.close_field()},n.prototype.close_field=function(){return t(this.container[0].ownerDocument).off("click.chosen",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClass("chosen-container-active"),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale(),this.search_field.blur()},n.prototype.activate_field=function(){if(!this.is_disabled)return this.container.addClass("chosen-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},n.prototype.test_active_click=function(e){var s;return(s=t(e.target).closest(".chosen-container")).length&&this.container[0]===s[0]?this.active_field=!0:this.close_field()},n.prototype.results_build=function(){return this.parsing=!0,this.selected_option_count=null,this.results_data=i.select_to_array(this.form_field),this.is_multiple?this.search_choices.find("li.search-choice").remove():this.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},n.prototype.result_do_highlight=function(t){var e,s,i,n,r;if(t.length){if(this.result_clear_highlight(),this.result_highlight=t,this.result_highlight.addClass("highlighted"),i=parseInt(this.search_results.css("maxHeight"),10),r=this.search_results.scrollTop(),n=i+r,s=this.result_highlight.position().top+this.search_results.scrollTop(),(e=s+this.result_highlight.outerHeight())>=n)return this.search_results.scrollTop(e-i>0?e-i:0);if(s0)return this.form_field_label.on("click.chosen",this.label_click_handler)},n.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices_count()<1&&!this.active_field?(this.search_field.val(this.default_text),this.search_field.addClass("default")):(this.search_field.val(""),this.search_field.removeClass("default"))},n.prototype.search_results_mouseup=function(e){var s;if((s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first()).length)return this.result_highlight=s,this.result_select(e),this.search_field.focus()},n.prototype.search_results_mouseover=function(e){var s;if(s=t(e.target).hasClass("active-result")?t(e.target):t(e.target).parents(".active-result").first())return this.result_do_highlight(s)},n.prototype.search_results_mouseout=function(e){if(t(e.target).hasClass("active-result")||t(e.target).parents(".active-result").first())return this.result_clear_highlight()},n.prototype.choice_build=function(e){var s,i;return s=t("",{"class":"search-choice"}).html(""+this.choice_label(e)+""),e.disabled?s.addClass("search-choice-disabled"):((i=t("",{"class":"search-choice-close","data-option-array-index":e.array_index})).on("click.chosen",function(t){return function(e){return t.choice_destroy_link_click(e)}}(this)),s.append(i)),this.search_container.before(s)},n.prototype.choice_destroy_link_click=function(e){if(e.preventDefault(),e.stopPropagation(),!this.is_disabled)return this.choice_destroy(t(e.target))},n.prototype.choice_destroy=function(t){if(this.result_deselect(t[0].getAttribute("data-option-array-index")))return this.active_field?this.search_field.focus():this.show_search_field_default(),this.is_multiple&&this.choices_count()>0&&this.get_search_field_value().length<1&&this.results_hide(),t.parents("li").first().remove(),this.search_field_scale()},n.prototype.results_reset=function(){if(this.reset_single_select_options(),this.form_field.options[0].selected=!0,this.single_set_selected_text(),this.show_search_field_default(),this.results_reset_cleanup(),this.trigger_form_field_change(),this.active_field)return this.results_hide()},n.prototype.results_reset_cleanup=function(){return this.current_selectedIndex=this.form_field.selectedIndex,this.selected_item.find("abbr").remove()},n.prototype.result_select=function(t){var e,s;if(this.result_highlight)return e=this.result_highlight,this.result_clear_highlight(),this.is_multiple&&this.max_selected_options<=this.choices_count()?(this.form_field_jq.trigger("chosen:maxselected",{chosen:this}),!1):(this.is_multiple?e.removeClass("active-result"):this.reset_single_select_options(),e.addClass("result-selected"),s=this.results_data[e[0].getAttribute("data-option-array-index")],s.selected=!0,this.form_field.options[s.options_index].selected=!0,this.selected_option_count=null,this.search_field.val(""),this.is_multiple?this.choice_build(s):this.single_set_selected_text(this.choice_label(s)),this.is_multiple&&(!this.hide_results_on_select||t.metaKey||t.ctrlKey)?this.winnow_results():(this.results_hide(),this.show_search_field_default()),(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex)&&this.trigger_form_field_change({selected:this.form_field.options[s.options_index].value}),this.current_selectedIndex=this.form_field.selectedIndex,t.preventDefault(),this.search_field_scale())},n.prototype.single_set_selected_text=function(t){return null==t&&(t=this.default_text),t===this.default_text?this.selected_item.addClass("chosen-default"):(this.single_deselect_control_build(),this.selected_item.removeClass("chosen-default")),this.selected_item.find("span").html(t)},n.prototype.result_deselect=function(t){var e;return e=this.results_data[t],!this.form_field.options[e.options_index].disabled&&(e.selected=!1,this.form_field.options[e.options_index].selected=!1,this.selected_option_count=null,this.result_clear_highlight(),this.results_showing&&this.winnow_results(),this.trigger_form_field_change({deselected:this.form_field.options[e.options_index].value}),this.search_field_scale(),!0)},n.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect)return this.selected_item.find("abbr").length||this.selected_item.find("span").first().after(''),this.selected_item.addClass("chosen-single-with-deselect")},n.prototype.get_search_field_value=function(){return this.search_field.val()},n.prototype.get_search_text=function(){return t.trim(this.get_search_field_value())},n.prototype.escape_html=function(e){return t("").text(e).html()},n.prototype.winnow_results_set_highlight=function(){var t,e;if(e=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),null!=(t=e.length?e.first():this.search_results.find(".active-result").first()))return this.result_do_highlight(t)},n.prototype.no_results=function(t){var e;return e=this.get_no_results_html(t),this.search_results.append(e),this.form_field_jq.trigger("chosen:no_results",{chosen:this})},n.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},n.prototype.keydown_arrow=function(){var t;return this.results_showing&&this.result_highlight?(t=this.result_highlight.nextAll("li.active-result").first())?this.result_do_highlight(t):void 0:this.results_show()},n.prototype.keyup_arrow=function(){var t;return this.results_showing||this.is_multiple?this.result_highlight?(t=this.result_highlight.prevAll("li.active-result")).length?this.result_do_highlight(t.first()):(this.choices_count()>0&&this.results_hide(),this.result_clear_highlight()):void 0:this.results_show()},n.prototype.keydown_backstroke=function(){var t;return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(t=this.search_container.siblings("li.search-choice").last()).length&&!t.hasClass("search-choice-disabled")?(this.pending_backstroke=t,this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus")):void 0},n.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},n.prototype.search_field_scale=function(){var e,s,i,n,r,o,h;if(this.is_multiple){for(r={position:"absolute",left:"-1000px",top:"-1000px",display:"none",whiteSpace:"pre"},s=0,i=(o=["fontSize","fontStyle","fontWeight","fontFamily","lineHeight","textTransform","letterSpacing"]).length;s").css(r)).text(this.get_search_field_value()),t("body").append(e),h=e.width()+25,e.remove(),this.container.is(":visible")&&(h=Math.min(this.container.outerWidth()-10,h)),this.search_field.width(h)}},n.prototype.trigger_form_field_change=function(t){return this.form_field_jq.trigger("input",t),this.form_field_jq.trigger("change",t)},n}()}).call(this);
\ No newline at end of file
diff --git a/js/chosen/chosen.min.css b/js/chosen/chosen.min.css
new file mode 100644
index 0000000000..779d83d915
--- /dev/null
+++ b/js/chosen/chosen.min.css
@@ -0,0 +1,11 @@
+/*!
+Chosen, a Select Box Enhancer for jQuery and Prototype
+by Patrick Filler for Harvest, http://getharvest.com
+
+Version 1.8.2
+Full source at https://github.com/harvesthq/chosen
+Copyright (c) 2011-2017 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.
+*/.chosen-container{position:relative;display:inline-block;vertical-align:middle;font-size:13px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.chosen-container *{-webkit-box-sizing:border-box;box-sizing:border-box}.chosen-container .chosen-drop{position:absolute;top:100%;z-index:1010;width:100%;border:1px solid #aaa;border-top:0;background:#fff;-webkit-box-shadow:0 4px 5px rgba(0,0,0,.15);box-shadow:0 4px 5px rgba(0,0,0,.15);clip:rect(0,0,0,0)}.chosen-container.chosen-with-drop .chosen-drop{clip:auto}.chosen-container a{cursor:pointer}.chosen-container .chosen-single .group-name,.chosen-container .search-choice .group-name{margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:400;color:#999}.chosen-container .chosen-single .group-name:after,.chosen-container .search-choice .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,left top,left bottom,color-stop(20%,#fff),color-stop(50%,#f6f6f6),color-stop(52%,#eee),to(#f4f4f4));background:linear-gradient(#fff 20%,#f6f6f6 50%,#eee 52%,#f4f4f4 100%);background-clip:padding-box;-webkit-box-shadow:0 0 3px #fff inset,0 1px 1px rgba(0,0,0,.1);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: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;clip:rect(0,0,0,0)}.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,left top,left bottom,color-stop(20%,#3875d7),color-stop(90%,#2a62bc));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,left top,left bottom,color-stop(1%,#eee),color-stop(15%,#fff));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:0 0!important;-webkit-box-shadow:none;box-shadow:none;color:#999;font-size:100%;font-family:sans-serif;line-height:normal;border-radius:0;width:25px}.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,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));background-image:linear-gradient(#f4f4f4 20%,#f0f0f0 50%,#e8e8e8 52%,#eee 100%);background-size:100% 19px;background-repeat:repeat-x;background-clip:padding-box;-webkit-box-shadow:0 0 2px #fff inset,0 1px 0 rgba(0,0,0,.05);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,left top,left bottom,color-stop(20%,#f4f4f4),color-stop(50%,#f0f0f0),color-stop(52%,#e8e8e8),to(#eee));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;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);box-shadow:0 0 5px rgba(0,0,0,.3)}.chosen-container-active.chosen-with-drop .chosen-single{border:1px solid #aaa;border-bottom-right-radius:0;border-bottom-left-radius:0;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(20%,#eee),color-stop(80%,#fff));background-image:linear-gradient(#eee 20%,#fff 80%);-webkit-box-shadow:0 1px 0 #fff inset;box-shadow:0 1px 0 #fff inset}.chosen-container-active.chosen-with-drop .chosen-single div{border-left:none;background:0 0}.chosen-container-active.chosen-with-drop .chosen-single div b{background-position:-18px 2px}.chosen-container-active .chosen-choices{border:1px solid #5897fb;-webkit-box-shadow:0 0 5px rgba(0,0,0,.3);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 .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: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-container .chosen-results-scroll-down span,.chosen-container .chosen-results-scroll-up span,.chosen-container-multi .chosen-choices .search-choice .search-choice-close,.chosen-container-single .chosen-search input[type=text],.chosen-container-single .chosen-single abbr,.chosen-container-single .chosen-single div b,.chosen-rtl .chosen-search input[type=text]{background-image:url(chosen-sprite@2x.png)!important;background-size:52px 37px!important;background-repeat:no-repeat!important}}
\ No newline at end of file
diff --git a/js/chosen/chosen.proto.js b/js/chosen/chosen.proto.js
deleted file mode 100644
index 017f3b3516..0000000000
--- a/js/chosen/chosen.proto.js
+++ /dev/null
@@ -1,1025 +0,0 @@
-// Chosen, a Select Box Enhancer for jQuery and Protoype
-// by Patrick Filler for Harvest, http://getharvest.com
-//
-// Version 0.9.8
-// Full source at https://github.com/harvesthq/chosen
-// Copyright (c) 2011 Harvest http://getharvest.com
-
-// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-// This file is generated by `cake build`, do not edit it by hand.
-(function() {
- var SelectParser;
-
- 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: group.label,
- children: 0,
- disabled: group.disabled
- });
- _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,
- selected: option.selected,
- disabled: group_disabled === true ? group_disabled : option.disabled,
- group_array_index: group_position,
- 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;
- }
- };
-
- 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;
- };
-
- this.SelectParser = SelectParser;
-
-}).call(this);
-
-/*
-Chosen source: generate output using 'cake build'
-Copyright (c) 2011 by Harvest
-*/
-
-(function() {
- var AbstractChosen, root;
-
- root = this;
-
- AbstractChosen = (function() {
-
- function AbstractChosen(form_field, options) {
- this.form_field = form_field;
- this.options = options != null ? options : {};
- this.set_default_values();
- this.is_multiple = this.form_field.multiple;
- this.set_default_text();
- this.setup();
- this.set_up_html();
- this.register_observers();
- this.finish_setup();
- }
-
- 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.result_single_selected = 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.search_contains = this.options.search_contains || false;
- this.choices = 0;
- this.single_backstroke_delete = this.options.single_backstroke_delete || false;
- return this.max_selected_options = this.options.max_selected_options || Infinity;
- };
-
- 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 || "Select Some Options";
- } else {
- this.default_text = this.options.placeholder_text_single || this.options.placeholder_text || "Select an Option";
- }
- return this.results_none_found = this.form_field.getAttribute("data-no_results_text") || this.options.no_results_text || "No results match";
- };
-
- 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.result_add_option = function(option) {
- var classes, style;
- if (!option.disabled) {
- option.dom_id = this.container_id + "_o_" + option.array_index;
- classes = option.selected && this.is_multiple ? [] : ["active-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);
- style = option.style.cssText !== "" ? " style=\"" + option.style + "\"" : "";
- return '' + option.html + '';
- } else {
- return "";
- }
- };
-
- AbstractChosen.prototype.results_update_field = function() {
- if (!this.is_multiple) this.results_reset_cleanup();
- this.result_clear_highlight();
- this.result_single_selected = null;
- return this.results_build();
- };
-
- 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.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 > 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:
- break;
- default:
- return this.results_search();
- }
- };
-
- AbstractChosen.prototype.generate_field_id = function() {
- var new_id;
- new_id = this.generate_random_id();
- this.form_field.id = new_id;
- return new_id;
- };
-
- AbstractChosen.prototype.generate_random_char = function() {
- var chars, newchar, rand;
- chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- rand = Math.floor(Math.random() * chars.length);
- return newchar = chars.substring(rand, rand + 1);
- };
-
- return AbstractChosen;
-
- })();
-
- root.AbstractChosen = AbstractChosen;
-
-}).call(this);
-
-/*
-Chosen source: generate output using 'cake build'
-Copyright (c) 2011 by Harvest
-*/
-
-(function() {
- var Chosen, get_side_border_padding, root,
- __hasProp = Object.prototype.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; };
-
- root = this;
-
- Chosen = (function(_super) {
-
- __extends(Chosen, _super);
-
- function Chosen() {
- Chosen.__super__.constructor.apply(this, arguments);
- }
-
- Chosen.prototype.setup = function() {
- this.current_value = this.form_field.value;
- return this.is_rtl = this.form_field.hasClassName("chzn-rtl");
- };
-
- Chosen.prototype.finish_setup = function() {
- return this.form_field.addClassName("chzn-done");
- };
-
- Chosen.prototype.set_default_values = function() {
- Chosen.__super__.set_default_values.call(this);
- this.single_temp = new Template('#{default}
');
- this.multi_temp = new Template('');
- this.choice_temp = new Template('#{choice}');
- this.choice_noclose_temp = new Template('#{choice}');
- return this.no_results_temp = new Template('' + this.results_none_found + ' "#{terms}"');
- };
-
- Chosen.prototype.set_up_html = function() {
- var base_template, container_props, dd_top, dd_width, sf_width;
- this.container_id = this.form_field.identify().replace(/[^\w]/g, '_') + "_chzn";
- this.f_width = this.form_field.getStyle("width") ? parseInt(this.form_field.getStyle("width"), 10) : this.form_field.getWidth();
- container_props = {
- 'id': this.container_id,
- 'class': "chzn-container" + (this.is_rtl ? ' chzn-rtl' : ''),
- 'style': 'width: ' + this.f_width + 'px'
- };
- base_template = 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: base_template
- });
- this.container = $(this.container_id);
- this.container.addClassName("chzn-container-" + (this.is_multiple ? "multi" : "single"));
- this.dropdown = this.container.down('div.chzn-drop');
- dd_top = this.container.getHeight();
- dd_width = this.f_width - get_side_border_padding(this.dropdown);
- this.dropdown.setStyle({
- "width": dd_width + "px",
- "top": dd_top + "px"
- });
- this.search_field = this.container.down('input');
- this.search_results = this.container.down('ul.chzn-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.chzn-choices');
- this.search_container = this.container.down('li.search-field');
- } else {
- this.search_container = this.container.down('div.chzn-search');
- this.selected_item = this.container.down('.chzn-single');
- sf_width = dd_width - get_side_border_padding(this.search_container) - get_side_border_padding(this.search_field);
- this.search_field.setStyle({
- "width": sf_width + "px"
- });
- }
- this.results_build();
- this.set_tab_index();
- return this.form_field.fire("liszt:ready", {
- chosen: this
- });
- };
-
- Chosen.prototype.register_observers = function() {
- var _this = this;
- 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.form_field.observe("liszt:updated", function(evt) {
- return _this.results_update_field(evt);
- });
- this.form_field.observe("liszt:activate", function(evt) {
- return _this.activate_field(evt);
- });
- this.form_field.observe("liszt:open", function(evt) {
- return _this.container_mousedown(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);
- });
- 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.search_field_disabled = function() {
- this.is_disabled = this.form_field.disabled;
- if (this.is_disabled) {
- this.container.addClassName('chzn-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('chzn-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) {
- var target_closelink;
- if (!this.is_disabled) {
- target_closelink = evt != null ? evt.target.hasClassName("search-choice-close") : false;
- if (evt && evt.type === "mousedown" && !this.results_showing) evt.stop();
- if (!this.pending_destroy_click && !target_closelink) {
- if (!this.active_field) {
- if (this.is_multiple) this.search_field.clear();
- document.observe("click", this.click_test_action);
- this.results_show();
- } else if (!this.is_multiple && evt && (evt.target === this.selected_item || evt.target.up("a.chzn-single"))) {
- this.results_toggle();
- }
- return this.activate_field();
- } else {
- return this.pending_destroy_click = false;
- }
- }
- };
-
- Chosen.prototype.container_mouseup = function(evt) {
- if (evt.target.nodeName === "ABBR" && !this.is_disabled) {
- return this.results_reset(evt);
- }
- };
-
- Chosen.prototype.blur_test = function(evt) {
- if (!this.active_field && this.container.hasClassName("chzn-container-active")) {
- return this.close_field();
- }
- };
-
- Chosen.prototype.close_field = function() {
- document.stopObserving("click", this.click_test_action);
- this.active_field = false;
- this.results_hide();
- this.container.removeClassName("chzn-container-active");
- this.winnow_results_clear();
- this.clear_backstroke();
- this.show_search_field_default();
- return this.search_field_scale();
- };
-
- Chosen.prototype.activate_field = function() {
- this.container.addClassName("chzn-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('#' + this.container_id)) {
- return this.active_field = true;
- } else {
- return this.close_field();
- }
- };
-
- Chosen.prototype.results_build = function() {
- var content, data, _i, _len, _ref;
- this.parsing = true;
- this.results_data = root.SelectParser.select_to_array(this.form_field);
- if (this.is_multiple && this.choices > 0) {
- this.search_choices.select("li.search-choice").invoke("remove");
- this.choices = 0;
- } else if (!this.is_multiple) {
- this.selected_item.addClassName("chzn-default").down("span").update(this.default_text);
- if (this.disable_search || this.form_field.options.length <= this.disable_search_threshold) {
- this.container.addClassName("chzn-container-single-nosearch");
- } else {
- this.container.removeClassName("chzn-container-single-nosearch");
- }
- }
- content = '';
- _ref = this.results_data;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- data = _ref[_i];
- if (data.group) {
- content += this.result_add_group(data);
- } else if (!data.empty) {
- content += this.result_add_option(data);
- if (data.selected && this.is_multiple) {
- this.choice_build(data);
- } else if (data.selected && !this.is_multiple) {
- this.selected_item.removeClassName("chzn-default").down("span").update(data.html);
- if (this.allow_single_deselect) this.single_deselect_control_build();
- }
- }
- }
- this.search_field_disabled();
- this.show_search_field_default();
- this.search_field_scale();
- this.search_results.update(content);
- return this.parsing = false;
- };
-
- Chosen.prototype.result_add_group = function(group) {
- if (!group.disabled) {
- group.dom_id = this.container_id + "_g_" + group.array_index;
- return '' + group.label.escapeHTML() + '';
- } else {
- return "";
- }
- };
-
- 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() {
- var dd_top;
- if (!this.is_multiple) {
- this.selected_item.addClassName('chzn-single-with-drop');
- if (this.result_single_selected) {
- this.result_do_highlight(this.result_single_selected);
- }
- } else if (this.max_selected_options <= this.choices) {
- this.form_field.fire("liszt:maxselected", {
- chosen: this
- });
- return false;
- }
- dd_top = this.is_multiple ? this.container.getHeight() : this.container.getHeight() - 1;
- this.form_field.fire("liszt:showing_dropdown", {
- chosen: this
- });
- this.dropdown.setStyle({
- "top": dd_top + "px",
- "left": 0
- });
- this.results_showing = true;
- this.search_field.focus();
- this.search_field.value = this.search_field.value;
- return this.winnow_results();
- };
-
- Chosen.prototype.results_hide = function() {
- if (!this.is_multiple) {
- this.selected_item.removeClassName('chzn-single-with-drop');
- }
- this.result_clear_highlight();
- this.form_field.fire("liszt:hiding_dropdown", {
- chosen: this
- });
- this.dropdown.setStyle({
- "left": "-9000px"
- });
- 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.show_search_field_default = function() {
- if (this.is_multiple && this.choices < 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.choices_click = function(evt) {
- evt.preventDefault();
- if (this.active_field && !(evt.target.hasClassName('search-choice') || evt.target.up('.search-choice')) && !this.results_showing) {
- return this.results_show();
- }
- };
-
- Chosen.prototype.choice_build = function(item) {
- var choice_id, link,
- _this = this;
- if (this.is_multiple && this.max_selected_options <= this.choices) {
- this.form_field.fire("liszt:maxselected", {
- chosen: this
- });
- return false;
- }
- choice_id = this.container_id + "_c_" + item.array_index;
- this.choices += 1;
- this.search_container.insert({
- before: (item.disabled ? this.choice_noclose_temp : this.choice_temp).evaluate({
- id: choice_id,
- choice: item.html,
- position: item.array_index
- })
- });
- if (!item.disabled) {
- link = $(choice_id).down('a');
- return link.observe("click", function(evt) {
- return _this.choice_destroy_link_click(evt);
- });
- }
- };
-
- Chosen.prototype.choice_destroy_link_click = function(evt) {
- evt.preventDefault();
- if (!this.is_disabled) {
- this.pending_destroy_click = true;
- return this.choice_destroy(evt.target);
- }
- };
-
- Chosen.prototype.choice_destroy = function(link) {
- if (this.result_deselect(link.readAttribute("rel"))) {
- this.choices -= 1;
- this.show_search_field_default();
- if (this.is_multiple && this.choices > 0 && this.search_field.value.length < 1) {
- this.results_hide();
- }
- return link.up('li').remove();
- }
- };
-
- Chosen.prototype.results_reset = function() {
- this.form_field.options[0].selected = true;
- this.selected_item.down("span").update(this.default_text);
- if (!this.is_multiple) this.selected_item.addClassName("chzn-default");
- 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_value = this.form_field.value;
- deselect_trigger = this.selected_item.down("abbr");
- if (deselect_trigger) return deselect_trigger.remove();
- };
-
- Chosen.prototype.result_select = function(evt) {
- var high, item, position;
- if (this.result_highlight) {
- high = this.result_highlight;
- this.result_clear_highlight();
- if (this.is_multiple) {
- this.result_deactivate(high);
- } else {
- this.search_results.descendants(".result-selected").invoke("removeClassName", "result-selected");
- this.selected_item.removeClassName("chzn-default");
- this.result_single_selected = high;
- }
- high.addClassName("result-selected");
- position = high.id.substr(high.id.lastIndexOf("_") + 1);
- item = this.results_data[position];
- item.selected = true;
- this.form_field.options[item.options_index].selected = true;
- if (this.is_multiple) {
- this.choice_build(item);
- } else {
- this.selected_item.down("span").update(item.html);
- if (this.allow_single_deselect) this.single_deselect_control_build();
- }
- if (!(evt.metaKey && this.is_multiple)) this.results_hide();
- this.search_field.value = "";
- if (typeof Event.simulate === 'function' && (this.is_multiple || this.form_field.value !== this.current_value)) {
- this.form_field.simulate("change");
- }
- this.current_value = this.form_field.value;
- return this.search_field_scale();
- }
- };
-
- Chosen.prototype.result_activate = function(el) {
- return el.addClassName("active-result");
- };
-
- Chosen.prototype.result_deactivate = function(el) {
- return el.removeClassName("active-result");
- };
-
- Chosen.prototype.result_deselect = function(pos) {
- var result, 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;
- result = $(this.container_id + "_o_" + pos);
- result.removeClassName("result-selected").addClassName("active-result").show();
- this.result_clear_highlight();
- 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 && !this.selected_item.down("abbr")) {
- return this.selected_item.down("span").insert({
- after: ""
- });
- }
- };
-
- Chosen.prototype.winnow_results = function() {
- var found, option, part, parts, regex, regexAnchor, result_id, results, searchText, startpos, text, zregex, _i, _j, _len, _len2, _ref;
- this.no_results_clear();
- results = 0;
- searchText = this.search_field.value === this.default_text ? "" : this.search_field.value.strip().escapeHTML();
- regexAnchor = this.search_contains ? "" : "^";
- regex = new RegExp(regexAnchor + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
- zregex = new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
- _ref = this.results_data;
- for (_i = 0, _len = _ref.length; _i < _len; _i++) {
- option = _ref[_i];
- if (!option.disabled && !option.empty) {
- if (option.group) {
- $(option.dom_id).hide();
- } else if (!(this.is_multiple && option.selected)) {
- found = false;
- result_id = option.dom_id;
- if (regex.test(option.html)) {
- found = true;
- results += 1;
- } else if (option.html.indexOf(" ") >= 0 || option.html.indexOf("[") === 0) {
- parts = option.html.replace(/\[|\]/g, "").split(" ");
- if (parts.length) {
- for (_j = 0, _len2 = parts.length; _j < _len2; _j++) {
- part = parts[_j];
- if (regex.test(part)) {
- found = true;
- results += 1;
- }
- }
- }
- }
- if (found) {
- if (searchText.length) {
- startpos = option.html.search(zregex);
- text = option.html.substr(0, startpos + searchText.length) + '' + option.html.substr(startpos + searchText.length);
- text = text.substr(0, startpos) + '' + text.substr(startpos);
- } else {
- text = option.html;
- }
- if ($(result_id).innerHTML !== text) $(result_id).update(text);
- this.result_activate($(result_id));
- if (option.group_array_index != null) {
- $(this.results_data[option.group_array_index].dom_id).setStyle({
- display: 'list-item'
- });
- }
- } else {
- if ($(result_id) === this.result_highlight) {
- this.result_clear_highlight();
- }
- this.result_deactivate($(result_id));
- }
- }
- }
- }
- if (results < 1 && searchText.length) {
- return this.no_results(searchText);
- } else {
- return this.winnow_results_set_highlight();
- }
- };
-
- Chosen.prototype.winnow_results_clear = function() {
- var li, lis, _i, _len, _results;
- this.search_field.clear();
- lis = this.search_results.select("li");
- _results = [];
- for (_i = 0, _len = lis.length; _i < _len; _i++) {
- li = lis[_i];
- if (li.hasClassName("group-result")) {
- _results.push(li.show());
- } else if (!this.is_multiple || !li.hasClassName("result-selected")) {
- _results.push(this.result_activate(li));
- } else {
- _results.push(void 0);
- }
- }
- return _results;
- };
-
- Chosen.prototype.winnow_results_set_highlight = function() {
- var do_high;
- if (!this.result_highlight) {
- 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) {
- return this.search_results.insert(this.no_results_temp.evaluate({
- terms: terms
- }));
- };
-
- 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 actives, nexts, sibs;
- actives = this.search_results.select("li.active-result");
- if (actives.length) {
- if (!this.result_highlight) {
- this.result_do_highlight(actives.first());
- } else if (this.results_showing) {
- sibs = this.result_highlight.nextSiblings();
- nexts = sibs.intersect(actives);
- if (nexts.length) this.result_do_highlight(nexts.first());
- }
- if (!this.results_showing) 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 > 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, _ref;
- stroke = (_ref = evt.which) != null ? _ref : 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:
- evt.preventDefault();
- break;
- case 38:
- evt.preventDefault();
- this.keyup_arrow();
- break;
- case 40:
- this.keydown_arrow();
- break;
- }
- };
-
- Chosen.prototype.search_field_scale = function() {
- var dd_top, div, 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();
- if (w > this.f_width - 10) w = this.f_width - 10;
- this.search_field.setStyle({
- 'width': w + 'px'
- });
- dd_top = this.container.getHeight();
- return this.dropdown.setStyle({
- "top": dd_top + "px"
- });
- }
- };
-
- return Chosen;
-
- })(AbstractChosen);
-
- root.Chosen = Chosen;
-
- if (Prototype.Browser.IE) {
- if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)) {
- Prototype.BrowserFeatures['Version'] = new Number(RegExp.$1);
- }
- }
-
- get_side_border_padding = function(elmt) {
- var layout, side_border_padding;
- layout = new Element.Layout(elmt);
- return side_border_padding = layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right");
- };
-
- root.get_side_border_padding = get_side_border_padding;
-
-}).call(this);
diff --git a/js/chosen/chosen.proto.min.js b/js/chosen/chosen.proto.min.js
deleted file mode 100644
index 2fb90cd3ab..0000000000
--- a/js/chosen/chosen.proto.min.js
+++ /dev/null
@@ -1,10 +0,0 @@
-// Chosen, a Select Box Enhancer for jQuery and Protoype
-// by Patrick Filler for Harvest, http://getharvest.com
-//
-// Version 0.9.8
-// Full source at https://github.com/harvesthq/chosen
-// Copyright (c) 2011 Harvest http://getharvest.com
-
-// MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
-// This file is generated by `cake build`, do not edit it by hand.
-(function(){var SelectParser;SelectParser=function(){function SelectParser(){this.options_index=0,this.parsed=[]}return SelectParser.prototype.add_node=function(child){return child.nodeName.toUpperCase()==="OPTGROUP"?this.add_group(child):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:!0,label:group.label,children:0,disabled:group.disabled}),_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")return option.text!==""?(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,selected:option.selected,disabled:group_disabled===!0?group_disabled:option.disabled,group_array_index:group_position,classes:option.className,style:option.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},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},this.SelectParser=SelectParser}).call(this),function(){var AbstractChosen,root;root=this,AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field,this.options=options!=null?options:{},this.set_default_values(),this.is_multiple=this.form_field.multiple,this.set_default_text(),this.setup(),this.set_up_html(),this.register_observers(),this.finish_setup()}return AbstractChosen.prototype.set_default_values=function(){var _this=this;return 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=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.result_single_selected=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:!1,this.disable_search_threshold=this.options.disable_search_threshold||0,this.disable_search=this.options.disable_search||!1,this.search_contains=this.options.search_contains||!1,this.choices=0,this.single_backstroke_delete=this.options.single_backstroke_delete||!1,this.max_selected_options=this.options.max_selected_options||Infinity},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||"Select Some Options":this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||"Select an Option",this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||"No results match"},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(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)return this.active_field=!1,setTimeout(function(){return _this.blur_test()},100)},AbstractChosen.prototype.result_add_option=function(option){var classes,style;return option.disabled?"":(option.dom_id=this.container_id+"_o_"+option.array_index,classes=option.selected&&this.is_multiple?[]:["active-result"],option.selected&&classes.push("result-selected"),option.group_array_index!=null&&classes.push("group-option"),option.classes!==""&&classes.push(option.classes),style=option.style.cssText!==""?' style="'+option.style+'"':"",'"+option.html+"")},AbstractChosen.prototype.results_update_field=function(){return this.is_multiple||this.results_reset_cleanup(),this.result_clear_highlight(),this.result_single_selected=null,this.results_build()},AbstractChosen.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},AbstractChosen.prototype.results_search=function(evt){return this.results_showing?this.winnow_results():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>0)return this.keydown_backstroke();if(!this.pending_backstroke)return this.result_clear_highlight(),this.results_search();break;case 13:evt.preventDefault();if(this.results_showing)return this.result_select(evt);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},AbstractChosen.prototype.generate_field_id=function(){var new_id;return new_id=this.generate_random_id(),this.form_field.id=new_id,new_id},AbstractChosen.prototype.generate_random_char=function(){var chars,newchar,rand;return chars="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",rand=Math.floor(Math.random()*chars.length),newchar=chars.substring(rand,rand+1)},AbstractChosen}(),root.AbstractChosen=AbstractChosen}.call(this),function(){var Chosen,get_side_border_padding,root,__hasProp=Object.prototype.hasOwnProperty,__extends=function(child,parent){function ctor(){this.constructor=child}for(var key in parent)__hasProp.call(parent,key)&&(child[key]=parent[key]);return ctor.prototype=parent.prototype,child.prototype=new ctor,child.__super__=parent.prototype,child};root=this,Chosen=function(_super){function Chosen(){Chosen.__super__.constructor.apply(this,arguments)}return __extends(Chosen,_super),Chosen.prototype.setup=function(){return this.current_value=this.form_field.value,this.is_rtl=this.form_field.hasClassName("chzn-rtl")},Chosen.prototype.finish_setup=function(){return this.form_field.addClassName("chzn-done")},Chosen.prototype.set_default_values=function(){return Chosen.__super__.set_default_values.call(this),this.single_temp=new Template('#{default}
'),this.multi_temp=new Template(''),this.choice_temp=new Template('#{choice}'),this.choice_noclose_temp=new Template('#{choice}'),this.no_results_temp=new Template(''+this.results_none_found+' "#{terms}"')},Chosen.prototype.set_up_html=function(){var base_template,container_props,dd_top,dd_width,sf_width;return this.container_id=this.form_field.identify().replace(/[^\w]/g,"_")+"_chzn",this.f_width=this.form_field.getStyle("width")?parseInt(this.form_field.getStyle("width"),10):this.form_field.getWidth(),container_props={id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px"},base_template=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:base_template}),this.container=$(this.container_id),this.container.addClassName("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.down("div.chzn-drop"),dd_top=this.container.getHeight(),dd_width=this.f_width-get_side_border_padding(this.dropdown),this.dropdown.setStyle({width:dd_width+"px",top:dd_top+"px"}),this.search_field=this.container.down("input"),this.search_results=this.container.down("ul.chzn-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.chzn-choices"),this.search_container=this.container.down("li.search-field")):(this.search_container=this.container.down("div.chzn-search"),this.selected_item=this.container.down(".chzn-single"),sf_width=dd_width-get_side_border_padding(this.search_container)-get_side_border_padding(this.search_field),this.search_field.setStyle({width:sf_width+"px"})),this.results_build(),this.set_tab_index(),this.form_field.fire("liszt:ready",{chosen:this})},Chosen.prototype.register_observers=function(){var _this=this;return 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.form_field.observe("liszt:updated",function(evt){return _this.results_update_field(evt)}),this.form_field.observe("liszt:activate",function(evt){return _this.activate_field(evt)}),this.form_field.observe("liszt:open",function(evt){return _this.container_mousedown(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.is_multiple?this.search_choices.observe("click",function(evt){return _this.choices_click(evt)}):this.container.observe("click",function(evt){return evt.preventDefault()})},Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field.disabled;if(this.is_disabled)return this.container.addClassName("chzn-disabled"),this.search_field.disabled=!0,this.is_multiple||this.selected_item.stopObserving("focus",this.activate_action),this.close_field();this.container.removeClassName("chzn-disabled"),this.search_field.disabled=!1;if(!this.is_multiple)return this.selected_item.observe("focus",this.activate_action)},Chosen.prototype.container_mousedown=function(evt){var target_closelink;if(!this.is_disabled)return target_closelink=evt!=null?evt.target.hasClassName("search-choice-close"):!1,evt&&evt.type==="mousedown"&&!this.results_showing&&evt.stop(),!this.pending_destroy_click&&!target_closelink?(this.active_field?!this.is_multiple&&evt&&(evt.target===this.selected_item||evt.target.up("a.chzn-single"))&&this.results_toggle():(this.is_multiple&&this.search_field.clear(),document.observe("click",this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled)return this.results_reset(evt)},Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClassName("chzn-container-active"))return this.close_field()},Chosen.prototype.close_field=function(){return document.stopObserving("click",this.click_test_action),this.active_field=!1,this.results_hide(),this.container.removeClassName("chzn-container-active"),this.winnow_results_clear(),this.clear_backstroke(),this.show_search_field_default(),this.search_field_scale()},Chosen.prototype.activate_field=function(){return this.container.addClassName("chzn-container-active"),this.active_field=!0,this.search_field.value=this.search_field.value,this.search_field.focus()},Chosen.prototype.test_active_click=function(evt){return evt.target.up("#"+this.container_id)?this.active_field=!0:this.close_field()},Chosen.prototype.results_build=function(){var content,data,_i,_len,_ref;this.parsing=!0,this.results_data=root.SelectParser.select_to_array(this.form_field),this.is_multiple&&this.choices>0?(this.search_choices.select("li.search-choice").invoke("remove"),this.choices=0):this.is_multiple||(this.selected_item.addClassName("chzn-default").down("span").update(this.default_text),this.disable_search||this.form_field.options.length<=this.disable_search_threshold?this.container.addClassName("chzn-container-single-nosearch"):this.container.removeClassName("chzn-container-single-nosearch")),content="",_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++)data=_ref[_i],data.group?content+=this.result_add_group(data):data.empty||(content+=this.result_add_option(data),data.selected&&this.is_multiple?this.choice_build(data):data.selected&&!this.is_multiple&&(this.selected_item.removeClassName("chzn-default").down("span").update(data.html),this.allow_single_deselect&&this.single_deselect_control_build()));return this.search_field_disabled(),this.show_search_field_default(),this.search_field_scale(),this.search_results.update(content),this.parsing=!1},Chosen.prototype.result_add_group=function(group){return group.disabled?"":(group.dom_id=this.container_id+"_g_"+group.array_index,''+group.label.escapeHTML()+"")},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;if(high_top0&&this.search_field.value.length<1&&this.results_hide(),link.up("li").remove()},Chosen.prototype.results_reset=function(){this.form_field.options[0].selected=!0,this.selected_item.down("span").update(this.default_text),this.is_multiple||this.selected_item.addClassName("chzn-default"),this.show_search_field_default(),this.results_reset_cleanup(),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_value=this.form_field.value,deselect_trigger=this.selected_item.down("abbr");if(deselect_trigger)return deselect_trigger.remove()},Chosen.prototype.result_select=function(evt){var high,item,position;if(this.result_highlight)return high=this.result_highlight,this.result_clear_highlight(),this.is_multiple?this.result_deactivate(high):(this.search_results.descendants(".result-selected").invoke("removeClassName","result-selected"),this.selected_item.removeClassName("chzn-default"),this.result_single_selected=high),high.addClassName("result-selected"),position=high.id.substr(high.id.lastIndexOf("_")+1),item=this.results_data[position],item.selected=!0,this.form_field.options[item.options_index].selected=!0,this.is_multiple?this.choice_build(item):(this.selected_item.down("span").update(item.html),this.allow_single_deselect&&this.single_deselect_control_build()),(!evt.metaKey||!this.is_multiple)&&this.results_hide(),this.search_field.value="",typeof Event.simulate=="function"&&(this.is_multiple||this.form_field.value!==this.current_value)&&this.form_field.simulate("change"),this.current_value=this.form_field.value,this.search_field_scale()},Chosen.prototype.result_activate=function(el){return el.addClassName("active-result")},Chosen.prototype.result_deactivate=function(el){return el.removeClassName("active-result")},Chosen.prototype.result_deselect=function(pos){var result,result_data;return result_data=this.results_data[pos],this.form_field.options[result_data.options_index].disabled?!1:(result_data.selected=!1,this.form_field.options[result_data.options_index].selected=!1,result=$(this.container_id+"_o_"+pos),result.removeClassName("result-selected").addClassName("active-result").show(),this.result_clear_highlight(),this.winnow_results(),typeof Event.simulate=="function"&&this.form_field.simulate("change"),this.search_field_scale(),!0)},Chosen.prototype.single_deselect_control_build=function(){if(this.allow_single_deselect&&!this.selected_item.down("abbr"))return this.selected_item.down("span").insert({after:''})},Chosen.prototype.winnow_results=function(){var found,option,part,parts,regex,regexAnchor,result_id,results,searchText,startpos,text,zregex,_i,_j,_len,_len2,_ref;this.no_results_clear(),results=0,searchText=this.search_field.value===this.default_text?"":this.search_field.value.strip().escapeHTML(),regexAnchor=this.search_contains?"":"^",regex=new RegExp(regexAnchor+searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),zregex=new RegExp(searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(!option.disabled&&!option.empty)if(option.group)$(option.dom_id).hide();else if(!this.is_multiple||!option.selected){found=!1,result_id=option.dom_id;if(regex.test(option.html))found=!0,results+=1;else if(option.html.indexOf(" ")>=0||option.html.indexOf("[")===0){parts=option.html.replace(/\[|\]/g,"").split(" ");if(parts.length)for(_j=0,_len2=parts.length;_j<_len2;_j++)part=parts[_j],regex.test(part)&&(found=!0,results+=1)}found?(searchText.length?(startpos=option.html.search(zregex),text=option.html.substr(0,startpos+searchText.length)+""+option.html.substr(startpos+searchText.length),text=text.substr(0,startpos)+""+text.substr(startpos)):text=option.html,$(result_id).innerHTML!==text&&$(result_id).update(text),this.result_activate($(result_id)),option.group_array_index!=null&&$(this.results_data[option.group_array_index].dom_id).setStyle({display:"list-item"})):($(result_id)===this.result_highlight&&this.result_clear_highlight(),this.result_deactivate($(result_id)))}}return results<1&&searchText.length?this.no_results(searchText):this.winnow_results_set_highlight()},Chosen.prototype.winnow_results_clear=function(){var li,lis,_i,_len,_results;this.search_field.clear(),lis=this.search_results.select("li"),_results=[];for(_i=0,_len=lis.length;_i<_len;_i++)li=lis[_i],li.hasClassName("group-result")?_results.push(li.show()):!this.is_multiple||!li.hasClassName("result-selected")?_results.push(this.result_activate(li)):_results.push(void 0);return _results},Chosen.prototype.winnow_results_set_highlight=function(){var do_high;if(!this.result_highlight){this.is_multiple||(do_high=this.search_results.down(".result-selected.active-result")),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){return this.search_results.insert(this.no_results_temp.evaluate({terms:terms}))},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 actives,nexts,sibs;actives=this.search_results.select("li.active-result");if(actives.length){this.result_highlight?this.results_showing&&(sibs=this.result_highlight.nextSiblings(),nexts=sibs.intersect(actives),nexts.length&&this.result_do_highlight(nexts.first())):this.result_do_highlight(actives.first());if(!this.results_showing)return this.results_show()}},Chosen.prototype.keyup_arrow=function(){var actives,prevs,sibs;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return sibs=this.result_highlight.previousSiblings(),actives=this.search_results.select("li.active-result"),prevs=sibs.intersect(actives),prevs.length?this.result_do_highlight(prevs.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;if(this.pending_backstroke)return this.choice_destroy(this.pending_backstroke.down("a")),this.clear_backstroke();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"))return this.pending_backstroke=next_available_destroy,this.pending_backstroke&&this.pending_backstroke.addClassName("search-choice-focus"),this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClassName("search-choice-focus")},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(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode,this.search_field_scale(),stroke!==8&&this.pending_backstroke&&this.clear_backstroke();switch(stroke){case 8:this.backstroke_length=this.search_field.value.length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(evt),this.mouse_on_container=!1;break;case 13:evt.preventDefault();break;case 38:evt.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},Chosen.prototype.search_field_scale=function(){var dd_top,div,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)+";";return 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(),w>this.f_width-10&&(w=this.f_width-10),this.search_field.setStyle({width:w+"px"}),dd_top=this.container.getHeight(),this.dropdown.setStyle({top:dd_top+"px"})}},Chosen}(AbstractChosen),root.Chosen=Chosen,Prototype.Browser.IE&&/MSIE (\d+\.\d+);/.test(navigator.userAgent)&&(Prototype.BrowserFeatures.Version=new Number(RegExp.$1)),get_side_border_padding=function(elmt){var layout,side_border_padding;return layout=new Element.Layout(elmt),side_border_padding=layout.get("border-left")+layout.get("border-right")+layout.get("padding-left")+layout.get("padding-right")},root.get_side_border_padding=get_side_border_padding}.call(this);
\ No newline at end of file
diff --git a/js/fieldmanager-select.js b/js/fieldmanager-select.js
index 0fb3e4918a..24a7ed8d84 100644
--- a/js/fieldmanager-select.js
+++ b/js/fieldmanager-select.js
@@ -6,7 +6,7 @@ fm_select_clear_terms = function( $fm_field, $fm_options, debug ) {
$fm_field.find( 'option:not(:selected)' ).remove();
// Inform chosen the list has been updated
- $fm_field.trigger("liszt:updated");
+ $fm_field.trigger("chosen:updated");
}
fm_append_options = function( $append_to, $options, selected ) {
@@ -35,8 +35,8 @@ fm_reset_chosen = function( $fm_text_field, fm_text_field_val ) {
// Display optgroup labels for matched elements
// chosen.js does not do this for dynamic changes while the dropdown is open
- $fm_text_field.parents(".chzn-choices").siblings(".chzn-drop").find("li.group-result").hide();
- $fm_text_field.parents(".chzn-choices").siblings(".chzn-drop").find("li.active-result").each( function( index, element ) {
+ $fm_text_field.parents(".chosen-choices").siblings(".chosen-drop").find("li.group-result").hide();
+ $fm_text_field.parents(".chosen-choices").siblings(".chosen-drop").find("li.active-result").each( function( index, element ) {
$(element).prevUntil(".group-result").prev(".group-result").show();
$(element).prev(".group-result").show();
} );
@@ -46,12 +46,12 @@ $( document ).ready( function() {
// Track changes to the chosen text field linked to the select in order to update options via Ajax
// Used for taxonomy-based fields where preload is disabled
- $('.fm-wrapper').on( 'keyup', '.fm-item .chzn-choices input,.fm-item .chzn-search input', function( e ) {
+ $('.fm-wrapper').on( 'keyup', '.fm-item .chosen-choices input,.fm-item .chosen-search input', function( e ) {
// Do not execute this function for arrow key presses
if( e.keyCode >= 37 && e.keyCode <= 40 ) return;
// Get the corresponding Fieldmanager select field to access data attributes needed for the Ajax call
- $fm_select_field = $(this).parents('.chzn-container').siblings('select');
+ $fm_select_field = $(this).parents('.chosen-container').siblings('select');
$fm_text_field = $(this);
if( $fm_select_field.data("taxonomy") != "" && $fm_select_field.data("taxonomyPreload") == false ) {
@@ -61,7 +61,7 @@ $( document ).ready( function() {
// Clear any non-selected terms before proceeding
fm_text_field_val = $fm_text_field.val();
fm_select_clear_terms( $fm_select_field, "", false );
- $fm_select_field.trigger("liszt:updated");
+ $fm_select_field.trigger("chosen:updated");
fm_reset_chosen( $fm_text_field, fm_text_field_val );
if( result != "" ) {
@@ -85,7 +85,7 @@ $( document ).ready( function() {
}
// Inform chosen this field has been updated to populate these options in the typeahead dropdown
- $fm_select_field.trigger("liszt:updated");
+ $fm_select_field.trigger("chosen:updated");
// Restore the search term since chosen automatically clears it on the update trigger above
fm_reset_chosen( $fm_text_field, fm_text_field_val );
@@ -94,9 +94,9 @@ $( document ).ready( function() {
} );
// Clear the non-selected options when entering or exiting the typeahead text field
- $('.fm-wrapper').on( 'click', '.fm-item .chzn-choices input', function( e ) {
- var $this_select_field = $(this).parents('.chzn-container').siblings('select');
- if( $this_select_field.data("taxonomy") != "" && $this_select_field.data("taxonomyPreload") == false ) fm_select_clear_terms( $this_select_field, $(this).parents('.chzn-choices'), true );
+ $('.fm-wrapper').on( 'click', '.fm-item .chosen-choices input', function( e ) {
+ var $this_select_field = $(this).parents('.chosen-container').siblings('select');
+ if( $this_select_field.data("taxonomy") != "" && $this_select_field.data("taxonomyPreload") == false ) fm_select_clear_terms( $this_select_field, $(this).parents('.chosen-choices'), true );
} );
} );
diff --git a/php/class-fieldmanager-select.php b/php/class-fieldmanager-select.php
index 41bf644861..9dd70e0728 100644
--- a/php/class-fieldmanager-select.php
+++ b/php/class-fieldmanager-select.php
@@ -73,8 +73,8 @@ public function __construct( $label = '', $options = array() ) {
// Add the chosen library for type-ahead capabilities.
if ( $this->type_ahead ) {
- fm_add_script( 'chosen', 'js/chosen/chosen.jquery.js' );
- fm_add_style( 'chosen_css', 'js/chosen/chosen.css' );
+ fm_add_script( 'fm_chosen', 'js/chosen/chosen.jquery.min.js', array( 'jquery' ), '1.8.2' );
+ fm_add_style( 'fm_chosen_css', 'js/chosen/chosen.min.css', array(), '1.8.2' );
}
}
@@ -97,7 +97,7 @@ public function form_element( $value = array() ) {
// Handle type-ahead based fields using the chosen library.
if ( $this->type_ahead ) {
- $select_classes[] = 'chzn-select';
+ $select_classes[] = 'chosen-select';
if ( ! isset( $GLOBALS['fm_chosen_initialized'] ) ) {
add_action( 'admin_footer', array( $this, 'chosen_init' ) );
$GLOBALS['fm_chosen_initialized'] = true;
@@ -177,10 +177,15 @@ public function chosen_init() {
?>