diff --git a/chosen.css b/chosen.css
new file mode 100644
index 0000000..e979a30
--- /dev/null
+++ b/chosen.css
@@ -0,0 +1,239 @@
+div.chzn-container { font-family: sans-serif; position: relative; }
+
+div.chzn-container input {
+ border: 1px solid #aaa;
+ font-family: sans-serif;
+ font-size: 1em;
+ margin: 0px;
+ padding: 5px;
+ width: 90%;
+ outline: none;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: #fff;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ height: 25px;
+ line-height: 25px;
+ padding: 0 5px;
+}
+div.chzn-container input:focus {
+ border-color: #058cf5;
+ -moz-box-shadow: 0px 0px 5px #999;
+ -webkit-box-shadow: 0px 0px 5px #999;
+ box-shadow: 0px 0px 5px #999;
+}
+
+div.chzn-container div.chzn-drop { background: #FFF; border: 1px solid #BBB; border-width: 0 1px 1px; left: 0; position: absolute; top: 29px; -webkit-box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.15); -moz-box-shadow: 0px 4px 5px rgba(0, 0, 0, 0.15); box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.15); z-index: 20; }
+
+div.chzn-container a.chzn-single {
+ background: #FFF;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #eeeeee), color-stop(0.5, white));
+ background-image: -moz-linear-gradient(center bottom, #eeeeee 0%, white 50%);
+ border: 1px solid #BBB;
+ display: block;
+ overflow: hidden;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ height: 28px;
+ color: #666;
+ line-height: 28px;
+ padding: 0px 8px;
+ position: relative;
+ text-decoration: none;
+ z-index: 19;
+}
+/* line 36, sass/chosen.scss */
+div.chzn-container div.chzn-search {
+ padding: 4px 3px;
+}
+/* line 38, sass/chosen.scss */
+div.chzn-container div.chzn-search input {
+ padding: 0 3px;
+ -moz-border-radius: 0px;
+ -webkit-border-radius: 0px;
+ border-radius: 0px;
+}
+/* line 46, sass/chosen.scss */
+div.chzn-container ul.chzn-choices {
+ background: #fff;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.85, white), color-stop(0.99, #eeeeee));
+ background-image: -moz-linear-gradient(center bottom, white 85%, #eeeeee 99%);
+ margin: 0;
+ cursor: text;
+ border: 1px solid #aaa;
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ padding: 0;
+ position: relative;
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+}
+/* line 61, sass/chosen.scss */
+div.chzn-container ul.chzn-choices:focus {
+ border-color: #058cf5;
+ -moz-box-shadow: 0px 0px 5px #999;
+ -webkit-box-shadow: 0px 0px 5px #999;
+ box-shadow: 0px 0px 5px #999;
+}
+/* line 67, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li {
+ float: left;
+ list-style-type: none;
+ margin: 0px;
+}
+/* line 71, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-field {
+ margin: 0px;
+ white-space: nowrap;
+ padding: 0px;
+}
+/* line 75, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-field input {
+ color: #666;
+ width: 90px !important;
+ background: transparent !important;
+ border: 0px !important;
+ line-height: 26px;
+ margin: 1px 0;
+ outline: 0;
+ padding: 0px 5px;
+ -webkit-box-shadow: none;
+ -moz-box-shadow: none;
+ box-shadow: none;
+}
+/* line 87, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-field input.default {
+ color: #999;
+}
+/* line 92, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-choice {
+ -moz-border-radius: 3px;
+ -webkit-border-radius: 3px;
+ border-radius: 3px;
+ background: #e6f0f8;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #dae8f3), color-stop(0.9, #e9f2fa));
+ background-image: -moz-linear-gradient(center bottom, #dae8f3 0%, #e9f2fa 90%);
+ color: #333;
+ border: 1px solid #b3c9db;
+ font-weight: bold;
+ padding: 2px 18px 2px 6px;
+ position: relative;
+ margin: 3px 0px 3px 5px;
+ line-height: 15px;
+ text-shadow: 0px 1px 0px #e9f2fa;
+}
+/* line 107, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-choice span {
+ cursor: default;
+}
+/* line 110, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-choice.search-choice-focus {
+ background: #DDD;
+}
+/* line 113, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-choice a.search-choice-close {
+ position: absolute;
+ right: 4px;
+ top: 6px;
+ display: block;
+ width: 8px;
+ height: 9px;
+ font-size: 1px;
+ background: url(/images/close.png) no-repeat;
+}
+/* line 122, sass/chosen.scss */
+div.chzn-container ul.chzn-choices li.search-choice a.search-choice-close:hover {
+ background-position: 0 -9px;
+}
+/* line 130, sass/chosen.scss */
+div.chzn-container ul.chzn-results {
+ margin: 0;
+ max-height: 196px;
+ padding: 0;
+ position: relative;
+ overflow-x: hidden;
+ overflow-y: auto;
+ z-index: 20;
+}
+/* line 138, sass/chosen.scss */
+div.chzn-container ul.chzn-results li {
+ padding: 7px 10px;
+ z-index: 22;
+ margin: 0;
+ list-style-type: none;
+}
+/* line 143, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.active-result {
+ cursor: pointer;
+}
+/* line 146, sass/chosen.scss */
+div.chzn-container ul.chzn-results li em {
+ font-weight: bold;
+ font-style: normal;
+ background: #FEFFDC;
+}
+/* line 151, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.highlighted {
+ background: #066bb9;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #066bb9), color-stop(0.5, #2482cb));
+ background-image: -moz-linear-gradient(center bottom, #066bb9 0%, #2482cb 70%);
+ color: #fff;
+}
+/* line 156, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.highlighted em {
+ color: #066bb9;
+}
+/* line 160, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.no-results {
+ background: #F4F4F4;
+}
+/* line 163, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.group-result {
+ cursor: default;
+ color: #999;
+ font-weight: bold;
+}
+/* line 168, sass/chosen.scss */
+div.chzn-container ul.chzn-results li.group-option {
+ padding-left: 20px;
+}
+
+/* line 186, sass/chosen.scss */
+div.chzn-container-active a.chzn-single {
+ border-color: #058cf5;
+ -moz-box-shadow: 0px 0px 5px #999;
+ -webkit-box-shadow: 0px 0px 5px #999;
+ box-shadow: 0px 0px 5px #999;
+}
+/* line 192, sass/chosen.scss */
+div.chzn-container-active a.chzn-single-with-drop {
+ border: 1px solid #BBB;
+ border-width: 1px 1px 0;
+ box-shadow: 0px 1px 0px #FFF inset;
+ background: #000;
+ background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, white), color-stop(0.5, #eeeeee));
+ background-image: -moz-linear-gradient(center bottom, white 0%, #eeeeee 50%);
+ -webkit-border-bottom-left-radius: 0px;
+ -webkit-border-bottom-right-radius: 0px;
+ -moz-border-radius-bottomleft: 0px;
+ -moz-border-radius-bottomright: 0px;
+ border-bottom-left-radius: 0px;
+ border-bottom-right-radius: 0px;
+}
+/* line 206, sass/chosen.scss */
+div.chzn-container-active ul.chzn-choices {
+ z-index: 21;
+ border-color: #058cf5;
+ -moz-box-shadow: 0px 0px 5px #999;
+ -webkit-box-shadow: 0px 0px 5px #999;
+ box-shadow: 0px 0px 5px #999;
+}
+/* line 208, sass/chosen.scss */
+div.chzn-container-active ul.chzn-choices input {
+ color: #111 !important;
+}
diff --git a/chosen.jquery.js b/chosen.jquery.js
new file mode 100644
index 0000000..ef9de3b
--- /dev/null
+++ b/chosen.jquery.js
@@ -0,0 +1,8 @@
+(function( $ ){
+ $.fn.chosen = function() {
+
+
+ // Do your awesome plugin stuff here
+
+ };
+})( jQuery );
\ No newline at end of file
diff --git a/chosen.proto.js b/chosen.proto.js
new file mode 100644
index 0000000..e210134
--- /dev/null
+++ b/chosen.proto.js
@@ -0,0 +1,617 @@
+/*!
+
+Chosen for Protoype.js
+by Patrick Filler at Harvest
+
+Copyright (c) 2011 Harvest
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+*/
+
+Chosen = Class.create();
+
+Chosen.prototype = {
+
+ active_field : false,
+ mouse_on_container : false,
+
+ result_highlighted : null,
+ result_single_selected : null,
+
+ choices: 0,
+
+ // HTML Templates
+ single_temp : new Template('#{default}
'),
+ multi_temp : new Template(''),
+
+ choice_temp : new Template('#{choice}'),
+ group_temp : new Template('#{label}'),
+ result_temp : new Template('#{result}'),
+ no_results_temp : new Template('No results match "#{terms}"'),
+
+ initialize: function(el){
+ if(!Prototype.Browser.IE7 && !Prototype.Browser.IE6){
+ this.form_field = el;
+ this.is_multiple = this.form_field.multiple;
+ this.form_field.observe("liszt:updated", this.results_update_field.bindAsEventListener(this));
+
+ this.default_text_default = (this.form_field.multiple) ? "Select Some Options" : "Select an Option";
+
+ this.click_test_action = this.test_active_click.bindAsEventListener(this);
+
+ this.set_up_html();
+ this.register_observers();
+ }
+ },
+
+ set_up_html: function(){
+ this.container_id = this.form_field.id + "_chzn";
+
+ var f_width = (this.form_field.getStyle("width")) ? parseInt( this.form_field.getStyle("width"), 10 ) : this.form_field.getWidth();
+ var container_props = {
+ 'id': this.container_id,
+ 'class':'chzn-container',
+ 'style':'width:'+ f_width +'px'
+ };
+
+ this.default_text = this.form_field.readAttribute('title') ? this.form_field.readAttribute('title') : this.default_text_default
+
+ var 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');
+
+ var dd_top = this.container.getHeight();
+ var dd_width = (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_no_results = this.container.down('li.no-results');
+
+ if( !this.is_multiple ){
+ this.search_container = this.container.down('div.chzn-search');
+ this.selected_item = this.container.down('.chzn-single');
+ this.selected_item.observe("click", this.results_toggle.bindAsEventListener(this));
+ var 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"} );
+ }
+ else{
+ this.search_choices = this.container.down('ul.chzn-choices');
+ this.search_container = this.container.down('li.search-field');
+ this.search_choices.observe("click", this.choices_click.bindAsEventListener(this));
+ }
+
+ this.results_parse_field();
+ },
+
+ register_observers: function(){
+ this.container.observe("click", this.container_click.bindAsEventListener(this));
+
+ this.container.observe("mouseenter", this.mouse_enter.bindAsEventListener(this));
+ this.container.observe("mouseleave", this.mouse_leave.bindAsEventListener(this));
+
+ this.search_field.observe("blur", this.input_blur.bindAsEventListener(this));
+ this.search_field.observe("keyup", this.keyup_checker.bindAsEventListener(this));
+ this.search_field.observe("keydown", this.keydown_checker.bindAsEventListener(this));
+ this.set_tab_index();
+
+ if( !this.is_multiple ){ this.selected_item.observe("focus", this.input_focus.bindAsEventListener(this)); }
+ else{ this.search_field.observe("focus", this.input_focus.bindAsEventListener(this)); }
+ },
+
+ set_tab_index: function(el){
+ if(this.form_field.tabIndex){
+ var ti = this.form_field.tabIndex;
+ this.form_field.tabIndex = -1;
+
+ this.search_field.tabIndex = ti;
+ if( !this.is_multiple ){ this.selected_item.tabIndex = ti; }
+ }
+ },
+
+ container_click: function(evt){
+ if(evt && evt.type=="click"){ evt.preventDefault(); }
+ if( !this.pending_destroy_click ){
+ if(!this.active_field){
+ if(this.is_multiple){ this.search_field.clear(); }
+ document.observe("click", this.click_test_action);
+ this.results_show();
+ }
+ this.search_field.value = this.search_field.value;
+ this.search_field.focus();
+
+ this.container.addClassName("chzn-container-active");
+ this.active_field = true;
+ }
+ else{ this.pending_destroy_click = false; }
+ },
+
+ mouse_enter: function(){ this.mouse_on_container = true; },
+ mouse_leave: function(){ this.mouse_on_container = false; },
+
+ input_focus: function(evt){
+ if(!this.active_field){ setTimeout( this.container_click.bind(this) , 100 ); }
+ },
+
+ input_blur: function(evt){
+ if( !this.mouse_on_container ){
+ this.active_field = false;
+ setTimeout( this.blur_test.bind(this) , 150 );
+ }
+ },
+
+ blur_test: function(evt){
+ if( !this.active_field ){ this.close_field(); }
+ },
+
+ test_active_click: function(evt){
+ if( evt.target.up( '#' + this.container.identify() ) ){ this.active_field = true; }
+ else{ this.close_field(); }
+ },
+
+ close_field: function(){
+ this.active_field = false;
+ this.results_hide();
+
+ this.container.removeClassName("chzn-container-active");
+ this.winnow_results_clear();
+ this.clear_backstroke();
+
+ if( this.is_multiple && this.choices < 1 ){
+ this.search_field.value = this.default_text;
+ this.search_field.addClassName("default");
+ }
+ },
+
+ results_show: function(){
+ 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 ); }
+ }
+
+ this.dropdown.setStyle({"top": this.container.getHeight() + "px"});
+ this.dropdown.show();
+
+ this.search_field.focus();
+ this.search_field.value = this.search_field.value;
+
+ this.winnow_results();
+ },
+
+ results_toggle: function(evt){
+ evt.preventDefault();
+ if( this.active_field ){
+ if( this.dropdown.visible() ){ this.results_hide(); }
+ else{ this.results_show(); }
+ }
+ },
+
+ results_hide: function(){
+ if( !this.is_multiple ){ this.selected_item.removeClassName('chzn-single-with-drop'); }
+ this.result_clear_highlight();
+ this.dropdown.hide();
+ },
+
+ results_build: function(){
+ this.choices = 0;
+ var data = this.results_data;
+
+ var i;
+ for( i = 0; i= 0 ){ result.addClassName("group-option"); }
+
+ result.observe('click',this.result_click.bindAsEventListener(this));
+ result.observe('mouseover',this.result_over.bindAsEventListener(this));
+ result.observe('mouseout', this.result_clear_highlight.bindAsEventListener(this));
+ }
+ },
+
+ result_over: function(evt){
+ this.result_do_highlight( (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result") );
+ },
+
+ result_do_highlight: function(el){
+ this.result_clear_highlight();
+
+ this.result_highlight = el;
+ this.result_highlight.addClassName('highlighted');
+
+ var maxHeight = parseInt(this.search_results.getStyle('maxHeight'), 10);
+ var visible_top = this.search_results.scrollTop;
+ var visible_bottom = maxHeight + visible_top;
+
+ var high_top = this.result_highlight.positionedOffset().top;
+ var high_bottom = high_top + this.result_highlight.getHeight();
+
+ if( high_bottom > visible_bottom ){ this.search_results.scrollTop = (high_bottom - maxHeight > 0) ? high_bottom - maxHeight : 0; }
+ else if( high_top < visible_top ){ this.search_results.scrollTop = high_top; }
+ },
+ result_clear_highlight: function(){
+ if( this.result_highlight ){
+ this.result_highlight.removeClassName('highlighted');
+ this.result_highlight = null;
+ }
+ },
+
+ result_click: function(evt){
+ this.result_highlight = (evt.target.hasClassName("active-result")) ? evt.target : evt.target.up(".active-result");
+ this.result_select();
+ },
+
+ result_select: function(){
+ if(this.result_highlight){
+
+ var high = this.result_highlight;
+ this.result_clear_highlight();
+
+ high.addClassName("result-selected");
+ if( this.is_multiple ){ this.result_deactivate(high); }
+ else{ this.result_single_selected = high; }
+
+ var position = high.id.substr( high.id.lastIndexOf("_") + 1 );
+ var item = this.results_data[position];
+ this.form_field.options[item.select_index].selected = true;
+
+ if( this.is_multiple ){ this.choice_build( item ); }
+ else { this.selected_item.innerHTML = item.text; }
+
+ this.results_hide();
+
+ if(!this.parsing){ this.winnow_results(); }
+
+ this.search_field.value = "";
+
+ if(typeof Event.simulate === 'function'){ this.form_field.simulate("change"); }
+ }
+ },
+
+ result_activate: function(el){
+ el.addClassName("active-result").show();
+ },
+
+ result_deactivate: function(el){
+ el.removeClassName("active-result").hide();
+ },
+
+ result_deselect: function(pos){
+ var result_data = this.results_data[pos];
+ this.form_field.options[result_data.select_index].selected = false;
+ var result = $(this.form_field.id + "chzn_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"); }
+ },
+
+ results_search: function(){
+ if( !this.dropdown.visible() ){ this.results_show(); }
+ else{ this.winnow_results(); }
+ },
+
+ winnow_results: function(){
+ this.no_results_clear();
+
+ var results = 0;
+
+ var searchText = (this.search_field.value == this.default_text) ? "" : this.search_field.value.strip();
+ var regex = new RegExp('^' + searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&"), 'i');
+
+ // SPOT
+ var i;
+ for( i = 0; i= 0){
+ var parts = option.text.split(" ");
+ if( parts.length ){
+ var j;
+ for( j = 0; j' + option.text.substr(startpos + searchText.length);
+ text = text.substr(0,startpos) + '' + text.substr(startpos);
+
+ $(result_id).innerHTML = text;
+
+ this.result_activate( $(result_id) );
+
+ if( option.group_id >= 0 ){ $( this.results_data[option.group_id].dom_id ).show(); }
+ }
+ else{
+ if( $(result_id) === this.result_highlight ){ this.result_clear_highlight(); }
+ this.result_deactivate( $(result_id) );
+ }
+
+ }
+ }
+ }
+
+ if( results < 1 && searchText.length ){ this.no_results( searchText ); }
+ else { this.winnow_results_set_highlight(); }
+ },
+
+ winnow_results_clear: function(){
+ this.search_field.clear();
+ var lis = this.search_results.select("li");
+ var i;
+
+ for( i = 0; i 0 && this.search_field.value.length < 1 ){ this.results_hide(); }
+
+ this.result_deselect(link.readAttribute("rel"));
+ link.up('li').remove();
+
+ if( this.choices < 1 ){ this.close_field(); }
+ },
+
+ keydown_arrow: function(){
+ var actives = this.search_results.select("li.active-result");
+ if( actives.length ){
+ if( !this.result_highlight ){ this.result_do_highlight( actives.first() ); }
+ else if( this.dropdown.visible() ){
+ var sibs = this.result_highlight.nextSiblings();
+ var nexts = sibs.intersect(actives);
+ if( nexts.length ){ this.result_do_highlight(nexts.first()); }
+ }
+ if( !this.dropdown.visible() ){ this.results_show(); }
+ }
+ },
+
+ keyup_arrow: function(){
+ if( this.result_highlight ){
+ var sibs = this.result_highlight.previousSiblings();
+ var actives = this.search_results.select("li.active-result");
+ var prevs = sibs.intersect(actives);
+
+ if( prevs.length ){ this.result_do_highlight(prevs.first()); }
+ else{
+ if(this.choices > 0){ this.results_hide(); }
+ this.result_clear_highlight();
+ }
+ }
+ },
+
+ keydown_backstroke: function(){
+ if( this.pending_backstroke ){
+ this.choice_destroy( this.pending_backstroke.down("a") );
+ this.clear_backstroke();
+ }
+ else{
+ this.pending_backstroke = this.search_container.siblings("li.search-choice").last();
+ this.pending_backstroke.addClassName("search-choice-focus");
+ }
+ },
+
+ clear_backstroke: function(){
+ if( this.pending_backstroke ){ this.pending_backstroke.removeClassName("search-choice-focus"); }
+ this.pending_backstroke = null;
+ },
+
+ keyup_checker: function(evt){
+ var stroke = evt.which || evt.keyCode;
+
+ switch(stroke){
+ case 8:
+ if( this.is_multiple && this.backstroke_length < 1 && this.choices > 0 ) this.keydown_backstroke();
+ else if( !this.pending_backstroke ){ this.results_search(); }
+ break;
+ case 13:
+ evt.preventDefault();
+ if( this.dropdown.visible() ){ this.result_select(); }
+ break;
+ case 9:
+ case 13:
+ case 38:
+ case 40:
+ break;
+ default:
+ this.results_search();
+ break;
+ }
+ },
+
+ keydown_checker: function(evt){
+ var stroke = evt.which || evt.keyCode;
+
+ if(stroke !== 8 && this.pending_backstroke) this.clear_backstroke();
+
+ switch(stroke){
+ case 8:
+ this.backstroke_length = this.search_field.value.length;
+ case 9:
+ 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;
+ }
+ }
+
+};
+
+var get_side_border_padding = function(item){
+ var layout = new Element.Layout(item);
+ return layout.get("border-left") + layout.get("border-right") + layout.get("padding-left") + layout.get("padding-right");
+}
+
+var select_to_array = {
+ parse: function(select){
+ var children = select.children;
+ var opt_array = [];
+
+ var group_index = 0;
+ var sel_index = 0;
+
+ var i;
+
+ for( i = 0; i0 ){
+ opt_array.push( select_to_array.parse_option( children[i], opt_array.length, sel_index ) );
+ sel_index += 1;
+ }
+ }
+
+ return opt_array;
+ },
+
+ parse_option: function(option, opt_id, select_index, group_id, group_disabled){
+ var opt = { id:opt_id, select_index:select_index, value:option.value, text:option.text, selected:option.selected, disabled:option.disabled }
+ if(group_id || group_id===0){
+ opt.group_id = group_id;
+ if( group_disabled ){ opt.disabled = group_disabled; }
+ }
+ return opt;
+ }
+};
+
+document.observe('dom:loaded',function() {
+ $$(".chzn-select").each(function(el){ new Chosen( el ); });
+});
\ No newline at end of file
diff --git a/index-jq.html b/index-jq.html
new file mode 100644
index 0000000..6950e00
--- /dev/null
+++ b/index-jq.html
@@ -0,0 +1,496 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..45d843d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,496 @@
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file