Browse Source

Updating the chosen library to version 0.9.7

Julio Montoya 13 years ago
parent
commit
129f5f864c

BIN
main/inc/lib/javascript/chosen/chosen-sprite.png


+ 85 - 62
main/inc/lib/javascript/chosen/chosen.css

@@ -23,29 +23,32 @@
 
 /* @group Single Chosen */
 .chzn-container-single .chzn-single {
-  background-color: #fff;
-  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
-  background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, white 50%);
-  background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
-  background-image: -o-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
-  background-image: -ms-linear-gradient(top, #eeeeee 0%,#ffffff 50%);
+  background-color: #ffffff;
+  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #f4f4f4), color-stop(0.48, #eeeeee), color-stop(0.5, #f6f6f6), color-stop(0.8, #ffffff));
+  background-image: -webkit-linear-gradient(center bottom, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
+  background-image: -moz-linear-gradient(center bottom, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
+  background-image: -o-linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
+  background-image: -ms-linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff',GradientType=0 );
-  background-image: linear-gradient(top, #eeeeee 0%,#ffffff 50%);
-  -webkit-border-radius: 4px;
-  -moz-border-radius   : 4px;
-  border-radius        : 4px;
+  background-image: linear-gradient(top, #f4f4f4 0%, #eeeeee 48%, #f6f6f6 50%, #ffffff 80%);
+  -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 #aaa;
+  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;
   overflow: hidden;
   white-space: nowrap;
   position: relative;
-  height: 26px;
-  line-height: 26px;
+  height: 23px;
+  line-height: 24px;
   padding: 0 0 0 8px;
-  color: #444;
+  color: #444444;
   text-decoration: none;
 }
 .chzn-container-single .chzn-single span {
@@ -61,7 +64,7 @@
   display: block;
   position: absolute;
   right: 26px;
-  top: 8px;
+  top: 6px;
   width: 12px;
   height: 13px;
   font-size: 1px;
@@ -71,21 +74,6 @@
   background-position: right -11px;
 }
 .chzn-container-single .chzn-single div {
-  -webkit-border-radius: 0 4px 4px 0;
-  -moz-border-radius   : 0 4px 4px 0;
-  border-radius        : 0 4px 4px 0;
-  -moz-background-clip   : padding;
-  -webkit-background-clip: padding-box;
-  background-clip        : padding-box;
-  background: #ccc;
-  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #ccc), color-stop(0.6, #eee));
-  background-image: -webkit-linear-gradient(center bottom, #ccc 0%, #eee 60%);
-  background-image: -moz-linear-gradient(center bottom, #ccc 0%, #eee 60%);
-  background-image: -o-linear-gradient(bottom, #ccc 0%, #eee 60%);
-  background-image: -ms-linear-gradient(top, #cccccc 0%,#eeeeee 60%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#cccccc', endColorstr='#eeeeee',GradientType=0 );
-  background-image: linear-gradient(top, #cccccc 0%,#eeeeee 60%);
-  border-left: 1px solid #aaa;
   position: absolute;
   right: 0;
   top: 0;
@@ -94,7 +82,7 @@
   width: 18px;
 }
 .chzn-container-single .chzn-single div b {
-  background: url('chosen-sprite.png') no-repeat 0 1px;
+  background: url('chosen-sprite.png') no-repeat 0 0;
   display: block;
   width: 100%;
   height: 100%;
@@ -143,9 +131,9 @@
   background-image: -webkit-linear-gradient(center bottom, white 85%, #eeeeee 99%);
   background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
   background-image: -o-linear-gradient(bottom, white 85%, #eeeeee 99%);
-  background-image: -ms-linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+  background-image: -ms-linear-gradient(top, #ffffff 85%, #eeeeee 99%);
   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
-  background-image: linear-gradient(top, #ffffff 85%,#eeeeee 99%);
+  background-image: linear-gradient(top, #ffffff 85%, #eeeeee 99%);
   border: 1px solid #aaa;
   margin: 0;
   padding: 0;
@@ -168,6 +156,9 @@
   color: #666;
   background: transparent !important;
   border: 0 !important;
+  font-family: sans-serif;
+  font-size: 100%;
+  height: 15px;
   padding: 5px;
   margin: 1px 0;
   outline: 0;
@@ -187,17 +178,20 @@
   -webkit-background-clip: padding-box;
   background-clip        : padding-box;
   background-color: #e4e4e4;
-  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #e4e4e4), color-stop(0.7, #eeeeee));
-  background-image: -webkit-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
-  background-image: -moz-linear-gradient(center bottom, #e4e4e4 0%, #eeeeee 70%);
-  background-image: -o-linear-gradient(bottom, #e4e4e4 0%, #eeeeee 70%);
-  background-image: -ms-linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
-  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#e4e4e4', endColorstr='#eeeeee',GradientType=0 );
-  background-image: linear-gradient(top, #e4e4e4 0%,#eeeeee 70%);
+  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.48, #e8e8e8), color-stop(0.5, #f0f0f0), color-stop(0.8, #f4f4f4));
+  background-image: -webkit-linear-gradient(center bottom, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
+  background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
+  background-image: -o-linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
+  background-image: -ms-linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#f4f4f4',GradientType=0 );
+  background-image: linear-gradient(top, #eeeeee 0%, #e8e8e8 48%, #f0f0f0 50%, #f4f4f4 80%);
+  -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);
   color: #333;
-  border: 1px solid #b4b4b4;
+  border: 1px solid #aaaaaa;
   line-height: 13px;
-  padding: 3px 19px 3px 6px;
+  padding: 3px 20px 3px 5px;
   margin: 3px 0 3px 5px;
   position: relative;
 }
@@ -228,7 +222,7 @@
 /* @group Results */
 .chzn-container .chzn-results {
   margin: 0 4px 4px 0;
-  max-height: 190px;
+  max-height: 240px;
   padding: 0 0 0 4px;
   position: relative;
   overflow-x: hidden;
@@ -240,8 +234,8 @@
 }
 .chzn-container .chzn-results li {
   display: none;
-  line-height: 80%;
-  padding: 7px 7px 8px;
+  line-height: 15px;
+  padding: 5px 6px;
   margin: 0;
   list-style: none;
 }
@@ -250,7 +244,14 @@
   display: list-item;
 }
 .chzn-container .chzn-results .highlighted {
-  background: #3875d7;
+  background-color: #3875d7;
+  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.1, #2a62bc), color-stop(0.8, #3875d7));
+  background-image: -webkit-linear-gradient(center bottom, #2a62bc 10%, #3875d7 80%);
+  background-image: -moz-linear-gradient(center bottom, #2a62bc 10%, #3875d7 80%);
+  background-image: -o-linear-gradient(bottom, #2a62bc 10%, #3875d7 80%);
+  background-image: -ms-linear-gradient(top, #2a62bc 10%, #3875d7 80%);
+  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#2a62bc', endColorstr='#3875d7',GradientType=0 );
+  background-image: linear-gradient(top, #2a62bc 10%, #3875d7 80%);
   color: #fff;
 }
 .chzn-container .chzn-results li em {
@@ -270,11 +271,34 @@
   font-weight: bold;
 }
 .chzn-container .chzn-results .group-option {
-  padding-left: 20px;
+  padding-left: 15px;
 }
 .chzn-container-multi .chzn-drop .result-selected {
   display: none;
 }
+.chzn-container .chzn-results-scroll {
+  background: white;
+  margin: 0px 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 */
 
 /* @group Active  */
@@ -292,13 +316,13 @@
   -o-box-shadow     : 0 1px 0 #fff inset;
   box-shadow        : 0 1px 0 #fff inset;
   background-color: #eee;
-  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
-  background-image: -webkit-linear-gradient(center bottom, white 0%, #eeeeee 50%);
-  background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
-  background-image: -o-linear-gradient(bottom, white 0%, #eeeeee 50%);
-  background-image: -ms-linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+  background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.2, white), color-stop(0.8, #eeeeee));
+  background-image: -webkit-linear-gradient(center bottom, white 20%, #eeeeee 80%);
+  background-image: -moz-linear-gradient(center bottom, white 20%, #eeeeee 80%);
+  background-image: -o-linear-gradient(bottom, white 20%, #eeeeee 80%);
+  background-image: -ms-linear-gradient(top, #ffffff 20%,#eeeeee 80%);
   filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee',GradientType=0 );
-  background-image: linear-gradient(top, #ffffff 0%,#eeeeee 50%);
+  background-image: linear-gradient(top, #ffffff 20%,#eeeeee 80%);
   -webkit-border-bottom-left-radius : 0;
   -webkit-border-bottom-right-radius: 0;
   -moz-border-radius-bottomleft : 0;
@@ -341,16 +365,15 @@
 .chzn-rtl { direction:rtl;text-align: right; }
 .chzn-rtl .chzn-single { padding-left: 0; padding-right: 8px; }
 .chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; }
-.chzn-rtl .chzn-single div { 
-  left: 0; right: auto; 
-  border-left: none; border-right: 1px solid #aaaaaa;
-  -webkit-border-radius: 4px 0 0 4px;
-  -moz-border-radius   : 4px 0 0 4px;
-  border-radius        : 4px 0 0 4px; 
+
+.chzn-rtl .chzn-single div { left: 3px; right: auto; }
+.chzn-rtl .chzn-single abbr {
+  left: 26px;
+  right: auto;
 }
 .chzn-rtl .chzn-choices li { float: right; }
-.chzn-rtl .chzn-choices .search-choice { padding: 3px 6px 3px 19px; margin: 3px 5px 3px 0; }
-.chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 5px; right: auto; background-position: right top;}
+.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-left: 4px; margin-right: 0; padding-left: 0; padding-right: 4px; }
 .chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 20px; }
 .chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
@@ -364,4 +387,4 @@
   background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #ffffff 85%,#eeeeee 99%);
   padding: 4px 5px 4px 20px;
 }
-/* @end */
+/* @end */

+ 217 - 170
main/inc/lib/javascript/chosen/chosen.jquery.js

@@ -1,7 +1,7 @@
 // Chosen, a Select Box Enhancer for jQuery and Protoype
 // by Patrick Filler for Harvest, http://getharvest.com
 // 
-// Version 0.9.5
+// Version 0.9.7
 // Full source at https://github.com/harvesthq/chosen
 // Copyright (c) 2011 Harvest http://getharvest.com
 
@@ -9,11 +9,14 @@
 // 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 === "OPTGROUP") {
         return this.add_group(child);
@@ -21,6 +24,7 @@
         return this.add_option(child);
       }
     };
+
     SelectParser.prototype.add_group = function(group) {
       var group_position, option, _i, _len, _ref, _results;
       group_position = this.parsed.length;
@@ -39,12 +43,11 @@
       }
       return _results;
     };
+
     SelectParser.prototype.add_option = function(option, group_position, group_disabled) {
       if (option.nodeName === "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,
@@ -67,8 +70,11 @@
         return this.options_index += 1;
       }
     };
+
     return SelectParser;
+
   })();
+
   SelectParser.select_to_array = function(select) {
     var child, parser, _i, _len, _ref;
     parser = new SelectParser();
@@ -79,17 +85,23 @@
     }
     return parser.parsed;
   };
+
   this.SelectParser = SelectParser;
+
 }).call(this);
+
+/*
+Chosen source: generate output using 'cake build'
+Copyright (c) 2011 by Harvest
+*/
+
 (function() {
-  /*
-  Chosen source: generate output using 'cake build'
-  Copyright (c) 2011 by Harvest
-  */
   var AbstractChosen, root;
-  var __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+
   root = this;
+
   AbstractChosen = (function() {
+
     function AbstractChosen(form_field, options) {
       this.form_field = form_field;
       this.options = options != null ? options : {};
@@ -101,69 +113,74 @@
       this.register_observers();
       this.finish_setup();
     }
+
     AbstractChosen.prototype.set_default_values = function() {
-      this.click_test_action = __bind(function(evt) {
-        return this.test_active_click(evt);
-      }, this);
-      this.activate_action = __bind(function(evt) {
-        return this.activate_field(evt);
-      }, this);
+      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].text === "" ? this.options.allow_single_deselect : false;
+      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.choices = 0;
       return this.results_none_found = 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.active_field) {
-        return setTimeout((__bind(function() {
-          return this.container_mousedown();
-        }, this)), 50);
+        return setTimeout((function() {
+          return _this.container_mousedown();
+        }), 50);
       }
     };
+
     AbstractChosen.prototype.input_blur = function(evt) {
+      var _this = this;
       if (!this.mouse_on_container) {
         this.active_field = false;
-        return setTimeout((__bind(function() {
-          return this.blur_test();
-        }, this)), 100);
+        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);
-        }
+        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 '<li id="' + option.dom_id + '" class="' + classes.join(' ') + '"' + style + '>' + option.html + '</li>';
       } else {
         return "";
       }
     };
+
     AbstractChosen.prototype.results_update_field = function() {
       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();
@@ -171,6 +188,7 @@
         return this.results_show();
       }
     };
+
     AbstractChosen.prototype.results_search = function(evt) {
       if (this.results_showing) {
         return this.winnow_results();
@@ -178,6 +196,7 @@
         return this.results_show();
       }
     };
+
     AbstractChosen.prototype.keyup_checker = function(evt) {
       var stroke, _ref;
       stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
@@ -193,15 +212,11 @@
           break;
         case 13:
           evt.preventDefault();
-          if (this.results_showing) {
-            return this.result_select(evt);
-          }
+          if (this.results_showing) return this.result_select(evt);
           break;
         case 27:
-          if (this.results_showing) {
-            return this.results_hide();
-          }
-          break;
+          if (this.results_showing) this.results_hide();
+          return true;
         case 9:
         case 38:
         case 40:
@@ -213,62 +228,71 @@
           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 = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZ";
       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() {
-  /*
-  Chosen source: generate output using 'cake build'
-  Copyright (c) 2011 by Harvest
-  */
-  var $, Chosen, get_side_border_padding, root;
-  var __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;
-  }, __bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };
+  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;
+
   $ = jQuery;
+
   $.fn.extend({
     chosen: function(options) {
       if ($.browser.msie && ($.browser.version === "6.0" || $.browser.version === "7.0")) {
         return this;
       }
       return $(this).each(function(input_field) {
-        if (!($(this)).hasClass("chzn-done")) {
-          return new Chosen(this, options);
-        }
+        if (!($(this)).hasClass("chzn-done")) return new Chosen(this, options);
       });
     }
   });
-  Chosen = (function() {
-    __extends(Chosen, AbstractChosen);
+
+  Chosen = (function(_super) {
+
+    __extends(Chosen, _super);
+
     function Chosen() {
       Chosen.__super__.constructor.apply(this, arguments);
     }
+
     Chosen.prototype.setup = function() {
       this.form_field_jq = $(this.form_field);
       return 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;
       this.container_id = this.form_field.id.length ? this.form_field.id.replace(/(:|\.)/g, '_') : this.generate_field_id();
@@ -288,9 +312,6 @@
       this.form_field_jq.hide().after(container_div);
       this.container = $('#' + this.container_id);
       this.container.addClass("chzn-container-" + (this.is_multiple ? "multi" : "single"));
-      if (!this.is_multiple && this.form_field.options.length <= this.disable_search_threshold) {
-        this.container.addClass("chzn-container-single-nosearch");
-      }
       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);
@@ -319,81 +340,85 @@
         chosen: this
       });
     };
+
     Chosen.prototype.register_observers = function() {
-      this.container.mousedown(__bind(function(evt) {
-        return this.container_mousedown(evt);
-      }, this));
-      this.container.mouseup(__bind(function(evt) {
-        return this.container_mouseup(evt);
-      }, this));
-      this.container.mouseenter(__bind(function(evt) {
-        return this.mouse_enter(evt);
-      }, this));
-      this.container.mouseleave(__bind(function(evt) {
-        return this.mouse_leave(evt);
-      }, this));
-      this.search_results.mouseup(__bind(function(evt) {
-        return this.search_results_mouseup(evt);
-      }, this));
-      this.search_results.mouseover(__bind(function(evt) {
-        return this.search_results_mouseover(evt);
-      }, this));
-      this.search_results.mouseout(__bind(function(evt) {
-        return this.search_results_mouseout(evt);
-      }, this));
-      this.form_field_jq.bind("liszt:updated", __bind(function(evt) {
-        return this.results_update_field(evt);
-      }, this));
-      this.search_field.blur(__bind(function(evt) {
-        return this.input_blur(evt);
-      }, this));
-      this.search_field.keyup(__bind(function(evt) {
-        return this.keyup_checker(evt);
-      }, this));
-      this.search_field.keydown(__bind(function(evt) {
-        return this.keydown_checker(evt);
-      }, this));
+      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.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);
+      });
       if (this.is_multiple) {
-        this.search_choices.click(__bind(function(evt) {
-          return this.choices_click(evt);
-        }, this));
-        return this.search_field.focus(__bind(function(evt) {
-          return this.input_focus(evt);
-        }, this));
+        this.search_choices.click(function(evt) {
+          return _this.choices_click(evt);
+        });
+        return this.search_field.focus(function(evt) {
+          return _this.input_focus(evt);
+        });
+      } else {
+        return this.container.click(function(evt) {
+          return evt.preventDefault();
+        });
       }
     };
+
     Chosen.prototype.search_field_disabled = function() {
-      this.is_disabled = this.form_field_jq.attr('disabled');
+      this.is_disabled = this.form_field_jq[0].disabled;
       if (this.is_disabled) {
         this.container.addClass('chzn-disabled');
-        this.search_field.attr('disabled', true);
+        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.attr('disabled', false);
+        this.search_field[0].disabled = false;
         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) {
         target_closelink = evt != null ? ($(evt.target)).hasClass("search-choice-close") : false;
-        if (evt && evt.type === "mousedown") {
-          evt.stopPropagation();
-        }
+        if (evt && evt.type === "mousedown") evt.stopPropagation();
         if (!this.pending_destroy_click && !target_closelink) {
           if (!this.active_field) {
-            if (this.is_multiple) {
-              this.search_field.val("");
-            }
+            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) === this.selected_item || $(evt.target).parents("a.chzn-single").length)) {
+          } 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();
           }
@@ -403,16 +428,17 @@
         }
       }
     };
+
     Chosen.prototype.container_mouseup = function(evt) {
-      if (evt.target.nodeName === "ABBR") {
-        return this.results_reset(evt);
-      }
+      if (evt.target.nodeName === "ABBR") 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() {
       $(document).unbind("click", this.click_test_action);
       if (!this.is_multiple) {
@@ -427,6 +453,7 @@
       this.show_search_field_default();
       return this.search_field_scale();
     };
+
     Chosen.prototype.activate_field = function() {
       if (!this.is_multiple && !this.active_field) {
         this.search_field.attr("tabindex", this.selected_item.attr("tabindex"));
@@ -437,6 +464,7 @@
       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) {
         return this.active_field = true;
@@ -444,9 +472,9 @@
         return this.close_field();
       }
     };
+
     Chosen.prototype.results_build = function() {
-      var content, data, startTime, _i, _len, _ref;
-      startTime = new Date();
+      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) {
@@ -454,6 +482,11 @@
         this.choices = 0;
       } else if (!this.is_multiple) {
         this.selected_item.find("span").text(this.default_text);
+        if (this.form_field.options.length <= this.disable_search_threshold) {
+          this.container.addClass("chzn-container-single-nosearch");
+        } else {
+          this.container.removeClass("chzn-container-single-nosearch");
+        }
       }
       content = '';
       _ref = this.results_data;
@@ -467,9 +500,7 @@
             this.choice_build(data);
           } else if (data.selected && !this.is_multiple) {
             this.selected_item.find("span").text(data.text);
-            if (this.allow_single_deselect) {
-              this.single_deselect_control_build();
-            }
+            if (this.allow_single_deselect) this.single_deselect_control_build();
           }
         }
       }
@@ -479,6 +510,7 @@
       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;
@@ -487,6 +519,7 @@
         return "";
       }
     };
+
     Chosen.prototype.result_do_highlight = function(el) {
       var high_bottom, high_top, maxHeight, visible_bottom, visible_top;
       if (el.length) {
@@ -505,12 +538,12 @@
         }
       }
     };
+
     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) {
@@ -529,6 +562,7 @@
       this.search_field.val(this.search_field.val());
       return this.winnow_results();
     };
+
     Chosen.prototype.results_hide = function() {
       if (!this.is_multiple) {
         this.selected_item.removeClass("chzn-single-with-drop");
@@ -539,6 +573,7 @@
       });
       return this.results_showing = false;
     };
+
     Chosen.prototype.set_tab_index = function(el) {
       var ti;
       if (this.form_field_jq.attr("tabindex")) {
@@ -552,6 +587,7 @@
         }
       }
     };
+
     Chosen.prototype.show_search_field_default = function() {
       if (this.is_multiple && this.choices < 1 && !this.active_field) {
         this.search_field.val(this.default_text);
@@ -561,6 +597,7 @@
         return this.search_field.removeClass("default");
       }
     };
+
     Chosen.prototype.search_results_mouseup = function(evt) {
       var target;
       target = $(evt.target).hasClass("active-result") ? $(evt.target) : $(evt.target).parents(".active-result").first();
@@ -569,34 +606,38 @@
         return this.result_select(evt);
       }
     };
+
     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())) {
         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, link;
+      var choice_id, link,
+        _this = this;
       choice_id = this.container_id + "_c_" + item.array_index;
       this.choices += 1;
       this.search_container.before('<li class="search-choice" id="' + choice_id + '"><span>' + item.html + '</span><a href="javascript:void(0)" class="search-choice-close" rel="' + item.array_index + '"></a></li>');
       link = $('#' + choice_id).find("a").first();
-      return link.click(__bind(function(evt) {
-        return this.choice_destroy_link_click(evt);
-      }, this));
+      return link.click(function(evt) {
+        return _this.choice_destroy_link_click(evt);
+      });
     };
+
     Chosen.prototype.choice_destroy_link_click = function(evt) {
       evt.preventDefault();
       if (!this.is_disabled) {
@@ -606,6 +647,7 @@
         return evt.stopPropagation;
       }
     };
+
     Chosen.prototype.choice_destroy = function(link) {
       this.choices -= 1;
       this.show_search_field_default();
@@ -615,16 +657,16 @@
       this.result_deselect(link.attr("rel"));
       return link.parents('li').first().remove();
     };
+
     Chosen.prototype.results_reset = function(evt) {
       this.form_field.options[0].selected = true;
       this.selected_item.find("span").text(this.default_text);
       this.show_search_field_default();
       $(evt.target).remove();
       this.form_field_jq.trigger("change");
-      if (this.active_field) {
-        return this.results_hide();
-      }
+      if (this.active_field) return this.results_hide();
     };
+
     Chosen.prototype.result_select = function(evt) {
       var high, high_id, item, position;
       if (this.result_highlight) {
@@ -646,24 +688,23 @@
           this.choice_build(item);
         } else {
           this.selected_item.find("span").first().text(item.text);
-          if (this.allow_single_deselect) {
-            this.single_deselect_control_build();
-          }
-        }
-        if (!(evt.metaKey && this.is_multiple)) {
-          this.results_hide();
+          if (this.allow_single_deselect) this.single_deselect_control_build();
         }
+        if (!(evt.metaKey && this.is_multiple)) this.results_hide();
         this.search_field.val("");
         this.form_field_jq.trigger("change");
         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.result_deselect = function(pos) {
       var result, result_data;
       result_data = this.results_data[pos];
@@ -676,14 +717,15 @@
       this.form_field_jq.trigger("change");
       return this.search_field_scale();
     };
+
     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("<abbr class=\"search-choice-close\"></abbr>");
       }
     };
+
     Chosen.prototype.winnow_results = function() {
-      var found, option, part, parts, regex, result_id, results, searchText, startTime, startpos, text, zregex, _i, _j, _len, _len2, _ref;
-      startTime = new Date();
+      var found, option, part, parts, regex, 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 ? "" : $('<div/>').text($.trim(this.search_field.val())).html();
@@ -694,10 +736,11 @@
         option = _ref[_i];
         if (!option.disabled && !option.empty) {
           if (option.group) {
-            $('#' + option.dom_id).hide();
+            $('#' + 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;
@@ -721,18 +764,16 @@
               } else {
                 text = option.html;
               }
-              if ($("#" + result_id).html !== text) {
-                $("#" + result_id).html(text);
-              }
-              this.result_activate($("#" + result_id));
+              result.html(text);
+              this.result_activate(result);
               if (option.group_array_index != null) {
-                $("#" + this.results_data[option.group_array_index].dom_id).show();
+                $("#" + 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_id));
+              this.result_deactivate(result);
             }
           }
         }
@@ -743,6 +784,7 @@
         return this.winnow_results_set_highlight();
       }
     };
