country-select-engine 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. data/.gitignore +25 -0
  2. data/Gemfile +17 -0
  3. data/Gemfile.lock +97 -0
  4. data/MIT-LICENSE +20 -0
  5. data/README.rdoc +105 -0
  6. data/Rakefile +29 -0
  7. data/config/locales/countries.de.yml +268 -0
  8. data/config/locales/countries.en-US.yml +268 -0
  9. data/config/locales/countries.en.yml +268 -0
  10. data/config/locales/countries.es.yml +268 -0
  11. data/config/locales/countries.fr.yml +268 -0
  12. data/config/locales/countries.it.yml +268 -0
  13. data/config/locales/countries.ja.yml +268 -0
  14. data/config/locales/countries.ru.yml +268 -0
  15. data/config/locales/countries.zh-CN.yml +268 -0
  16. data/config/locales/countries.zh-TW.yml +268 -0
  17. data/config/locales/currencies.de.yml +163 -0
  18. data/config/locales/currencies.en-US.yml +163 -0
  19. data/config/locales/currencies.en.yml +163 -0
  20. data/config/locales/currencies.es.yml +163 -0
  21. data/config/locales/currencies.fr.yml +163 -0
  22. data/config/locales/currencies.it.yml +163 -0
  23. data/config/locales/currencies.ja.yml +163 -0
  24. data/config/locales/currencies.ru.yml +163 -0
  25. data/config/locales/currencies.zh-CN.yml +163 -0
  26. data/config/locales/currencies.zh-TW.yml +163 -0
  27. data/config/locales/languages.de.yml +12 -0
  28. data/config/locales/languages.en-US.yml +12 -0
  29. data/config/locales/languages.en.yml +12 -0
  30. data/config/locales/languages.es.yml +12 -0
  31. data/config/locales/languages.fr.yml +12 -0
  32. data/config/locales/languages.it.yml +12 -0
  33. data/config/locales/languages.ja.yml +12 -0
  34. data/config/locales/languages.ru.yml +12 -0
  35. data/config/locales/languages.zh-CN.yml +12 -0
  36. data/config/locales/languages.zh-TW.yml +12 -0
  37. data/config/locales/timezones.de.yml +144 -0
  38. data/config/locales/timezones.en.yml +144 -0
  39. data/config/locales/timezones.es.yml +144 -0
  40. data/config/locales/timezones.fr.yml +144 -0
  41. data/config/locales/timezones.it.yml +144 -0
  42. data/config/locales/timezones.ja.yml +144 -0
  43. data/config/locales/timezones.ru.yml +144 -0
  44. data/config/locales/timezones.zh-CN.yml +144 -0
  45. data/config/locales/timezones.zh-TW.yml +144 -0
  46. data/config/routes.rb +2 -0
  47. data/country-select-engine.gemspec +26 -0
  48. data/lib/content_helper.rb +43 -0
  49. data/lib/country-select-engine/engine.rb +4 -0
  50. data/lib/country-select-engine/version.rb +3 -0
  51. data/lib/country-select-engine.rb +181 -0
  52. data/lib/parse_helper.rb +26 -0
  53. data/lib/tasks/import_locales.rake +72 -0
  54. data/script/convert_cldr.rb +116 -0
  55. data/script/google.yml +143 -0
  56. data/script/google.zh-TW.yml +143 -0
  57. data/script/rails +8 -0
  58. data/script/timezones.yml +144 -0
  59. data/script/translate_timezones.rb +26 -0
  60. data/spec/dummy/README.rdoc +261 -0
  61. data/spec/dummy/Rakefile +7 -0
  62. data/spec/dummy/app/assets/javascripts/application.js +16 -0
  63. data/spec/dummy/app/assets/javascripts/dummy.js +2 -0
  64. data/spec/dummy/app/assets/stylesheets/application.css +14 -0
  65. data/spec/dummy/app/assets/stylesheets/dummy.css +4 -0
  66. data/spec/dummy/app/controllers/application_controller.rb +3 -0
  67. data/spec/dummy/app/controllers/dummy_controller.rb +4 -0
  68. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  69. data/spec/dummy/app/helpers/dummy_helper.rb +2 -0
  70. data/spec/dummy/app/mailers/.gitkeep +0 -0
  71. data/spec/dummy/app/models/.gitkeep +0 -0
  72. data/spec/dummy/app/views/dummy/index.html.erb +41 -0
  73. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  74. data/spec/dummy/config/application.rb +62 -0
  75. data/spec/dummy/config/boot.rb +10 -0
  76. data/spec/dummy/config/database.yml +25 -0
  77. data/spec/dummy/config/environment.rb +5 -0
  78. data/spec/dummy/config/environments/development.rb +37 -0
  79. data/spec/dummy/config/environments/production.rb +67 -0
  80. data/spec/dummy/config/environments/test.rb +37 -0
  81. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  82. data/spec/dummy/config/initializers/inflections.rb +15 -0
  83. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  84. data/spec/dummy/config/initializers/secret_token.rb +7 -0
  85. data/spec/dummy/config/initializers/session_store.rb +8 -0
  86. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  87. data/spec/dummy/config/routes.rb +60 -0
  88. data/spec/dummy/config.ru +4 -0
  89. data/spec/dummy/db/development.sqlite3 +0 -0
  90. data/spec/dummy/lib/assets/.gitkeep +0 -0
  91. data/spec/dummy/log/.gitkeep +0 -0
  92. data/spec/dummy/public/404.html +26 -0
  93. data/spec/dummy/public/422.html +26 -0
  94. data/spec/dummy/public/500.html +25 -0
  95. data/spec/dummy/public/favicon.ico +0 -0
  96. data/spec/dummy/script/rails +6 -0
  97. data/spec/localized_country_select_test.rb +134 -0
  98. data/spec/spec_helper.rb +32 -0
  99. data/vendor/assets/images/chosen-sprite.png +0 -0
  100. data/vendor/assets/javascripts/chosen.jquery.min.js +10 -0
  101. data/vendor/assets/stylesheets/chosen.css +396 -0
  102. metadata +209 -0