+
     Chosen.prototype.winnow_results_clear = function() {
       var li, lis, _i, _len, _results;
       this.search_field.val("");
@@ -751,46 +793,49 @@
       for (_i = 0, _len = lis.length; _i < _len; _i++) {
         li = lis[_i];
         li = $(li);
-        _results.push(li.hasClass("group-result") ? li.show() : !this.is_multiple || !li.hasClass("result-selected") ? this.result_activate(li) : void 0);
+        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.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);
-        }
+        if (do_high != null) return this.result_do_highlight(do_high);
       }
     };
+
     Chosen.prototype.no_results = function(terms) {
       var no_results_html;
       no_results_html = $('<li class="no-results">' + this.results_none_found + ' "<span></span>"</li>');
       no_results_html.find("span").first().html(terms);
       return 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;
       if (!this.result_highlight) {
         first_active = this.search_results.find("li.active-result").first();
-        if (first_active) {
-          this.result_do_highlight($(first_active));
-        }
+        if (first_active) this.result_do_highlight($(first_active));
       } else if (this.results_showing) {
         next_sib = this.result_highlight.nextAll("li.active-result").first();
-        if (next_sib) {
-          this.result_do_highlight(next_sib);
-        }
-      }
-      if (!this.results_showing) {
-        return this.results_show();
+        if (next_sib) this.result_do_highlight(next_sib);
       }
+      if (!this.results_showing) return this.results_show();
     };