@@ -0,0 +1,134 @@
1
+ $KCODE = 'u'
2
+ require 'test/unit'
3
+
4
+ require 'rubygems'
5
+ require 'active_support'
6
+ require 'action_controller'
7
+ require 'action_controller/test_case'
8
+ require 'action_view'
9
+ require 'action_view/helpers'
10
+ require 'action_view/helpers/tag_helper'
11
+ require 'i18n'
12
+
13
+ begin
14
+ require 'redgreen'
15
+ rescue LoadError
16
+ puts "[!] Install redgreen gem for better test output ($ sudo gem install redgreen)"
17
+ end unless ENV["TM_FILEPATH"]
18
+
19
+ require 'localized_country_select'
20
+
21
+ class LocalizedCountrySelectTest < Test::Unit::TestCase
22
+
23
+ include ActionView::Helpers::TagHelper
24
+ include ActionView::Helpers::FormOptionsHelper
25
+ include ActionView::Helpers::FormTagHelper
26
+
27
+ def test_action_view_should_include_helper_for_object
28
+ assert ActionView::Helpers::FormBuilder.instance_methods.include?('localized_country_select')
29
+ assert ActionView::Helpers::FormOptionsHelper.instance_methods.include?('localized_country_select')
30
+ end
31
+
32
+ def test_action_view_should_include_helper_tag
33
+ assert ActionView::Helpers::FormOptionsHelper.instance_methods.include?('localized_country_select_tag')
34
+ end
35
+
36
+ def test_should_return_select_tag_with_proper_name_for_object
37
+ # puts localized_country_select(:user, :country)
38
+ assert localized_country_select(:user, :country) =~
39
+ Regexp.new(Regexp.escape('<select id="user_country" name="user[country]">')),
40
+ "Should have proper name for object"
41
+ end
42
+
43
+ def test_should_return_select_tag_with_proper_name
44
+ # puts localized_country_select_tag( "competition_submission[data][citizenship]", nil)
45
+ assert localized_country_select_tag( "competition_submission[data][citizenship]", nil) =~
46
+ Regexp.new(
47
+ Regexp.escape('<select id="competition_submission_data_citizenship" name="competition_submission[data][citizenship]">') ),
48
+ "Should have proper name"
49
+ end
50
+
51
+ def test_should_return_option_tags
52
+ assert localized_country_select(:user, :country) =~ Regexp.new(Regexp.escape('<option value="ES">Spain</option>'))
53
+ end
54
+
55
+ def test_should_return_localized_option_tags
56
+ #I18n.locale = 'cz'
57
+ #assert localized_country_select(:user, :country) =~ Regexp.new(Regexp.escape('<option value="ES">Španělsko</option>'))
58
+ end
59
+
60
+ def test_should_return_priority_countries_first
61
+ assert localized_country_options_for_select(nil, [:ES, :CZ]) =~ Regexp.new(
62
+ Regexp.escape("<option value=\"ES\">Spain</option>\n<option value=\"CZ\">Czech Republic</option><option value=\"\" disabled=\"disabled\">-------------</option>\n<option value=\"AF\">Afghanistan</option>\n"))
63
+ end
64
+
65
+ def test_i18n_should_know_about_countries
66
+ assert_equal 'Spain', I18n.t('ES', :scope => 'countries')
67
+ #I18n.locale = 'cz'
68
+ #assert_equal 'Španělsko', I18n.t('ES', :scope => 'countries')
69
+ end
70
+
71
+ def test_localized_countries_array_returns_correctly
72
+ assert_nothing_raised { LocalizedCountrySelect::localized_countries_array() }
73
+ # puts LocalizedCountrySelect::localized_countries_array.inspect
74
+ I18n.locale = 'en'
75
+ assert_equal 256, LocalizedCountrySelect::localized_countries_array.size
76
+ assert_equal 'Afghanistan', LocalizedCountrySelect::localized_countries_array.first[0]
77
+ #I18n.locale = 'cz'
78
+ #assert_equal 250, LocalizedCountrySelect::localized_countries_array.size
79
+ #assert_equal 'Afghánistán', LocalizedCountrySelect::localized_countries_array.first[0]
80
+ end
81
+
82
+ def test_include_country_rejects_on_except_option
83
+ res = !LocalizedCountrySelect::include_country?('AF', except: ['AF'])
84
+ puts "should not include_country? 'AF' except AF : #{res}"
85
+ end
86
+
87
+ def test_include_country_accept_on_only_option
88
+ res = LocalizedCountrySelect::include_country?('AF', only: ['AF'])
89
+ puts "should include_country? 'AF' : #{res}"
90
+
91
+ res = !LocalizedCountrySelect::include_country?('AD', only: ['AF'])
92
+ puts "should not include_country? 'AD' : #{res}"
93
+ end
94
+
95
+ def test_localized_countries_array_rejects_on_except_option
96
+ list = LocalizedCountrySelect::localized_countries_array(:except => ['AF'])
97
+ res = !list.include?(['Afghanistan', 'AF'])
98
+ puts "rejected 'AF' from array? #{res}"
99
+ end
100
+
101
+ def test_priority_countries_returns_correctly_and_in_correct_order
102
+ assert_nothing_raised { LocalizedCountrySelect::priority_countries_array([:TW, :CN]) }
103
+ I18n.locale = 'en'
104
+ assert_equal [ ['Taiwan', 'TW'], ['China', 'CN'] ], LocalizedCountrySelect::priority_countries_array([:TW, :CN])
105
+ end
106
+
107
+ def test_priority_countries_allows_passing_either_symbol_or_string
108
+ I18n.locale = 'en'
109
+ assert_equal [ ['United States', 'US'], ['Canada', 'CA'] ], LocalizedCountrySelect::priority_countries_array(['US', 'CA'])
110
+ end
111
+
112
+ def test_priority_countries_allows_passing_upcase_or_lowercase
113
+ I18n.locale = 'en'
114
+ assert_equal [ ['United States', 'US'], ['Canada', 'CA'] ], LocalizedCountrySelect::priority_countries_array(['us', 'ca'])
115
+ assert_equal [ ['United States', 'US'], ['Canada', 'CA'] ], LocalizedCountrySelect::priority_countries_array([:us, :ca])
116
+ end
117
+
118
+ def test_should_list_countries_with_accented_names_in_correct_order
119
+ #I18n.locale = 'cz'
120
+ #assert_match Regexp.new(Regexp.escape(%Q{<option value="BI">Burundi</option>\n<option value="TD">Čad</option>})), localized_country_select(:user, :country)
121
+ end
122
+
123
+ # private
124
+
125
+ def setup
126
+ ['en'].each do |locale|
127
+ # I18n.load_translations( File.join(File.dirname(__FILE__), '..', 'locale', "#{locale}.rb") ) # <-- Old style! :)
128
+ I18n.load_path += Dir[ File.join(File.dirname(__FILE__), '..', 'locale', "#{locale}.rb") ]
129
+ end
130
+ # I18n.locale = I18n.default_locale
131
+ I18n.locale = 'en'
132
+ end
133
+
134
+ end
@@ -0,0 +1,32 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV["RAILS_ENV"] ||= 'test'
3
+ require File.expand_path("../../config/environment", __FILE__)
4
+ require 'rspec/rails'
5
+ require 'rspec/autorun'
6
+
7
+ # Requires supporting ruby files with custom matchers and macros, etc,
8
+ # in spec/support/ and its subdirectories.
9
+ Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}
10
+
11
+ RSpec.configure do |config|
12
+ # ## Mock Framework
13
+ #
14
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
15
+ #
16
+ # config.mock_with :mocha
17
+ # config.mock_with :flexmock
18
+ # config.mock_with :rr
19
+
20
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
21
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
22
+
23
+ # If you're not using ActiveRecord, or you'd prefer not to run each of your
24
+ # examples within a transaction, remove the following line or assign false
25
+ # instead of true.
26
+ config.use_transactional_fixtures = true
27
+
28
+ # If true, the base class of anonymous controllers will be inferred
29
+ # automatically. This will be the default behavior in future versions of
30
+ # rspec-rails.
31
+ config.infer_base_class_for_anonymous_controllers = false
32
+ end
@@ -0,0 +1,10 @@
1
+ // Chosen, a Select Box Enhancer for jQuery and Protoype
2
+ // by Patrick Filler for Harvest, http://getharvest.com
3
+ //
4
+ // Version 0.9.8
5
+ // Full source at https://github.com/harvesthq/chosen
6
+ // Copyright (c) 2011 Harvest http://getharvest.com
7
+
8
+ // MIT License, https://github.com/harvesthq/chosen/blob/master/LICENSE.md
9
+ // This file is generated by `cake build`, do not edit it by hand.
10
+ ((function(){var a;a=function(){function a(){this.options_index=0,this.parsed=[]}return a.prototype.add_node=function(a){return a.nodeName==="OPTGROUP"?this.add_group(a):this.add_option(a)},a.prototype.add_group=function(a){var b,c,d,e,f,g;b=this.parsed.length,this.parsed.push({array_index:b,group:!0,label:a.label,children:0,disabled:a.disabled}),f=a.childNodes,g=[];for(d=0,e=f.length;d<e;d++)c=f[d],g.push(this.add_option(c,b,a.disabled));return g},a.prototype.add_option=function(a,b,c){if(a.nodeName==="OPTION")return a.text!==""?(b!=null&&(this.parsed[b].children+=1),this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:a.value,text:a.text,html:a.innerHTML,selected:a.selected,disabled:c===!0?c:a.disabled,group_array_index:b,classes:a.className,style:a.style.cssText})):this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:!0}),this.options_index+=1},a}(),a.select_to_array=function(b){var c,d,e,f,g;d=new a,g=b.childNodes;for(e=0,f=g.length;e<f;e++)c=g[e],d.add_node(c);return d.parsed},this.SelectParser=a})).call(this),function(){var a,b;b=this,a=function(){function a(a,b){this.form_field=a,this.options=b!=null?b:{},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 a.prototype.set_default_values=function(){var a=this;return this.click_test_action=function(b){return a.test_active_click(b)},this.activate_action=function(b){return a.activate_field(b)},this.active_field=!1,this.mouse_on_container=!1,this.results_showing=!1,this.result_highlighted=null,this.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.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},a.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"},a.prototype.mouse_enter=function(){return this.mouse_on_container=!0},a.prototype.mouse_leave=function(){return this.mouse_on_container=!1},a.prototype.input_focus=function(a){var b=this;if(!this.active_field)return setTimeout(function(){return b.container_mousedown()},50)},a.prototype.input_blur=function(a){var b=this;if(!this.mouse_on_container)return this.active_field=!1,setTimeout(function(){return b.blur_test()},100)},a.prototype.result_add_option=function(a){var b,c;return a.disabled?"":(a.dom_id=this.container_id+"_o_"+a.array_index,b=a.selected&&this.is_multiple?[]:["active-result"],a.selected&&b.push("result-selected"),a.group_array_index!=null&&b.push("group-option"),a.classes!==""&&b.push(a.classes),c=a.style.cssText!==""?' style="'+a.style+'"':"",'<li id="'+a.dom_id+'" class="'+b.join(" ")+'"'+c+">"+a.html+"</li>")},a.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()},a.prototype.results_toggle=function(){return this.results_showing?this.results_hide():this.results_show()},a.prototype.results_search=function(a){return this.results_showing?this.winnow_results():this.results_show()},a.prototype.keyup_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale();switch(b){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:a.preventDefault();if(this.results_showing)return this.result_select(a);break;case 27:return this.results_showing&&this.results_hide(),!0;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}},a.prototype.generate_field_id=function(){var a;return a=this.generate_random_id(),this.form_field.id=a,a},a.prototype.generate_random_char=function(){var a,b,c;return a="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",c=Math.floor(Math.random()*a.length),b=a.substring(c,c+1)},a}(),b.AbstractChosen=a}.call(this),function(){var a,b,c,d,e=Object.prototype.hasOwnProperty,f=function(a,b){function d(){this.constructor=a}for(var c in b)e.call(b,c)&&(a[c]=b[c]);return d.prototype=b.prototype,a.prototype=new d,a.__super__=b.prototype,a};d=this,a=jQuery,a.fn.extend({chosen:function(c){return!a.browser.msie||a.browser.version!=="6.0"&&a.browser.version!=="7.0"?this.each(function(d){var e;e=a(this);if(!e.hasClass("chzn-done"))return e.data("chosen",new b(this,c))}):this}}),b=function(b){function e(){e.__super__.constructor.apply(this,arguments)}return f(e,b),e.prototype.setup=function(){return this.form_field_jq=a(this.form_field),this.current_value=this.form_field_jq.val(),this.is_rtl=this.form_field_jq.hasClass("chzn-rtl")},e.prototype.finish_setup=function(){return this.form_field_jq.addClass("chzn-done")},e.prototype.set_up_html=function(){var b,d,e,f;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(),b=a("<div />",{id:this.container_id,"class":"chzn-container"+(this.is_rtl?" chzn-rtl":""),style:"width: "+this.f_width+"px;"}),this.is_multiple?b.html('<ul class="chzn-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chzn-drop" style="left:-9000px;"><ul class="chzn-results"></ul></div>'):b.html('<a href="javascript:void(0)" class="chzn-single chzn-default"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chzn-drop" style="left:-9000px;"><div class="chzn-search"><input type="text" autocomplete="off" /></div><ul class="chzn-results"></ul></div>'),this.form_field_jq.hide().after(b),this.container=a("#"+this.container_id),this.container.addClass("chzn-container-"+(this.is_multiple?"multi":"single")),this.dropdown=this.container.find("div.chzn-drop").first(),d=this.container.height(),e=this.f_width-c(this.dropdown),this.dropdown.css({width:e+"px",top:d+"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(),f=e-c(this.search_container)-c(this.search_field),this.search_field.css({width:f+"px"})),this.results_build(),this.set_tab_index(),this.form_field_jq.trigger("liszt:ready",{chosen:this})},e.prototype.register_observers=function(){var a=this;return this.container.mousedown(function(b){return a.container_mousedown(b)}),this.container.mouseup(function(b){return a.container_mouseup(b)}),this.container.mouseenter(function(b){return a.mouse_enter(b)}),this.container.mouseleave(function(b){return a.mouse_leave(b)}),this.search_results.mouseup(function(b){return a.search_results_mouseup(b)}),this.search_results.mouseover(function(b){return a.search_results_mouseover(b)}),this.search_results.mouseout(function(b){return a.search_results_mouseout(b)}),this.form_field_jq.bind("liszt:updated",function(b){return a.results_update_field(b)}),this.search_field.blur(function(b){return a.input_blur(b)}),this.search_field.keyup(function(b){return a.keyup_checker(b)}),this.search_field.keydown(function(b){return a.keydown_checker(b)}),this.is_multiple?(this.search_choices.click(function(b){return a.choices_click(b)}),this.search_field.focus(function(b){return a.input_focus(b)})):this.container.click(function(a){return a.preventDefault()})},e.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)},e.prototype.container_mousedown=function(b){var c;if(!this.is_disabled)return c=b!=null?a(b.target).hasClass("search-choice-close"):!1,b&&b.type==="mousedown"&&!this.results_showing&&b.stopPropagation(),!this.pending_destroy_click&&!c?(this.active_field?!this.is_multiple&&b&&(a(b.target)[0]===this.selected_item[0]||a(b.target).parents("a.chzn-single").length)&&(b.preventDefault(),this.results_toggle()):(this.is_multiple&&this.search_field.val(""),a(document).click(this.click_test_action),this.results_show()),this.activate_field()):this.pending_destroy_click=!1},e.prototype.container_mouseup=function(a){if(a.target.nodeName==="ABBR"&&!this.is_disabled)return this.results_reset(a)},e.prototype.blur_test=function(a){if(!this.active_field&&this.container.hasClass("chzn-container-active"))return this.close_field()},e.prototype.close_field=function(){return a(document).unbind("click",this.click_test_action),this.is_multiple||(this.selected_item.attr("tabindex",this.search_field.attr("tabindex")),this.search_field.attr("tabindex",-1)),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()},e.prototype.activate_field=function(){return!this.is_multiple&&!this.active_field&&(this.search_field.attr("tabindex",this.selected_item.attr("tabindex")),this.selected_item.attr("tabindex",-1)),this.container.addClass("chzn-container-active"),this.active_field=!0,this.search_field.val(this.search_field.val()),this.search_field.focus()},e.prototype.test_active_click=function(b){return a(b.target).parents("#"+this.container_id).length?this.active_field=!0:this.close_field()},e.prototype.results_build=function(){var a,b,c,e,f;this.parsing=!0,this.results_data=d.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.form_field.options.length<=this.disable_search_threshold?this.container.addClass("chzn-container-single-nosearch"):this.container.removeClass("chzn-container-single-nosearch")),a="",f=this.results_data;for(c=0,e=f.length;c<e;c++)b=f[c],b.group?a+=this.result_add_group(b):b.empty||(a+=this.result_add_option(b),b.selected&&this.is_multiple?this.choice_build(b):b.selected&&!this.is_multiple&&(this.selected_item.removeClass("chzn-default").find("span").text(b.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(a),this.parsing=!1},e.prototype.result_add_group=function(b){return b.disabled?"":(b.dom_id=this.container_id+"_g_"+b.array_index,'<li id="'+b.dom_id+'" class="group-result">'+a("<div />").text(b.label).html()+"</li>")},e.prototype.result_do_highlight=function(a){var b,c,d,e,f;if(a.length){this.result_clear_highlight(),this.result_highlight=a,this.result_highlight.addClass("highlighted"),d=parseInt(this.search_results.css("maxHeight"),10),f=this.search_results.scrollTop(),e=d+f,c=this.result_highlight.position().top+this.search_results.scrollTop(),b=c+this.result_highlight.outerHeight();if(b>=e)return this.search_results.scrollTop(b-d>0?b-d:0);if(c<f)return this.search_results.scrollTop(c)}},e.prototype.result_clear_highlight=function(){return this.result_highlight&&this.result_highlight.removeClass("highlighted"),this.result_highlight=null},e.prototype.results_show=function(){var a;if(!this.is_multiple)this.selected_item.addClass("chzn-single-with-drop"),this.result_single_selected&&this.result_do_highlight(this.result_single_selected);else if(this.max_selected_options<=this.choices)return this.form_field_jq.trigger("liszt:maxselected",{chosen:this}),!1;return a=this.is_multiple?this.container.height():this.container.height()-1,this.form_field_jq.trigger("liszt:showing_dropdown",{chosen:this}),this.dropdown.css({top:a+"px",left:0}),this.results_showing=!0,this.search_field.focus(),this.search_field.val(this.search_field.val()),this.winnow_results()},e.prototype.results_hide=function(){return this.is_multiple||this.selected_item.removeClass("chzn-single-with-drop"),this.result_clear_highlight(),this.form_field_jq.trigger("liszt:hiding_dropdown",{chosen:this}),this.dropdown.css({left:"-9000px"}),this.results_showing=!1},e.prototype.set_tab_index=function(a){var b;if(this.form_field_jq.attr("tabindex"))return b=this.form_field_jq.attr("tabindex"),this.form_field_jq.attr("tabindex",-1),this.is_multiple?this.search_field.attr("tabindex",b):(this.selected_item.attr("tabindex",b),this.search_field.attr("tabindex",-1))},e.prototype.show_search_field_default=function(){return this.is_multiple&&this.choices<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"))},e.prototype.search_results_mouseup=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c.length)return this.result_highlight=c,this.result_select(b)},e.prototype.search_results_mouseover=function(b){var c;c=a(b.target).hasClass("active-result")?a(b.target):a(b.target).parents(".active-result").first();if(c)return this.result_do_highlight(c)},e.prototype.search_results_mouseout=function(b){if(a(b.target).hasClass("active-result"))return this.result_clear_highlight()},e.prototype.choices_click=function(b){b.preventDefault();if(this.active_field&&!a(b.target).hasClass("search-choice")&&!this.results_showing)return this.results_show()},e.prototype.choice_build=function(b){var c,d,e=this;return this.is_multiple&&this.max_selected_options<=this.choices?(this.form_field_jq.trigger("liszt:maxselected",{chosen:this}),!1):(c=this.container_id+"_c_"+b.array_index,this.choices+=1,this.search_container.before('<li class="search-choice" id="'+c+'"><span>'+b.html+'</span><a href="javascript:void(0)" class="search-choice-close" rel="'+b.array_index+'"></a></li>'),d=a("#"+c).find("a").first(),d.click(function(a){return e.choice_destroy_link_click(a)}))},e.prototype.choice_destroy_link_click=function(b){return b.preventDefault(),this.is_disabled?b.stopPropagation:(this.pending_destroy_click=!0,this.choice_destroy(a(b.target)))},e.prototype.choice_destroy=function(a){return this.choices-=1,this.show_search_field_default(),this.is_multiple&&this.choices>0&&this.search_field.val().length<1&&this.results_hide(),this.result_deselect(a.attr("rel")),a.parents("li").first().remove()},e.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()},e.prototype.results_reset_cleanup=function(){return this.selected_item.find("abbr").remove()},e.prototype.result_select=function(a){var b,c,d,e;if(this.result_highlight)return b=this.result_highlight,c=b.attr("id"),this.result_clear_highlight(),this.is_multiple?this.result_deactivate(b):(this.search_results.find(".result-selected").removeClass("result-selected"),this.result_single_selected=b,this.selected_item.removeClass("chzn-default")),b.addClass("result-selected"),e=c.substr(c.lastIndexOf("_")+1),d=this.results_data[e],d.selected=!0,this.form_field.options[d.options_index].selected=!0,this.is_multiple?this.choice_build(d):(this.selected_item.find("span").first().text(d.text),this.allow_single_deselect&&this.single_deselect_control_build()),(!a.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[d.options_index].value}),this.current_value=this.form_field_jq.val(),this.search_field_scale()},e.prototype.result_activate=function(a){return a.addClass("active-result")},e.prototype.result_deactivate=function(a){return a.removeClass("active-result")},e.prototype.result_deselect=function(b){var c,d;return d=this.results_data[b],d.selected=!1,this.form_field.options[d.options_index].selected=!1,c=a("#"+this.container_id+"_o_"+b),c.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[d.options_index].value}),this.search_field_scale()},e.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>')},e.prototype.winnow_results=function(){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s;this.no_results_clear(),j=0,k=this.search_field.val()===this.default_text?"":a("<div/>").text(a.trim(this.search_field.val())).html(),g=this.search_contains?"":"^",f=new RegExp(g+k.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),n=new RegExp(k.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),"i"),s=this.results_data;for(o=0,q=s.length;o<q;o++){c=s[o];if(!c.disabled&&!c.empty)if(c.group)a("#"+c.dom_id).css("display","none");else if(!this.is_multiple||!c.selected){b=!1,i=c.dom_id,h=a("#"+i);if(f.test(c.html))b=!0,j+=1;else if(c.html.indexOf(" ")>=0||c.html.indexOf("[")===0){e=c.html.replace(/\[|\]/g,"").split(" ");if(e.length)for(p=0,r=e.length;p<r;p++)d=e[p],f.test(d)&&(b=!0,j+=1)}b?(k.length?(l=c.html.search(n),m=c.html.substr(0,l+k.length)+"</em>"+c.html.substr(l+k.length),m=m.substr(0,l)+"<em>"+m.substr(l)):m=c.html,h.html(m),this.result_activate(h),c.group_array_index!=null&&a("#"+this.results_data[c.group_array_index].dom_id).css("display","list-item")):(this.result_highlight&&i===this.result_highlight.attr("id")&&this.result_clear_highlight(),this.result_deactivate(h))}}return j<1&&k.length?this.no_results(k):this.winnow_results_set_highlight()},e.prototype.winnow_results_clear=function(){var b,c,d,e,f;this.search_field.val(""),c=this.search_results.find("li"),f=[];for(d=0,e=c.length;d<e;d++)b=c[d],b=a(b),b.hasClass("group-result")?f.push(b.css("display","auto")):!this.is_multiple||!b.hasClass("result-selected")?f.push(this.result_activate(b)):f.push(void 0);return f},e.prototype.winnow_results_set_highlight=function(){var a,b;if(!this.result_highlight){b=this.is_multiple?[]:this.search_results.find(".result-selected.active-result"),a=b.length?b.first():this.search_results.find(".active-result").first();if(a!=null)return this.result_do_highlight(a)}},e.prototype.no_results=function(b){var c;return c=a('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>'),c.find("span").first().html(b),this.search_results.append(c)},e.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()},e.prototype.keydown_arrow=function(){var b,c;this.result_highlight?this.results_showing&&(c=this.result_highlight.nextAll("li.active-result").first(),c&&this.result_do_highlight(c)):(b=this.search_results.find("li.active-result").first(),b&&this.result_do_highlight(a(b)));if(!this.results_showing)return this.results_show()},e.prototype.keyup_arrow=function(){var a;if(!this.results_showing&&!this.is_multiple)return this.results_show();if(this.result_highlight)return a=this.result_highlight.prevAll("li.active-result"),a.length?this.result_do_highlight(a.first()):(this.choices>0&&this.results_hide(),this.result_clear_highlight())},e.prototype.keydown_backstroke=function(){return this.pending_backstroke?(this.choice_destroy(this.pending_backstroke.find("a").first()),this.clear_backstroke()):(this.pending_backstroke=this.search_container.siblings("li.search-choice").last(),this.single_backstroke_delete?this.keydown_backstroke():this.pending_backstroke.addClass("search-choice-focus"))},e.prototype.clear_backstroke=function(){return this.pending_backstroke&&this.pending_backstroke.removeClass("search-choice-focus"),this.pending_backstroke=null},e.prototype.keydown_checker=function(a){var b,c;b=(c=a.which)!=null?c:a.keyCode,this.search_field_scale(),b!==8&&this.pending_backstroke&&this.clear_backstroke();switch(b){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:this.results_showing&&!this.is_multiple&&this.result_select(a),this.mouse_on_container=!1;break;case 13:a.preventDefault();break;case 38:a.preventDefault(),this.keyup_arrow();break;case 40:this.keydown_arrow()}},e.prototype.search_field_scale=function(){var b,c,d,e,f,g,h,i,j;if(this.is_multiple){d=0,h=0,f="position:absolute; left: -1000px; top: -1000px; display:none;",g=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(i=0,j=g.length;i<j;i++)e=g[i],f+=e+":"+this.search_field.css(e)+";";return c=a("<div />",{style:f}),c.text(this.search_field.val()),a("body").append(c),h=c.width()+25,c.remove(),h>this.f_width-10&&(h=this.f_width-10),this.search_field.css({width:h+"px"}),b=this.container.height(),this.dropdown.css({top:b+"px"})}},e.prototype.generate_random_id=function(){var b;b="sel"+this.generate_random_char()+this.generate_random_char()+this.generate_random_char();while(a("#"+b).length>0)b+=this.generate_random_char();return b},e}(AbstractChosen),c=function(a){var b;return b=a.outerWidth()-a.width()},d.get_side_border_padding=c}.call(this);
@@ -0,0 +1,396 @@
1
+ /* @group Base */
2
+ .chzn-container {
3
+ font-size: 13px;
4
+ position: relative;
5
+ display: inline-block;
6
+ zoom: 1;
7
+ *display: inline;
8
+ }
9
+ .chzn-container .chzn-drop {
10
+ background: #fff;
11
+ border: 1px solid #aaa;
12
+ border-top: 0;
13
+ position: absolute;
14
+ top: 29px;
15
+ left: 0;
16
+ -webkit-box-shadow: 0 4px 5px rgba(0,0,0,.15);
17
+ -moz-box-shadow : 0 4px 5px rgba(0,0,0,.15);
18
+ -o-box-shadow : 0 4px 5px rgba(0,0,0,.15);
19
+ box-shadow : 0 4px 5px rgba(0,0,0,.15);
20
+ z-index: 1010;
21
+ }
22
+ /* @end */
23
+
24
+ /* @group Single Chosen */
25
+ .chzn-container-single .chzn-single {
26
+ background-color: #ffffff;
27
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#eeeeee', GradientType=0 );
28
+ 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));
29
+ background-image: -webkit-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
30
+ background-image: -moz-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
31
+ background-image: -o-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
32
+ background-image: -ms-linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
33
+ background-image: linear-gradient(top, #ffffff 20%, #f6f6f6 50%, #eeeeee 52%, #f4f4f4 100%);
34
+ -webkit-border-radius: 5px;
35
+ -moz-border-radius : 5px;
36
+ border-radius : 5px;
37
+ -moz-background-clip : padding;
38
+ -webkit-background-clip: padding-box;
39
+ background-clip : padding-box;
40
+ border: 1px solid #aaaaaa;
41
+ -webkit-box-shadow: 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
42
+ -moz-box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
43
+ box-shadow : 0 0 3px #ffffff inset, 0 1px 1px rgba(0,0,0,0.1);
44
+ display: block;
45
+ overflow: hidden;
46
+ white-space: nowrap;
47
+ position: relative;
48
+ height: 23px;
49
+ line-height: 24px;
50
+ padding: 0 0 0 8px;
51
+ color: #444444;
52
+ text-decoration: none;
53
+ }
54
+ .chzn-container-single .chzn-default {
55
+ color: #999;
56
+ }
57
+ .chzn-container-single .chzn-single span {
58
+ margin-right: 26px;
59
+ display: block;
60
+ overflow: hidden;
61
+ white-space: nowrap;
62
+ -o-text-overflow: ellipsis;
63
+ -ms-text-overflow: ellipsis;
64
+ text-overflow: ellipsis;
65
+ }
66
+ .chzn-container-single .chzn-single abbr {
67
+ display: block;
68
+ position: absolute;
69
+ right: 26px;
70
+ top: 6px;
71
+ width: 12px;
72
+ height: 13px;
73
+ font-size: 1px;
74
+ background: url('chosen-sprite.png') right top no-repeat;
75
+ }
76
+ .chzn-container-single .chzn-single abbr:hover {
77
+ background-position: right -11px;
78
+ }
79
+ .chzn-container-single.chzn-disabled .chzn-single abbr:hover {
80
+ background-position: right top;
81
+ }
82
+ .chzn-container-single .chzn-single div {
83
+ position: absolute;
84
+ right: 0;
85
+ top: 0;
86
+ display: block;
87
+ height: 100%;
88
+ width: 18px;
89
+ }
90
+ .chzn-container-single .chzn-single div b {
91
+ background: url('chosen-sprite.png') no-repeat 0 0;
92
+ display: block;
93
+ width: 100%;
94
+ height: 100%;
95
+ }
96
+ .chzn-container-single .chzn-search {
97
+ padding: 3px 4px;
98
+ position: relative;
99
+ margin: 0;
100
+ white-space: nowrap;
101
+ z-index: 1010;
102
+ }
103
+ .chzn-container-single .chzn-search input {
104
+ background: #fff url('chosen-sprite.png') no-repeat 100% -22px;
105
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
106
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
107
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
108
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
109
+ background: url('chosen-sprite.png') no-repeat 100% -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
110
+ background: url('chosen-sprite.png') no-repeat 100% -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
111
+ margin: 1px 0;
112
+ padding: 4px 20px 4px 5px;
113
+ outline: 0;
114
+ border: 1px solid #aaa;
115
+ font-family: sans-serif;
116
+ font-size: 1em;
117
+ }
118
+ .chzn-container-single .chzn-drop {
119
+ -webkit-border-radius: 0 0 4px 4px;
120
+ -moz-border-radius : 0 0 4px 4px;
121
+ border-radius : 0 0 4px 4px;
122
+ -moz-background-clip : padding;
123
+ -webkit-background-clip: padding-box;
124
+ background-clip : padding-box;
125
+ }
126
+ /* @end */
127
+
128
+ .chzn-container-single-nosearch .chzn-search input {
129
+ position: absolute;
130
+ left: -9000px;
131
+ }
132
+
133
+ /* @group Multi Chosen */
134
+ .chzn-container-multi .chzn-choices {
135
+ background-color: #fff;
136
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
137
+ background-image: -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
138
+ background-image: -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
139
+ background-image: -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
140
+ background-image: -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
141
+ background-image: linear-gradient(top, #eeeeee 1%, #ffffff 15%);
142
+ border: 1px solid #aaa;
143
+ margin: 0;
144
+ padding: 0;
145
+ cursor: text;
146
+ overflow: hidden;
147
+ height: auto !important;
148
+ height: 1%;
149
+ position: relative;
150
+ }
151
+ .chzn-container-multi .chzn-choices li {
152
+ float: left;
153
+ list-style: none;
154
+ }
155
+ .chzn-container-multi .chzn-choices .search-field {
156
+ white-space: nowrap;
157
+ margin: 0;
158
+ padding: 0;
159
+ }
160
+ .chzn-container-multi .chzn-choices .search-field input {
161
+ color: #666;
162
+ background: transparent !important;
163
+ border: 0 !important;
164
+ font-family: sans-serif;
165
+ font-size: 100%;
166
+ height: 15px;
167
+ padding: 5px;
168
+ margin: 1px 0;
169
+ outline: 0;
170
+ -webkit-box-shadow: none;
171
+ -moz-box-shadow : none;
172
+ -o-box-shadow : none;
173
+ box-shadow : none;
174
+ }
175
+ .chzn-container-multi .chzn-choices .search-field .default {
176
+ color: #999;
177
+ }
178
+ .chzn-container-multi .chzn-choices .search-choice {
179
+ -webkit-border-radius: 3px;
180
+ -moz-border-radius : 3px;
181
+ border-radius : 3px;
182
+ -moz-background-clip : padding;
183
+ -webkit-background-clip: padding-box;
184
+ background-clip : padding-box;
185
+ background-color: #e4e4e4;
186
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f4f4f4', endColorstr='#eeeeee', GradientType=0 );
187
+ 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));
188
+ background-image: -webkit-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
189
+ background-image: -moz-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
190
+ background-image: -o-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
191
+ background-image: -ms-linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
192
+ background-image: linear-gradient(top, #f4f4f4 20%, #f0f0f0 50%, #e8e8e8 52%, #eeeeee 100%);
193
+ -webkit-box-shadow: 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
194
+ -moz-box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
195
+ box-shadow : 0 0 2px #ffffff inset, 0 1px 0 rgba(0,0,0,0.05);
196
+ color: #333;
197
+ border: 1px solid #aaaaaa;
198
+ line-height: 13px;
199
+ padding: 3px 20px 3px 5px;
200
+ margin: 3px 0 3px 5px;
201
+ position: relative;
202
+ cursor: default;
203
+ }
204
+ .chzn-container-multi .chzn-choices .search-choice-focus {
205
+ background: #d4d4d4;
206
+ }
207
+ .chzn-container-multi .chzn-choices .search-choice .search-choice-close {
208
+ display: block;
209
+ position: absolute;
210
+ right: 3px;
211
+ top: 4px;
212
+ width: 12px;
213
+ height: 13px;
214
+ font-size: 1px;
215
+ background: url('chosen-sprite.png') right top no-repeat;
216
+ }
217
+ .chzn-container-multi .chzn-choices .search-choice .search-choice-close:hover {
218
+ background-position: right -11px;
219
+ }
220
+ .chzn-container-multi .chzn-choices .search-choice-focus .search-choice-close {
221
+ background-position: right -11px;
222
+ }
223
+ /* @end */
224
+
225
+ /* @group Results */
226
+ .chzn-container .chzn-results {
227
+ margin: 0 4px 4px 0;
228
+ max-height: 240px;
229
+ padding: 0 0 0 4px;
230
+ position: relative;
231
+ overflow-x: hidden;
232
+ overflow-y: auto;
233
+ -webkit-overflow-scrolling: touch;
234
+ }
235
+ .chzn-container-multi .chzn-results {
236
+ margin: -1px 0 0;
237
+ padding: 0;
238
+ }
239
+ .chzn-container .chzn-results li {
240
+ display: none;
241
+ line-height: 15px;
242
+ padding: 5px 6px;
243
+ margin: 0;
244
+ list-style: none;
245
+ }
246
+ .chzn-container .chzn-results .active-result {
247
+ cursor: pointer;
248
+ display: list-item;
249
+ }
250
+ .chzn-container .chzn-results .highlighted {
251
+ background-color: #3875d7;
252
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3875d7', endColorstr='#2a62bc', GradientType=0 );
253
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #3875d7), color-stop(90%, #2a62bc));
254
+ background-image: -webkit-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
255
+ background-image: -moz-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
256
+ background-image: -o-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
257
+ background-image: -ms-linear-gradient(top, #3875d7 20%, #2a62bc 90%);
258
+ background-image: linear-gradient(top, #3875d7 20%, #2a62bc 90%);
259
+ color: #fff;
260
+ }
261
+ .chzn-container .chzn-results li em {
262
+ background: #feffde;
263
+ font-style: normal;
264
+ }
265
+ .chzn-container .chzn-results .highlighted em {
266
+ background: transparent;
267
+ }
268
+ .chzn-container .chzn-results .no-results {
269
+ background: #f4f4f4;
270
+ display: list-item;
271
+ }
272
+ .chzn-container .chzn-results .group-result {
273
+ cursor: default;
274
+ color: #999;
275
+ font-weight: bold;
276
+ }
277
+ .chzn-container .chzn-results .group-option {
278
+ padding-left: 15px;
279
+ }
280
+ .chzn-container-multi .chzn-drop .result-selected {
281
+ display: none;
282
+ }
283
+ .chzn-container .chzn-results-scroll {
284
+ background: white;
285
+ margin: 0 4px;
286
+ position: absolute;
287
+ text-align: center;
288
+ width: 321px; /* This should by dynamic with js */
289
+ z-index: 1;
290
+ }
291
+ .chzn-container .chzn-results-scroll span {
292
+ display: inline-block;
293
+ height: 17px;
294
+ text-indent: -5000px;
295
+ width: 9px;
296
+ }
297
+ .chzn-container .chzn-results-scroll-down {
298
+ bottom: 0;
299
+ }
300
+ .chzn-container .chzn-results-scroll-down span {
301
+ background: url('chosen-sprite.png') no-repeat -4px -3px;
302
+ }
303
+ .chzn-container .chzn-results-scroll-up span {
304
+ background: url('chosen-sprite.png') no-repeat -22px -3px;
305
+ }
306
+ /* @end */
307
+
308
+ /* @group Active */
309
+ .chzn-container-active .chzn-single {
310
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
311
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
312
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
313
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
314
+ border: 1px solid #5897fb;
315
+ }
316
+ .chzn-container-active .chzn-single-with-drop {
317
+ border: 1px solid #aaa;
318
+ -webkit-box-shadow: 0 1px 0 #fff inset;
319
+ -moz-box-shadow : 0 1px 0 #fff inset;
320
+ -o-box-shadow : 0 1px 0 #fff inset;
321
+ box-shadow : 0 1px 0 #fff inset;
322
+ background-color: #eee;
323
+ filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#eeeeee', endColorstr='#ffffff', GradientType=0 );
324
+ background-image: -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(20%, #eeeeee), color-stop(80%, #ffffff));
325
+ background-image: -webkit-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
326
+ background-image: -moz-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
327
+ background-image: -o-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
328
+ background-image: -ms-linear-gradient(top, #eeeeee 20%, #ffffff 80%);
329
+ background-image: linear-gradient(top, #eeeeee 20%, #ffffff 80%);
330
+ -webkit-border-bottom-left-radius : 0;
331
+ -webkit-border-bottom-right-radius: 0;
332
+ -moz-border-radius-bottomleft : 0;
333
+ -moz-border-radius-bottomright: 0;
334
+ border-bottom-left-radius : 0;
335
+ border-bottom-right-radius: 0;
336
+ }
337
+ .chzn-container-active .chzn-single-with-drop div {
338
+ background: transparent;
339
+ border-left: none;
340
+ }
341
+ .chzn-container-active .chzn-single-with-drop div b {
342
+ background-position: -18px 1px;
343
+ }
344
+ .chzn-container-active .chzn-choices {
345
+ -webkit-box-shadow: 0 0 5px rgba(0,0,0,.3);
346
+ -moz-box-shadow : 0 0 5px rgba(0,0,0,.3);
347
+ -o-box-shadow : 0 0 5px rgba(0,0,0,.3);
348
+ box-shadow : 0 0 5px rgba(0,0,0,.3);
349
+ border: 1px solid #5897fb;
350
+ }
351
+ .chzn-container-active .chzn-choices .search-field input {
352
+ color: #111 !important;
353
+ }
354
+ /* @end */
355
+
356
+ /* @group Disabled Support */
357
+ .chzn-disabled {
358
+ cursor: default;
359
+ opacity:0.5 !important;
360
+ }
361
+ .chzn-disabled .chzn-single {
362
+ cursor: default;
363
+ }
364
+ .chzn-disabled .chzn-choices .search-choice .search-choice-close {
365
+ cursor: default;
366
+ }
367
+
368
+ /* @group Right to Left */
369
+ .chzn-rtl { text-align: right; }
370
+ .chzn-rtl .chzn-single { padding: 0 8px 0 0; overflow: visible; }
371
+ .chzn-rtl .chzn-single span { margin-left: 26px; margin-right: 0; direction: rtl; }
372
+
373
+ .chzn-rtl .chzn-single div { left: 3px; right: auto; }
374
+ .chzn-rtl .chzn-single abbr {
375
+ left: 26px;
376
+ right: auto;
377
+ }
378
+ .chzn-rtl .chzn-choices .search-field input { direction: rtl; }
379
+ .chzn-rtl .chzn-choices li { float: right; }
380
+ .chzn-rtl .chzn-choices .search-choice { padding: 3px 5px 3px 19px; margin: 3px 5px 3px 0; }
381
+ .chzn-rtl .chzn-choices .search-choice .search-choice-close { left: 4px; right: auto; background-position: right top;}
382
+ .chzn-rtl.chzn-container-single .chzn-results { margin: 0 0 4px 4px; padding: 0 4px 0 0; }
383
+ .chzn-rtl .chzn-results .group-option { padding-left: 0; padding-right: 15px; }
384
+ .chzn-rtl.chzn-container-active .chzn-single-with-drop div { border-right: none; }
385
+ .chzn-rtl .chzn-search input {
386
+ background: #fff url('chosen-sprite.png') no-repeat -38px -22px;
387
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-gradient(linear, 0% 0%, 0% 100%, color-stop(1%, #eeeeee), color-stop(15%, #ffffff));
388
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -webkit-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
389
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -moz-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
390
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -o-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
391
+ background: url('chosen-sprite.png') no-repeat -38px -22px, -ms-linear-gradient(top, #eeeeee 1%, #ffffff 15%);
392
+ background: url('chosen-sprite.png') no-repeat -38px -22px, linear-gradient(top, #eeeeee 1%, #ffffff 15%);
393
+ padding: 4px 5px 4px 20px;
394
+ direction: rtl;
395
+ }
396
+ /* @end */