+
     Chosen.prototype.keyup_arrow = function() {
       var prev_sibs;
       if (!this.results_showing && !this.is_multiple) {
@@ -800,13 +845,12 @@
         if (prev_sibs.length) {
           return this.result_do_highlight(prev_sibs.first());
         } else {
-          if (this.choices > 0) {
-            this.results_hide();
-          }
+          if (this.choices > 0) this.results_hide();
           return this.result_clear_highlight();
         }
       }
     };
+
     Chosen.prototype.keydown_backstroke = function() {
       if (this.pending_backstroke) {
         this.choice_destroy(this.pending_backstroke.find("a").first());
@@ -816,27 +860,25 @@
         return this.pending_backstroke.addClass("search-choice-focus");
       }
     };
+
     Chosen.prototype.clear_backstroke = function() {
       if (this.pending_backstroke) {
         this.pending_backstroke.removeClass("search-choice-focus");
       }
       return this.pending_backstroke = null;
     };
+
     Chosen.prototype.keydown_checker = function(evt) {
       var stroke, _ref;
       stroke = (_ref = evt.which) != null ? _ref : evt.keyCode;
       this.search_field_scale();
-      if (stroke !== 8 && this.pending_backstroke) {
-        this.clear_backstroke();
-      }
+      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);
-          }
+          if (this.results_showing && !this.is_multiple) this.result_select(evt);
           this.mouse_on_container = false;
           break;
         case 13:
@@ -851,6 +893,7 @@
           break;
       }
     };
+
     Chosen.prototype.search_field_scale = function() {
       var dd_top, div, h, style, style_block, styles, w, _i, _len;
       if (this.is_multiple) {
@@ -869,9 +912,7 @@
         $('body').append(div);
         w = div.width() + 25;
         div.remove();
-        if (w > this.f_width - 10) {
-          w = this.f_width - 10;
-        }
+        if (w > this.f_width - 10) w = this.f_width - 10;
         this.search_field.css({
           'width': w + 'px'
         });
@@ -881,6 +922,7 @@
         });
       }
     };
+
     Chosen.prototype.generate_random_id = function() {
       var string;
       string = "sel" + this.generate_random_char() + this.generate_random_char() + this.generate_random_char();
@@ -889,11 +931,16 @@
       }
       return string;
     };
+
     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);

File diff suppressed because it is too large
+ 1 - 1
main/inc/lib/javascript/chosen/chosen.jquery.min.js


Some files were not shown because too many files changed in this diff