web_admin 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (264) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.rspec +2 -0
  4. data/.ruby-version +1 -0
  5. data/Gemfile +32 -0
  6. data/Gemfile.lock +335 -0
  7. data/MIT-LICENSE +20 -0
  8. data/README.rdoc +3 -0
  9. data/Rakefile +22 -0
  10. data/app/assets/images/web_admin/.keep +0 -0
  11. data/app/assets/images/web_admin/avatar.jpg +0 -0
  12. data/app/assets/images/web_admin/first_icon.png +0 -0
  13. data/app/assets/images/web_admin/render-1-thumb.jpg +0 -0
  14. data/app/assets/images/web_admin/render-1.jpg +0 -0
  15. data/app/assets/images/web_admin/render-2-thumb.jpg +0 -0
  16. data/app/assets/images/web_admin/render-2.jpg +0 -0
  17. data/app/assets/images/web_admin/render-3-thumb.jpg +0 -0
  18. data/app/assets/images/web_admin/render-3.jpg +0 -0
  19. data/app/assets/images/web_admin/render-4-thumb.jpg +0 -0
  20. data/app/assets/images/web_admin/render-4.jpg +0 -0
  21. data/app/assets/images/web_admin/responsive.png +0 -0
  22. data/app/assets/javascripts/web_admin/app.data.js +336 -0
  23. data/app/assets/javascripts/web_admin/app.js +172 -0
  24. data/app/assets/javascripts/web_admin/app.plugin.js +220 -0
  25. data/app/assets/javascripts/web_admin/application.js +20 -0
  26. data/app/assets/javascripts/web_admin/bootstrap-filestyle.min.js +1 -0
  27. data/app/assets/javascripts/web_admin/bootstrap.js +1951 -0
  28. data/app/assets/javascripts/web_admin/charts/easypiechart/jquery.easy-pie-chart.js +184 -0
  29. data/app/assets/javascripts/web_admin/charts/sparkline/jquery.sparkline.min.js +5 -0
  30. data/app/assets/javascripts/web_admin/combodate/combodate.js +453 -0
  31. data/app/assets/javascripts/web_admin/combodate/moment.min.js +6 -0
  32. data/app/assets/javascripts/web_admin/data/datagrid.json +1900 -0
  33. data/app/assets/javascripts/web_admin/data/datatable.json +401 -0
  34. data/app/assets/javascripts/web_admin/datatables/jquery.dataTables.min.js +155 -0
  35. data/app/assets/javascripts/web_admin/datepicker/bootstrap-datepicker.js +474 -0
  36. data/app/assets/javascripts/web_admin/datepicker.js +3 -0
  37. data/app/assets/javascripts/web_admin/fuelux/fuelux.js +1645 -0
  38. data/app/assets/javascripts/web_admin/fullcalendar/fullcalendar.min.js +7 -0
  39. data/app/assets/javascripts/web_admin/grid/gallery.js +14 -0
  40. data/app/assets/javascripts/web_admin/grid/jquery.grid-a-licious.min.js +15 -0
  41. data/app/assets/javascripts/web_admin/grid/masonry.pkgd.min.js +9 -0
  42. data/app/assets/javascripts/web_admin/ie/excanvas.js +924 -0
  43. data/app/assets/javascripts/web_admin/ie/html5.js +9 -0
  44. data/app/assets/javascripts/web_admin/ie/respond.min.js +6 -0
  45. data/app/assets/javascripts/web_admin/jquery-ui-1.10.3.custom.min.js +6 -0
  46. data/app/assets/javascripts/web_admin/jquery.datetimepicker.js +1851 -0
  47. data/app/assets/javascripts/web_admin/jquery.ui.touch-punch.min.js +11 -0
  48. data/app/assets/javascripts/web_admin/parsley/parsley.min.js +35 -0
  49. data/app/assets/javascripts/web_admin/prettyphoto/default/default_thumb.png +0 -0
  50. data/app/assets/javascripts/web_admin/prettyphoto/default/loader.gif +0 -0
  51. data/app/assets/javascripts/web_admin/prettyphoto/default/sprite.png +0 -0
  52. data/app/assets/javascripts/web_admin/prettyphoto/default/sprite_next.png +0 -0
  53. data/app/assets/javascripts/web_admin/prettyphoto/default/sprite_prev.png +0 -0
  54. data/app/assets/javascripts/web_admin/prettyphoto/default/sprite_x.png +0 -0
  55. data/app/assets/javascripts/web_admin/prettyphoto/default/sprite_y.png +0 -0
  56. data/app/assets/javascripts/web_admin/prettyphoto/jquery.prettyPhoto.js +7 -0
  57. data/app/assets/javascripts/web_admin/prettyphoto/prettyPhoto.css +170 -0
  58. data/app/assets/javascripts/web_admin/select2/select2.css +652 -0
  59. data/app/assets/javascripts/web_admin/select2/select2.min.js +22 -0
  60. data/app/assets/javascripts/web_admin/slider/bootstrap-slider.js +388 -0
  61. data/app/assets/javascripts/web_admin/underscore-min.js +7 -0
  62. data/app/assets/javascripts/web_admin/underscore-min.map +1 -0
  63. data/app/assets/javascripts/web_admin/upload_image.js +39 -0
  64. data/app/assets/stylesheets/web_admin/application.css +15 -0
  65. data/app/assets/stylesheets/web_admin/bootstrap.css +5784 -0
  66. data/app/assets/stylesheets/web_admin/font-awesome.min.css +4 -0
  67. data/app/assets/stylesheets/web_admin/font.css +18 -0
  68. data/app/assets/stylesheets/web_admin/fonts/FontAwesome.otf +0 -0
  69. data/app/assets/stylesheets/web_admin/fonts/fontawesome-webfont.eot +0 -0
  70. data/app/assets/stylesheets/web_admin/fonts/fontawesome-webfont.svg +414 -0
  71. data/app/assets/stylesheets/web_admin/fonts/fontawesome-webfont.ttf +0 -0
  72. data/app/assets/stylesheets/web_admin/fonts/fontawesome-webfont.woff +0 -0
  73. data/app/assets/stylesheets/web_admin/fonts/glyphicons-halflings-regular.eot +0 -0
  74. data/app/assets/stylesheets/web_admin/fonts/glyphicons-halflings-regular.svg +229 -0
  75. data/app/assets/stylesheets/web_admin/fonts/glyphicons-halflings-regular.ttf +0 -0
  76. data/app/assets/stylesheets/web_admin/fonts/glyphicons-halflings-regular.woff +0 -0
  77. data/app/assets/stylesheets/web_admin/fonts/opensans/opensans-bold-webfont.woff +0 -0
  78. data/app/assets/stylesheets/web_admin/fonts/opensans/opensans-light-webfont.woff +0 -0
  79. data/app/assets/stylesheets/web_admin/fonts/opensans/opensans-webfont.woff +0 -0
  80. data/app/assets/stylesheets/web_admin/landing.css +272 -0
  81. data/app/assets/stylesheets/web_admin/plugin.css +1132 -0
  82. data/app/assets/stylesheets/web_admin/style.css +613 -0
  83. data/app/assets/stylesheets/web_admin/style2.css +21 -0
  84. data/app/controllers/web_admin/albums_controller.rb +8 -0
  85. data/app/controllers/web_admin/application_controller.rb +10 -0
  86. data/app/controllers/web_admin/crud_controller.rb +61 -0
  87. data/app/controllers/web_admin/events_controller.rb +9 -0
  88. data/app/controllers/web_admin/images_controller.rb +8 -0
  89. data/app/controllers/web_admin/institutionals_controller.rb +8 -0
  90. data/app/controllers/web_admin/main_controller.rb +7 -0
  91. data/app/controllers/web_admin/posts_controller.rb +19 -0
  92. data/app/controllers/web_admin/users_controller.rb +15 -0
  93. data/app/controllers/web_admin/videos_controller.rb +8 -0
  94. data/app/enumerations/web_admin/permission_type.rb +5 -0
  95. data/app/enumerations/web_admin/user_type.rb +6 -0
  96. data/app/helpers/web_admin/application_helper.rb +20 -0
  97. data/app/models/ability.rb +14 -0
  98. data/app/models/ckeditor/asset.rb +7 -0
  99. data/app/models/ckeditor/attachment_file.rb +7 -0
  100. data/app/models/ckeditor/picture.rb +7 -0
  101. data/app/models/web_admin/album.rb +13 -0
  102. data/app/models/web_admin/event.rb +20 -0
  103. data/app/models/web_admin/image.rb +10 -0
  104. data/app/models/web_admin/institutional.rb +11 -0
  105. data/app/models/web_admin/permission.rb +9 -0
  106. data/app/models/web_admin/post.rb +14 -0
  107. data/app/models/web_admin/user.rb +25 -0
  108. data/app/models/web_admin/video.rb +17 -0
  109. data/app/uploaders/ckeditor_attachment_file_uploader.rb +36 -0
  110. data/app/uploaders/ckeditor_picture_uploader.rb +47 -0
  111. data/app/uploaders/web_admin/image_post_uploader.rb +55 -0
  112. data/app/uploaders/web_admin/image_uploader.rb +52 -0
  113. data/app/views/devise/confirmations/new.html.erb +12 -0
  114. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  115. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  116. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  117. data/app/views/devise/passwords/edit.html.erb +16 -0
  118. data/app/views/devise/passwords/new.html.erb +12 -0
  119. data/app/views/devise/registrations/edit.html.erb +29 -0
  120. data/app/views/devise/registrations/new.html.erb +18 -0
  121. data/app/views/devise/sessions/new.html.erb +16 -0
  122. data/app/views/devise/shared/_links.html.erb +25 -0
  123. data/app/views/devise/unlocks/new.html.erb +12 -0
  124. data/app/views/layouts/web_admin/devise.html.erb +42 -0
  125. data/app/views/shared/403.html +57 -0
  126. data/app/views/shared/_header.html.erb +16 -0
  127. data/app/views/shared/_navbar.html.erb +23 -0
  128. data/app/views/shared/_notice.html.erb +12 -0
  129. data/app/views/web_admin/albums/_form.html.erb +23 -0
  130. data/app/views/web_admin/albums/edit.html.erb +4 -0
  131. data/app/views/web_admin/albums/index.html.erb +39 -0
  132. data/app/views/web_admin/albums/new.html.erb +4 -0
  133. data/app/views/web_admin/albums/show.html.erb +4 -0
  134. data/app/views/web_admin/events/_form.html.erb +37 -0
  135. data/app/views/web_admin/events/edit.html.erb +4 -0
  136. data/app/views/web_admin/events/index.html.erb +39 -0
  137. data/app/views/web_admin/events/new.html.erb +4 -0
  138. data/app/views/web_admin/images/_form.html.erb +23 -0
  139. data/app/views/web_admin/images/_images.html.erb +10 -0
  140. data/app/views/web_admin/images/create.js.erb +2 -0
  141. data/app/views/web_admin/images/update.js.erb +2 -0
  142. data/app/views/web_admin/institutionals/_form.html.erb +22 -0
  143. data/app/views/web_admin/institutionals/edit.html.erb +4 -0
  144. data/app/views/web_admin/institutionals/index.html.erb +35 -0
  145. data/app/views/web_admin/institutionals/new.html.erb +4 -0
  146. data/app/views/web_admin/layouts/application.html.erb +77 -0
  147. data/app/views/web_admin/main/index.html.erb +1 -0
  148. data/app/views/web_admin/posts/_form.html.erb +27 -0
  149. data/app/views/web_admin/posts/edit.html.erb +4 -0
  150. data/app/views/web_admin/posts/index.html.erb +37 -0
  151. data/app/views/web_admin/posts/new.html.erb +4 -0
  152. data/app/views/web_admin/users/_form.html.erb +49 -0
  153. data/app/views/web_admin/users/edit.html.erb +4 -0
  154. data/app/views/web_admin/users/index.html.erb +35 -0
  155. data/app/views/web_admin/users/new.html.erb +4 -0
  156. data/app/views/web_admin/videos/_form.html.erb +22 -0
  157. data/app/views/web_admin/videos/edit.html.erb +4 -0
  158. data/app/views/web_admin/videos/index.html.erb +37 -0
  159. data/app/views/web_admin/videos/new.html.erb +4 -0
  160. data/bin/rails +12 -0
  161. data/config/initializers/ckeditor.rb +39 -0
  162. data/config/initializers/devise.rb +261 -0
  163. data/config/initializers/enumerate_it.rb +1 -0
  164. data/config/initializers/simple_form.rb +145 -0
  165. data/config/initializers/simple_form_bootstrap.rb +46 -0
  166. data/config/locales/buttons.yml +3 -0
  167. data/config/locales/controllers.yml +9 -0
  168. data/config/locales/devise.en.yml +62 -0
  169. data/config/locales/devise.pt.yml +62 -0
  170. data/config/locales/models.yml +54 -0
  171. data/config/locales/rails.yml +219 -0
  172. data/config/locales/responders.yml +10 -0
  173. data/config/locales/simple_form.en.yml +26 -0
  174. data/config/routes.rb +13 -0
  175. data/db/migrate/20141023223026_devise_create_admin_web_users.rb +42 -0
  176. data/db/migrate/20141023223656_create_admin_web_posts.rb +15 -0
  177. data/db/migrate/20141026181117_create_ckeditor_assets.rb +26 -0
  178. data/db/migrate/20141028020102_create_admin_web_institutionals.rb +10 -0
  179. data/db/migrate/20141028135201_create_admin_web_videos.rb +10 -0
  180. data/db/migrate/20141114020551_create_admin_web_albums.rb +12 -0
  181. data/db/migrate/20141117183405_create_admin_web_images.rb +11 -0
  182. data/db/migrate/20141130203155_add_user_type_to_users.rb +5 -0
  183. data/db/migrate/20141224221959_create_admin_web_events.rb +18 -0
  184. data/db/migrate/20150130140502_create_admin_web_permissions.rb +13 -0
  185. data/db/migrate/20150510191213_rename_tables.rb +12 -0
  186. data/lib/application_responder.rb +12 -0
  187. data/lib/tasks/web_admin_tasks.rake +4 -0
  188. data/lib/templates/erb/scaffold/_form.html.erb +13 -0
  189. data/lib/web_admin/engine.rb +15 -0
  190. data/lib/web_admin/version.rb +3 -0
  191. data/lib/web_admin.rb +18 -0
  192. data/spec/factories/admin_web_users.rb +24 -0
  193. data/spec/features/admin_web/albums_spec.rb +74 -0
  194. data/spec/features/admin_web/event_spec.rb +85 -0
  195. data/spec/features/admin_web/institutionals_spec.rb +47 -0
  196. data/spec/features/admin_web/login_spec.rb +18 -0
  197. data/spec/features/admin_web/permissions_spec.rb +40 -0
  198. data/spec/features/admin_web/posts_spec.rb +55 -0
  199. data/spec/features/admin_web/users_spec.rb +73 -0
  200. data/spec/features/admin_web/videos_spec.rb +51 -0
  201. data/spec/fixtures/p3-single.jpg +0 -0
  202. data/spec/models/admin_web/album_spec.rb +20 -0
  203. data/spec/models/admin_web/event_spec.rb +42 -0
  204. data/spec/models/admin_web/image_spec.rb +14 -0
  205. data/spec/models/admin_web/institutional_spec.rb +19 -0
  206. data/spec/models/admin_web/permission_spec.rb +14 -0
  207. data/spec/models/admin_web/post_spec.rb +25 -0
  208. data/spec/models/admin_web/user_spec.rb +18 -0
  209. data/spec/models/admin_web/video_spec.rb +26 -0
  210. data/spec/rails_helper.rb +52 -0
  211. data/spec/spec_helper.rb +85 -0
  212. data/spec/support/capybara.rb +53 -0
  213. data/spec/support/database_cleaner.rb +25 -0
  214. data/spec/support/devise.rb +5 -0
  215. data/spec/support/factory_girl.rb +4 -0
  216. data/spec/support/helpers.rb +82 -0
  217. data/spec/support/shared_connection.rb +10 -0
  218. data/spec/test_app/README.rdoc +28 -0
  219. data/spec/test_app/Rakefile +6 -0
  220. data/spec/test_app/app/assets/images/.keep +0 -0
  221. data/spec/test_app/app/assets/javascripts/application.js +13 -0
  222. data/spec/test_app/app/assets/stylesheets/application.css +15 -0
  223. data/spec/test_app/app/controllers/application_controller.rb +5 -0
  224. data/spec/test_app/app/controllers/concerns/.keep +0 -0
  225. data/spec/test_app/app/helpers/application_helper.rb +2 -0
  226. data/spec/test_app/app/mailers/.keep +0 -0
  227. data/spec/test_app/app/models/.keep +0 -0
  228. data/spec/test_app/app/models/concerns/.keep +0 -0
  229. data/spec/test_app/app/views/layouts/application.html.erb +14 -0
  230. data/spec/test_app/bin/bundle +3 -0
  231. data/spec/test_app/bin/rails +4 -0
  232. data/spec/test_app/bin/rake +4 -0
  233. data/spec/test_app/config/application.rb +29 -0
  234. data/spec/test_app/config/boot.rb +5 -0
  235. data/spec/test_app/config/database.yml +85 -0
  236. data/spec/test_app/config/environment.rb +5 -0
  237. data/spec/test_app/config/environments/development.rb +37 -0
  238. data/spec/test_app/config/environments/production.rb +78 -0
  239. data/spec/test_app/config/environments/test.rb +39 -0
  240. data/spec/test_app/config/initializers/assets.rb +8 -0
  241. data/spec/test_app/config/initializers/backtrace_silencers.rb +7 -0
  242. data/spec/test_app/config/initializers/cookies_serializer.rb +3 -0
  243. data/spec/test_app/config/initializers/filter_parameter_logging.rb +4 -0
  244. data/spec/test_app/config/initializers/inflections.rb +16 -0
  245. data/spec/test_app/config/initializers/mime_types.rb +4 -0
  246. data/spec/test_app/config/initializers/session_store.rb +3 -0
  247. data/spec/test_app/config/initializers/wrap_parameters.rb +14 -0
  248. data/spec/test_app/config/locales/en.yml +23 -0
  249. data/spec/test_app/config/routes.rb +4 -0
  250. data/spec/test_app/config/secrets.yml +22 -0
  251. data/spec/test_app/config.ru +4 -0
  252. data/spec/test_app/db/schema.rb +121 -0
  253. data/spec/test_app/lib/assets/.keep +0 -0
  254. data/spec/test_app/log/.keep +0 -0
  255. data/spec/test_app/public/404.html +67 -0
  256. data/spec/test_app/public/422.html +67 -0
  257. data/spec/test_app/public/500.html +66 -0
  258. data/spec/test_app/public/favicon.ico +0 -0
  259. data/spec/test_app/spec/factories/admin_web_albums.rb +7 -0
  260. data/spec/test_app/spec/factories/admin_web_users.rb +24 -0
  261. data/spec/test_app/spec/factories/permissions.rb +36 -0
  262. data/web_admin.gemspec +38 -0
  263. data/wercker.yml +16 -0
  264. metadata +530 -0
@@ -0,0 +1,22 @@
1
+ /*
2
+ Copyright 2012 Igor Vaynberg
3
+
4
+ Version: 3.4.0 Timestamp: Tue May 14 08:27:33 PDT 2013
5
+
6
+ This software is licensed under the Apache License, Version 2.0 (the "Apache License") or the GNU
7
+ General Public License version 2 (the "GPL License"). You may choose either license to govern your
8
+ use of this software only upon the condition that you accept all of the terms of either the Apache
9
+ License or the GPL License.
10
+
11
+ You may obtain a copy of the Apache License and the GPL License at:
12
+
13
+ http://www.apache.org/licenses/LICENSE-2.0
14
+ http://www.gnu.org/licenses/gpl-2.0.html
15
+
16
+ Unless required by applicable law or agreed to in writing, software distributed under the Apache License
17
+ or the GPL Licesnse is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
18
+ either express or implied. See the Apache License and the GPL License for the specific language governing
19
+ permissions and limitations under the Apache License and the GPL License.
20
+ */
21
+ (function(a){a.fn.each2===void 0&&a.fn.extend({each2:function(b){for(var c=a([0]),d=-1,e=this.length;e>++d&&(c.context=c[0]=this[d])&&b.call(c[0],d,c)!==!1;);return this}})})(jQuery),function(a,b){"use strict";function m(a,b){for(var c=0,d=b.length;d>c;c+=1)if(o(a,b[c]))return c;return-1}function n(){var b=a(l);b.appendTo("body");var c={width:b.width()-b[0].clientWidth,height:b.height()-b[0].clientHeight};return b.remove(),c}function o(a,c){return a===c?!0:a===b||c===b?!1:null===a||null===c?!1:a.constructor===String?a+""==c+"":c.constructor===String?c+""==a+"":!1}function p(b,c){var d,e,f;if(null===b||1>b.length)return[];for(d=b.split(c),e=0,f=d.length;f>e;e+=1)d[e]=a.trim(d[e]);return d}function q(a){return a.outerWidth(!1)-a.width()}function r(c){var d="keyup-change-value";c.on("keydown",function(){a.data(c,d)===b&&a.data(c,d,c.val())}),c.on("keyup",function(){var e=a.data(c,d);e!==b&&c.val()!==e&&(a.removeData(c,d),c.trigger("keyup-change"))})}function s(c){c.on("mousemove",function(c){var d=i;(d===b||d.x!==c.pageX||d.y!==c.pageY)&&a(c.target).trigger("mousemove-filtered",c)})}function t(a,c,d){d=d||b;var e;return function(){var b=arguments;window.clearTimeout(e),e=window.setTimeout(function(){c.apply(d,b)},a)}}function u(a){var c,b=!1;return function(){return b===!1&&(c=a(),b=!0),c}}function v(a,b){var c=t(a,function(a){b.trigger("scroll-debounced",a)});b.on("scroll",function(a){m(a.target,b.get())>=0&&c(a)})}function w(a){a[0]!==document.activeElement&&window.setTimeout(function(){var d,b=a[0],c=a.val().length;a.focus(),a.is(":visible")&&b===document.activeElement&&(b.setSelectionRange?b.setSelectionRange(c,c):b.createTextRange&&(d=b.createTextRange(),d.collapse(!1),d.select()))},0)}function x(b){b=a(b)[0];var c=0,d=0;if("selectionStart"in b)c=b.selectionStart,d=b.selectionEnd-c;else if("selection"in document){b.focus();var e=document.selection.createRange();d=document.selection.createRange().text.length,e.moveStart("character",-b.value.length),c=e.text.length-d}return{offset:c,length:d}}function y(a){a.preventDefault(),a.stopPropagation()}function z(a){a.preventDefault(),a.stopImmediatePropagation()}function A(b){if(!h){var c=b[0].currentStyle||window.getComputedStyle(b[0],null);h=a(document.createElement("div")).css({position:"absolute",left:"-10000px",top:"-10000px",display:"none",fontSize:c.fontSize,fontFamily:c.fontFamily,fontStyle:c.fontStyle,fontWeight:c.fontWeight,letterSpacing:c.letterSpacing,textTransform:c.textTransform,whiteSpace:"nowrap"}),h.attr("class","select2-sizer"),a("body").append(h)}return h.text(b.val()),h.width()}function B(b,c,d){var e,g,f=[];e=b.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0===this.indexOf("select2-")&&f.push(this)})),e=c.attr("class"),e&&(e=""+e,a(e.split(" ")).each2(function(){0!==this.indexOf("select2-")&&(g=d(this),g&&f.push(this))})),b.attr("class",f.join(" "))}function C(a,c,d,e){var f=a.toUpperCase().indexOf(c.toUpperCase()),g=c.length;return 0>f?(d.push(e(a)),b):(d.push(e(a.substring(0,f))),d.push("<span class='select2-match'>"),d.push(e(a.substring(f,f+g))),d.push("</span>"),d.push(e(a.substring(f+g,a.length))),b)}function D(c){var d,e=0,f=null,g=c.quietMillis||100,h=c.url,i=this;return function(j){window.clearTimeout(d),d=window.setTimeout(function(){e+=1;var d=e,g=c.data,k=h,l=c.transport||a.fn.select2.ajaxDefaults.transport,m={type:c.type||"GET",cache:c.cache||!1,jsonpCallback:c.jsonpCallback||b,dataType:c.dataType||"json"},n=a.extend({},a.fn.select2.ajaxDefaults.params,m);g=g?g.call(i,j.term,j.page,j.context):null,k="function"==typeof k?k.call(i,j.term,j.page,j.context):k,null!==f&&f.abort(),c.params&&(a.isFunction(c.params)?a.extend(n,c.params.call(i)):a.extend(n,c.params)),a.extend(n,{url:k,dataType:c.dataType,data:g,success:function(a){if(!(e>d)){var b=c.results(a,j.page);j.callback(b)}}}),f=l.call(i,n)},g)}}function E(c){var e,f,d=c,g=function(a){return""+a.text};a.isArray(d)&&(f=d,d={results:f}),a.isFunction(d)===!1&&(f=d,d=function(){return f});var h=d();return h.text&&(g=h.text,a.isFunction(g)||(e=h.text,g=function(a){return a[e]})),function(c){var h,e=c.term,f={results:[]};return""===e?(c.callback(d()),b):(h=function(b,d){var f,i;if(b=b[0],b.children){f={};for(i in b)b.hasOwnProperty(i)&&(f[i]=b[i]);f.children=[],a(b.children).each2(function(a,b){h(b,f.children)}),(f.children.length||c.matcher(e,g(f),b))&&d.push(f)}else c.matcher(e,g(b),b)&&d.push(b)},a(d().results).each2(function(a,b){h(b,f.results)}),c.callback(f),b)}}function F(c){var d=a.isFunction(c);return function(e){var f=e.term,g={results:[]};a(d?c():c).each(function(){var a=this.text!==b,c=a?this.text:this;(""===f||e.matcher(f,c))&&g.results.push(a?this:{id:this,text:this})}),e.callback(g)}}function G(b){if(a.isFunction(b))return!0;if(!b)return!1;throw Error("formatterName must be a function or a falsy value")}function H(b){return a.isFunction(b)?b():b}function I(b){var c=0;return a.each(b,function(a,b){b.children?c+=I(b.children):c++}),c}function J(a,c,d,e){var h,i,j,k,l,f=a,g=!1;if(!e.createSearchChoice||!e.tokenSeparators||1>e.tokenSeparators.length)return b;for(;;){for(i=-1,j=0,k=e.tokenSeparators.length;k>j&&(l=e.tokenSeparators[j],i=a.indexOf(l),!(i>=0));j++);if(0>i)break;if(h=a.substring(0,i),a=a.substring(i+l.length),h.length>0&&(h=e.createSearchChoice(h,c),h!==b&&null!==h&&e.id(h)!==b&&null!==e.id(h))){for(g=!1,j=0,k=c.length;k>j;j++)if(o(e.id(h),e.id(c[j]))){g=!0;break}g||d(h)}}return f!==a?a:b}function K(b,c){var d=function(){};return d.prototype=new b,d.prototype.constructor=d,d.prototype.parent=b.prototype,d.prototype=a.extend(d.prototype,c),d}if(window.Select2===b){var c,d,e,f,g,h,i,j,k,c={TAB:9,ENTER:13,ESC:27,SPACE:32,LEFT:37,UP:38,RIGHT:39,DOWN:40,SHIFT:16,CTRL:17,ALT:18,PAGE_UP:33,PAGE_DOWN:34,HOME:36,END:35,BACKSPACE:8,DELETE:46,isArrow:function(a){switch(a=a.which?a.which:a){case c.LEFT:case c.RIGHT:case c.UP:case c.DOWN:return!0}return!1},isControl:function(a){var b=a.which;switch(b){case c.SHIFT:case c.CTRL:case c.ALT:return!0}return a.metaKey?!0:!1},isFunctionKey:function(a){return a=a.which?a.which:a,a>=112&&123>=a}},l="<div class='select2-measure-scrollbar'></div>";j=a(document),g=function(){var a=1;return function(){return a++}}(),j.on("mousemove",function(a){i={x:a.pageX,y:a.pageY}}),d=K(Object,{bind:function(a){var b=this;return function(){a.apply(b,arguments)}},init:function(c){var d,e,h,i,f=".select2-results";this.opts=c=this.prepareOpts(c),this.id=c.id,c.element.data("select2")!==b&&null!==c.element.data("select2")&&this.destroy(),this.container=this.createContainer(),this.containerId="s2id_"+(c.element.attr("id")||"autogen"+g()),this.containerSelector="#"+this.containerId.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g,"\\$1"),this.container.attr("id",this.containerId),this.body=u(function(){return c.element.closest("body")}),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.css(H(c.containerCss)),this.container.addClass(H(c.containerCssClass)),this.elementTabIndex=this.opts.element.attr("tabindex"),this.opts.element.data("select2",this).attr("tabindex","-1").before(this.container),this.container.data("select2",this),this.dropdown=this.container.find(".select2-drop"),this.dropdown.addClass(H(c.dropdownCssClass)),this.dropdown.data("select2",this),this.results=d=this.container.find(f),this.search=e=this.container.find("input.select2-input"),this.resultsPage=0,this.context=null,this.initContainer(),s(this.results),this.dropdown.on("mousemove-filtered touchstart touchmove touchend",f,this.bind(this.highlightUnderEvent)),v(80,this.results),this.dropdown.on("scroll-debounced",f,this.bind(this.loadMoreIfNeeded)),a(this.container).on("change",".select2-input",function(a){a.stopPropagation()}),a(this.dropdown).on("change",".select2-input",function(a){a.stopPropagation()}),a.fn.mousewheel&&d.mousewheel(function(a,b,c,e){var f=d.scrollTop();e>0&&0>=f-e?(d.scrollTop(0),y(a)):0>e&&d.get(0).scrollHeight-d.scrollTop()+e<=d.height()&&(d.scrollTop(d.get(0).scrollHeight-d.height()),y(a))}),r(e),e.on("keyup-change input paste",this.bind(this.updateResults)),e.on("focus",function(){e.addClass("select2-focused")}),e.on("blur",function(){e.removeClass("select2-focused")}),this.dropdown.on("mouseup",f,this.bind(function(b){a(b.target).closest(".select2-result-selectable").length>0&&(this.highlightUnderEvent(b),this.selectHighlighted(b))})),this.dropdown.on("click mouseup mousedown",function(a){a.stopPropagation()}),a.isFunction(this.opts.initSelection)&&(this.initSelection(),this.monitorSource()),null!==c.maximumInputLength&&this.search.attr("maxlength",c.maximumInputLength);var h=c.element.prop("disabled");h===b&&(h=!1),this.enable(!h);var i=c.element.prop("readonly");i===b&&(i=!1),this.readonly(i),k=k||n(),this.autofocus=c.element.prop("autofocus"),c.element.prop("autofocus",!1),this.autofocus&&this.focus()},destroy:function(){var a=this.opts.element.data("select2");this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),a!==b&&(a.container.remove(),a.dropdown.remove(),a.opts.element.removeClass("select2-offscreen").removeData("select2").off(".select2").attr({tabindex:this.elementTabIndex}).prop("autofocus",this.autofocus||!1).show())},optionToData:function(a){return a.is("option")?{id:a.prop("value"),text:a.text(),element:a.get(),css:a.attr("class"),disabled:a.prop("disabled"),locked:o(a.attr("locked"),"locked")}:a.is("optgroup")?{text:a.attr("label"),children:[],element:a.get(),css:a.attr("class")}:b},prepareOpts:function(c){var d,e,f,g,h=this;if(d=c.element,"select"===d.get(0).tagName.toLowerCase()&&(this.select=e=c.element),e&&a.each(["id","multiple","ajax","query","createSearchChoice","initSelection","data","tags"],function(){if(this in c)throw Error("Option '"+this+"' is not allowed for Select2 when attached to a <select> element.")}),c=a.extend({},{populateResults:function(d,e,f){var g,l=this.opts.id;g=function(d,e,i){var j,k,m,n,o,p,q,r,s,t;for(d=c.sortResults(d,e,f),j=0,k=d.length;k>j;j+=1)m=d[j],o=m.disabled===!0,n=!o&&l(m)!==b,p=m.children&&m.children.length>0,q=a("<li></li>"),q.addClass("select2-results-dept-"+i),q.addClass("select2-result"),q.addClass(n?"select2-result-selectable":"select2-result-unselectable"),o&&q.addClass("select2-disabled"),p&&q.addClass("select2-result-with-children"),q.addClass(h.opts.formatResultCssClass(m)),r=a(document.createElement("div")),r.addClass("select2-result-label"),t=c.formatResult(m,r,f,h.opts.escapeMarkup),t!==b&&r.html(t),q.append(r),p&&(s=a("<ul></ul>"),s.addClass("select2-result-sub"),g(m.children,s,i+1),q.append(s)),q.data("select2-data",m),e.append(q)},g(e,d,0)}},a.fn.select2.defaults,c),"function"!=typeof c.id&&(f=c.id,c.id=function(a){return a[f]}),a.isArray(c.element.data("select2Tags"))){if("tags"in c)throw"tags specified as both an attribute 'data-select2-tags' and in options of Select2 "+c.element.attr("id");c.tags=c.element.data("select2Tags")}if(e?(c.query=this.bind(function(c){var g,i,j,e={results:[],more:!1},f=c.term;j=function(a,b){var d;a.is("option")?c.matcher(f,a.text(),a)&&b.push(h.optionToData(a)):a.is("optgroup")&&(d=h.optionToData(a),a.children().each2(function(a,b){j(b,d.children)}),d.children.length>0&&b.push(d))},g=d.children(),this.getPlaceholder()!==b&&g.length>0&&(i=g[0],""===a(i).text()&&(g=g.not(i))),g.each2(function(a,b){j(b,e.results)}),c.callback(e)}),c.id=function(a){return a.id},c.formatResultCssClass=function(a){return a.css}):"query"in c||("ajax"in c?(g=c.element.data("ajax-url"),g&&g.length>0&&(c.ajax.url=g),c.query=D.call(c.element,c.ajax)):"data"in c?c.query=E(c.data):"tags"in c&&(c.query=F(c.tags),c.createSearchChoice===b&&(c.createSearchChoice=function(a){return{id:a,text:a}}),c.initSelection===b&&(c.initSelection=function(d,e){var f=[];a(p(d.val(),c.separator)).each(function(){var d=this,e=this,g=c.tags;a.isFunction(g)&&(g=g()),a(g).each(function(){return o(this.id,d)?(e=this.text,!1):b}),f.push({id:d,text:e})}),e(f)}))),"function"!=typeof c.query)throw"query function not defined for Select2 "+c.element.attr("id");return c},monitorSource:function(){var c,a=this.opts.element;a.on("change.select2",this.bind(function(){this.opts.element.data("select2-change-triggered")!==!0&&this.initSelection()})),c=this.bind(function(){var d,f=a.prop("disabled");f===b&&(f=!1),this.enable(!f);var d=a.prop("readonly");d===b&&(d=!1),this.readonly(d),B(this.container,this.opts.element,this.opts.adaptContainerCssClass),this.container.addClass(H(this.opts.containerCssClass)),B(this.dropdown,this.opts.element,this.opts.adaptDropdownCssClass),this.dropdown.addClass(H(this.opts.dropdownCssClass))}),a.on("propertychange.select2 DOMAttrModified.select2",c),this.mutationCallback===b&&(this.mutationCallback=function(a){a.forEach(c)}),"undefined"!=typeof WebKitMutationObserver&&(this.propertyObserver&&(delete this.propertyObserver,this.propertyObserver=null),this.propertyObserver=new WebKitMutationObserver(this.mutationCallback),this.propertyObserver.observe(a.get(0),{attributes:!0,subtree:!1}))},triggerSelect:function(b){var c=a.Event("select2-selecting",{val:this.id(b),object:b});return this.opts.element.trigger(c),!c.isDefaultPrevented()},triggerChange:function(b){b=b||{},b=a.extend({},b,{type:"change",val:this.val()}),this.opts.element.data("select2-change-triggered",!0),this.opts.element.trigger(b),this.opts.element.data("select2-change-triggered",!1),this.opts.element.click(),this.opts.blurOnChange&&this.opts.element.blur()},isInterfaceEnabled:function(){return this.enabledInterface===!0},enableInterface:function(){var a=this._enabled&&!this._readonly,b=!a;return a===this.enabledInterface?!1:(this.container.toggleClass("select2-container-disabled",b),this.close(),this.enabledInterface=a,!0)},enable:function(a){return a===b&&(a=!0),this._enabled===a?!1:(this._enabled=a,this.opts.element.prop("disabled",!a),this.enableInterface(),!0)},readonly:function(a){return a===b&&(a=!1),this._readonly===a?!1:(this._readonly=a,this.opts.element.prop("readonly",a),this.enableInterface(),!0)},opened:function(){return this.container.hasClass("select2-dropdown-open")},positionDropdown:function(){var q,r,s,t,b=this.dropdown,c=this.container.offset(),d=this.container.outerHeight(!1),e=this.container.outerWidth(!1),f=b.outerHeight(!1),g=a(window).scrollLeft()+a(window).width(),h=a(window).scrollTop()+a(window).height(),i=c.top+d,j=c.left,l=h>=i+f,m=c.top-f>=this.body().scrollTop(),n=b.outerWidth(!1),o=g>=j+n,p=b.hasClass("select2-drop-above");this.opts.dropdownAutoWidth?(t=a(".select2-results",b)[0],b.addClass("select2-drop-auto-width"),b.css("width",""),n=b.outerWidth(!1)+(t.scrollHeight===t.clientHeight?0:k.width),n>e?e=n:n=e,o=g>=j+n):this.container.removeClass("select2-drop-auto-width"),"static"!==this.body().css("position")&&(q=this.body().offset(),i-=q.top,j-=q.left),p?(r=!0,!m&&l&&(r=!1)):(r=!1,!l&&m&&(r=!0)),o||(j=c.left+e-n),r?(i=c.top-f,this.container.addClass("select2-drop-above"),b.addClass("select2-drop-above")):(this.container.removeClass("select2-drop-above"),b.removeClass("select2-drop-above")),s=a.extend({top:i,left:j,width:e},H(this.opts.dropdownCss)),b.css(s)},shouldOpen:function(){var b;return this.opened()?!1:this._enabled===!1||this._readonly===!0?!1:(b=a.Event("select2-opening"),this.opts.element.trigger(b),!b.isDefaultPrevented())},clearDropdownAlignmentPreference:function(){this.container.removeClass("select2-drop-above"),this.dropdown.removeClass("select2-drop-above")},open:function(){return this.shouldOpen()?(this.opening(),!0):!1},opening:function(){function h(){return{width:Math.max(document.documentElement.scrollWidth,a(window).width()),height:Math.max(document.documentElement.scrollHeight,a(window).height())}}var f,b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.addClass("select2-dropdown-open").addClass("select2-container-active"),this.clearDropdownAlignmentPreference(),this.dropdown[0]!==this.body().children().last()[0]&&this.dropdown.detach().appendTo(this.body()),f=a("#select2-drop-mask"),0==f.length&&(f=a(document.createElement("div")),f.attr("id","select2-drop-mask").attr("class","select2-drop-mask"),f.hide(),f.appendTo(this.body()),f.on("mousedown touchstart",function(b){var d,c=a("#select2-drop");c.length>0&&(d=c.data("select2"),d.opts.selectOnBlur&&d.selectHighlighted({noFocus:!0}),d.close(),b.preventDefault(),b.stopPropagation())})),this.dropdown.prev()[0]!==f[0]&&this.dropdown.before(f),a("#select2-drop").removeAttr("id"),this.dropdown.attr("id","select2-drop"),f.css(h()),f.show(),this.dropdown.show(),this.positionDropdown(),this.dropdown.addClass("select2-drop-active"),this.ensureHighlightVisible();var g=this;this.container.parents().add(window).each(function(){a(this).on(d+" "+c+" "+e,function(){a("#select2-drop-mask").css(h()),g.positionDropdown()})})},close:function(){if(this.opened()){var b=this.containerId,c="scroll."+b,d="resize."+b,e="orientationchange."+b;this.container.parents().add(window).each(function(){a(this).off(c).off(d).off(e)}),this.clearDropdownAlignmentPreference(),a("#select2-drop-mask").hide(),this.dropdown.removeAttr("id"),this.dropdown.hide(),this.container.removeClass("select2-dropdown-open"),this.results.empty(),this.clearSearch(),this.search.removeClass("select2-active"),this.opts.element.trigger(a.Event("select2-close"))}},clearSearch:function(){},getMaximumSelectionSize:function(){return H(this.opts.maximumSelectionSize)},ensureHighlightVisible:function(){var d,e,f,g,h,i,j,c=this.results;if(e=this.highlight(),!(0>e)){if(0==e)return c.scrollTop(0),b;d=this.findHighlightableChoices().find(".select2-result-label"),f=a(d[e]),g=f.offset().top+f.outerHeight(!0),e===d.length-1&&(j=c.find("li.select2-more-results"),j.length>0&&(g=j.offset().top+j.outerHeight(!0))),h=c.offset().top+c.outerHeight(!0),g>h&&c.scrollTop(c.scrollTop()+(g-h)),i=f.offset().top-c.offset().top,0>i&&"none"!=f.css("display")&&c.scrollTop(c.scrollTop()+i)}},findHighlightableChoices:function(){return this.results.find(".select2-result-selectable:not(.select2-selected):not(.select2-disabled)")},moveHighlight:function(b){for(var c=this.findHighlightableChoices(),d=this.highlight();d>-1&&c.length>d;){d+=b;var e=a(c[d]);if(e.hasClass("select2-result-selectable")&&!e.hasClass("select2-disabled")&&!e.hasClass("select2-selected")){this.highlight(d);break}}},highlight:function(c){var e,f,d=this.findHighlightableChoices();return 0===arguments.length?m(d.filter(".select2-highlighted")[0],d.get()):(c>=d.length&&(c=d.length-1),0>c&&(c=0),this.results.find(".select2-highlighted").removeClass("select2-highlighted"),e=a(d[c]),e.addClass("select2-highlighted"),this.ensureHighlightVisible(),f=e.data("select2-data"),f&&this.opts.element.trigger({type:"select2-highlight",val:this.id(f),choice:f}),b)},countSelectableResults:function(){return this.findHighlightableChoices().length},highlightUnderEvent:function(b){var c=a(b.target).closest(".select2-result-selectable");if(c.length>0&&!c.is(".select2-highlighted")){var d=this.findHighlightableChoices();this.highlight(d.index(c))}else 0==c.length&&this.results.find(".select2-highlighted").removeClass("select2-highlighted")},loadMoreIfNeeded:function(){var c,a=this.results,b=a.find("li.select2-more-results"),e=this.resultsPage+1,f=this,g=this.search.val(),h=this.context;0!==b.length&&(c=b.offset().top-a.offset().top-a.height(),this.opts.loadMorePadding>=c&&(b.addClass("select2-active"),this.opts.query({element:this.opts.element,term:g,page:e,context:h,matcher:this.opts.matcher,callback:this.bind(function(c){f.opened()&&(f.opts.populateResults.call(this,a,c.results,{term:g,page:e,context:h}),f.postprocessResults(c,!1,!1),c.more===!0?(b.detach().appendTo(a).text(f.opts.formatLoadMore(e+1)),window.setTimeout(function(){f.loadMoreIfNeeded()},10)):b.remove(),f.positionDropdown(),f.resultsPage=e,f.context=c.context)})})))},tokenize:function(){},updateResults:function(c){function l(){e.scrollTop(0),d.removeClass("select2-active"),h.positionDropdown()}function m(a){e.html(a),l()}var g,i,d=this.search,e=this.results,f=this.opts,h=this,j=d.val(),k=a.data(this.container,"select2-last-term");if((c===!0||!k||!o(j,k))&&(a.data(this.container,"select2-last-term",j),c===!0||this.showSearchInput!==!1&&this.opened())){var n=this.getMaximumSelectionSize();if(n>=1&&(g=this.data(),a.isArray(g)&&g.length>=n&&G(f.formatSelectionTooBig,"formatSelectionTooBig")))return m("<li class='select2-selection-limit'>"+f.formatSelectionTooBig(n)+"</li>"),b;if(d.val().length<f.minimumInputLength)return G(f.formatInputTooShort,"formatInputTooShort")?m("<li class='select2-no-results'>"+f.formatInputTooShort(d.val(),f.minimumInputLength)+"</li>"):m(""),c&&this.showSearch(!0),b;if(f.maximumInputLength&&d.val().length>f.maximumInputLength)return G(f.formatInputTooLong,"formatInputTooLong")?m("<li class='select2-no-results'>"+f.formatInputTooLong(d.val(),f.maximumInputLength)+"</li>"):m(""),b;f.formatSearching&&0===this.findHighlightableChoices().length&&m("<li class='select2-searching'>"+f.formatSearching()+"</li>"),d.addClass("select2-active"),i=this.tokenize(),i!=b&&null!=i&&d.val(i),this.resultsPage=1,f.query({element:f.element,term:d.val(),page:this.resultsPage,context:null,matcher:f.matcher,callback:this.bind(function(g){var i;return this.opened()?(this.context=g.context===b?null:g.context,this.opts.createSearchChoice&&""!==d.val()&&(i=this.opts.createSearchChoice.call(null,d.val(),g.results),i!==b&&null!==i&&h.id(i)!==b&&null!==h.id(i)&&0===a(g.results).filter(function(){return o(h.id(this),h.id(i))}).length&&g.results.unshift(i)),0===g.results.length&&G(f.formatNoMatches,"formatNoMatches")?(m("<li class='select2-no-results'>"+f.formatNoMatches(d.val())+"</li>"),b):(e.empty(),h.opts.populateResults.call(this,e,g.results,{term:d.val(),page:this.resultsPage,context:null}),g.more===!0&&G(f.formatLoadMore,"formatLoadMore")&&(e.append("<li class='select2-more-results'>"+h.opts.escapeMarkup(f.formatLoadMore(this.resultsPage))+"</li>"),window.setTimeout(function(){h.loadMoreIfNeeded()},10)),this.postprocessResults(g,c),l(),this.opts.element.trigger({type:"select2-loaded",data:g}),b)):(this.search.removeClass("select2-active"),b)})})}},cancel:function(){this.close()},blur:function(){this.opts.selectOnBlur&&this.selectHighlighted({noFocus:!0}),this.close(),this.container.removeClass("select2-container-active"),this.search[0]===document.activeElement&&this.search.blur(),this.clearSearch(),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus")},focusSearch:function(){w(this.search)},selectHighlighted:function(a){var b=this.highlight(),c=this.results.find(".select2-highlighted"),d=c.closest(".select2-result").data("select2-data");d&&(this.highlight(b),this.onSelect(d,a))},getPlaceholder:function(){return this.opts.element.attr("placeholder")||this.opts.element.attr("data-placeholder")||this.opts.element.data("placeholder")||this.opts.placeholder},initContainerWidth:function(){function c(){var c,d,e,f,g;if("off"===this.opts.width)return null;if("element"===this.opts.width)return 0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px";if("copy"===this.opts.width||"resolve"===this.opts.width){if(c=this.opts.element.attr("style"),c!==b)for(d=c.split(";"),f=0,g=d.length;g>f;f+=1)if(e=d[f].replace(/\s/g,"").match(/width:(([-+]?([0-9]*\.)?[0-9]+)(px|em|ex|%|in|cm|mm|pt|pc))/i),null!==e&&e.length>=1)return e[1];return c=this.opts.element.css("width"),c&&c.length>0?c:"resolve"===this.opts.width?0===this.opts.element.outerWidth(!1)?"auto":this.opts.element.outerWidth(!1)+"px":null}return a.isFunction(this.opts.width)?this.opts.width():this.opts.width}var d=c.call(this);null!==d&&this.container.css("width",d)}}),e=K(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container"}).html(["<a href='javascript:void(0)' onclick='return false;' class='select2-choice' tabindex='-1'>"," <span>&nbsp;</span><abbr class='select2-search-choice-close'></abbr>"," <div><b></b></div>","</a>","<input class='select2-focusser select2-offscreen' type='text'/>","<div class='select2-drop select2-display-none'>"," <div class='select2-search'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'/>"," </div>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));return b},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.focusser.prop("disabled",!this.isInterfaceEnabled())},opening:function(){var b,c;this.parent.opening.apply(this,arguments),this.showSearchInput!==!1&&this.search.val(this.focusser.val()),this.search.focus(),b=this.search.get(0),b.createTextRange&&(c=b.createTextRange(),c.collapse(!1),c.select()),this.focusser.prop("disabled",!0).val(""),this.updateResults(!0),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&(this.parent.close.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus())},focus:function(){this.opened()?this.close():(this.focusser.removeAttr("disabled"),this.focusser.focus())},isFocused:function(){return this.container.hasClass("select2-container-active")},cancel:function(){this.parent.cancel.apply(this,arguments),this.focusser.removeAttr("disabled"),this.focusser.focus()},initContainer:function(){var d,e=this.container,f=this.dropdown;this.showSearch(!1),this.selection=d=e.find(".select2-choice"),this.focusser=e.find(".select2-focusser"),this.focusser.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.focusser.attr("id")),this.focusser.attr("tabindex",this.elementTabIndex),this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){if(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)return y(a),b;switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),b;case c.ESC:return this.cancel(a),y(a),b}}})),this.search.on("blur",this.bind(function(){document.activeElement===this.body().get(0)&&window.setTimeout(this.bind(function(){this.search.focus()}),0)})),this.focusser.on("keydown",this.bind(function(a){return!this.isInterfaceEnabled()||a.which===c.TAB||c.isControl(a)||c.isFunctionKey(a)||a.which===c.ESC?b:this.opts.openOnEnter===!1&&a.which===c.ENTER?(y(a),b):a.which==c.DOWN||a.which==c.UP||a.which==c.ENTER&&this.opts.openOnEnter?(this.open(),y(a),b):a.which==c.DELETE||a.which==c.BACKSPACE?(this.opts.allowClear&&this.clear(),y(a),b):b})),r(this.focusser),this.focusser.on("keyup-change input",this.bind(function(a){a.stopPropagation(),this.opened()||this.open()})),d.on("mousedown","abbr",this.bind(function(a){this.isInterfaceEnabled()&&(this.clear(),z(a),this.close(),this.selection.focus())})),d.on("mousedown",this.bind(function(b){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.opened()?this.close():this.isInterfaceEnabled()&&this.open(),y(b)})),f.on("mousedown",this.bind(function(){this.search.focus()})),d.on("focus",this.bind(function(a){y(a)})),this.focusser.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})).on("blur",this.bind(function(){this.opened()||(this.container.removeClass("select2-container-active"),this.opts.element.trigger(a.Event("select2-blur")))})),this.search.on("focus",this.bind(function(){this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active")})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.setPlaceholder()},clear:function(a){var b=this.selection.data("select2-data");b&&(this.opts.element.val(""),this.selection.find("span").empty(),this.selection.removeData("select2-data"),this.setPlaceholder(),a!==!1&&(this.opts.element.trigger({type:"select2-removed",val:this.id(b),choice:b}),this.triggerChange({removed:b})))},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text())this.updateSelection([]),this.close(),this.setPlaceholder();else{var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.setPlaceholder())})}},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=a.find(":selected");b(c.optionToData(d))}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=c.val(),f=null;b.query({matcher:function(a,c,d){var g=o(e,b.id(d));return g&&(f=d),g},callback:a.isFunction(d)?function(){d(f)}:a.noop})}),b},getPlaceholder:function(){return this.select&&""!==this.select.find("option").first().text()?b:this.parent.getPlaceholder.apply(this,arguments)},setPlaceholder:function(){var a=this.getPlaceholder();if(""===this.opts.element.val()&&a!==b){if(this.select&&""!==this.select.find("option:first").text())return;this.selection.find("span").html(this.opts.escapeMarkup(a)),this.selection.addClass("select2-default"),this.container.removeClass("select2-allowclear")}},postprocessResults:function(a,c,d){var e=0,f=this;if(this.findHighlightableChoices().each2(function(a,c){return o(f.id(c.data("select2-data")),f.opts.element.val())?(e=a,!1):b}),d!==!1&&this.highlight(e),c===!0&&this.showSearchInput===!1){var h=this.opts.minimumResultsForSearch;h>=0&&this.showSearch(I(a.results)>=h)}},showSearch:function(b){this.showSearchInput=b,this.dropdown.find(".select2-search").toggleClass("select2-search-hidden",!b),this.dropdown.find(".select2-search").toggleClass("select2-offscreen",!b),a(this.dropdown,this.container).toggleClass("select2-with-searchbox",b)},onSelect:function(a,b){if(this.triggerSelect(a)){var c=this.opts.element.val(),d=this.data();this.opts.element.val(this.id(a)),this.updateSelection(a),this.opts.element.trigger({type:"select2-selected",val:this.id(a),choice:a}),this.close(),b&&b.noFocus||this.selection.focus(),o(c,this.id(a))||this.triggerChange({added:a,removed:d})}},updateSelection:function(a){var d,c=this.selection.find("span");this.selection.data("select2-data",a),c.empty(),d=this.opts.formatSelection(a,c),d!==b&&c.append(this.opts.escapeMarkup(d)),this.selection.removeClass("select2-default"),this.opts.allowClear&&this.getPlaceholder()!==b&&this.container.addClass("select2-allowclear")},val:function(){var a,c=!1,d=null,e=this,f=this.data();if(0===arguments.length)return this.opts.element.val();if(a=arguments[0],arguments.length>1&&(c=arguments[1]),this.select)this.select.val(a).find(":selected").each2(function(a,b){return d=e.optionToData(b),!1}),this.updateSelection(d),this.setPlaceholder(),c&&this.triggerChange({added:d,removed:f});else{if(this.opts.initSelection===b)throw Error("cannot call val() if initSelection() is not defined");if(!a&&0!==a)return this.clear(c),b;this.opts.element.val(a),this.opts.initSelection(this.opts.element,function(a){e.opts.element.val(a?e.id(a):""),e.updateSelection(a),e.setPlaceholder(),c&&e.triggerChange({added:a,removed:f})})}},clearSearch:function(){this.search.val(""),this.focusser.val("")},data:function(a,c){var d;return 0===arguments.length?(d=this.selection.data("select2-data"),d==b&&(d=null),d):(a&&""!==a?(d=this.data(),this.opts.element.val(a?this.id(a):""),this.updateSelection(a),c&&this.triggerChange({added:a,removed:d})):this.clear(c),b)}}),f=K(d,{createContainer:function(){var b=a(document.createElement("div")).attr({"class":"select2-container select2-container-multi"}).html([" <ul class='select2-choices'>"," <li class='select2-search-field'>"," <input type='text' autocomplete='off' autocorrect='off' autocapitilize='off' spellcheck='false' class='select2-input'>"," </li>","</ul>","<div class='select2-drop select2-drop-multi select2-display-none'>"," <ul class='select2-results'>"," </ul>","</div>"].join(""));
22
+ return b},prepareOpts:function(){var b=this.parent.prepareOpts.apply(this,arguments),c=this;return"select"===b.element.get(0).tagName.toLowerCase()?b.initSelection=function(a,b){var d=[];a.find(":selected").each2(function(a,b){d.push(c.optionToData(b))}),b(d)}:"data"in b&&(b.initSelection=b.initSelection||function(c,d){var e=p(c.val(),b.separator),f=[];b.query({matcher:function(c,d,g){var h=a.grep(e,function(a){return o(a,b.id(g))}).length;return h&&f.push(g),h},callback:a.isFunction(d)?function(){for(var a=[],c=0;e.length>c;c++)for(var g=e[c],h=0;f.length>h;h++){var i=f[h];if(o(g,b.id(i))){a.push(i),f.splice(h,1);break}}d(a)}:a.noop})}),b},selectChoice:function(a){var b=this.container.find(".select2-search-choice-focus");b.length&&a&&a[0]==b[0]||(b.length&&this.opts.element.trigger("choice-deselected",b),b.removeClass("select2-search-choice-focus"),a&&a.length&&(this.close(),a.addClass("select2-search-choice-focus"),this.opts.element.trigger("choice-selected",a)))},initContainer:function(){var e,d=".select2-choices";this.searchContainer=this.container.find(".select2-search-field"),this.selection=e=this.container.find(d);var f=this;this.selection.on("mousedown",".select2-search-choice",function(){f.search[0].focus(),f.selectChoice(a(this))}),this.search.attr("id","s2id_autogen"+g()),a("label[for='"+this.opts.element.attr("id")+"']").attr("for",this.search.attr("id")),this.search.on("input paste",this.bind(function(){this.isInterfaceEnabled()&&(this.opened()||this.open())})),this.search.attr("tabindex",this.elementTabIndex),this.keydowns=0,this.search.on("keydown",this.bind(function(a){if(this.isInterfaceEnabled()){++this.keydowns;var d=e.find(".select2-search-choice-focus"),f=d.prev(".select2-search-choice:not(.select2-locked)"),g=d.next(".select2-search-choice:not(.select2-locked)"),h=x(this.search);if(d.length&&(a.which==c.LEFT||a.which==c.RIGHT||a.which==c.BACKSPACE||a.which==c.DELETE||a.which==c.ENTER)){var i=d;return a.which==c.LEFT&&f.length?i=f:a.which==c.RIGHT?i=g.length?g:null:a.which===c.BACKSPACE?(this.unselect(d.first()),this.search.width(10),i=f.length?f:g):a.which==c.DELETE?(this.unselect(d.first()),this.search.width(10),i=g.length?g:null):a.which==c.ENTER&&(i=null),this.selectChoice(i),y(a),i&&i.length||this.open(),b}if((a.which===c.BACKSPACE&&1==this.keydowns||a.which==c.LEFT)&&0==h.offset&&!h.length)return this.selectChoice(e.find(".select2-search-choice:not(.select2-locked)").last()),y(a),b;if(this.selectChoice(null),this.opened())switch(a.which){case c.UP:case c.DOWN:return this.moveHighlight(a.which===c.UP?-1:1),y(a),b;case c.ENTER:return this.selectHighlighted(),y(a),b;case c.TAB:return this.selectHighlighted({noFocus:!0}),b;case c.ESC:return this.cancel(a),y(a),b}if(a.which!==c.TAB&&!c.isControl(a)&&!c.isFunctionKey(a)&&a.which!==c.BACKSPACE&&a.which!==c.ESC){if(a.which===c.ENTER){if(this.opts.openOnEnter===!1)return;if(a.altKey||a.ctrlKey||a.shiftKey||a.metaKey)return}this.open(),(a.which===c.PAGE_UP||a.which===c.PAGE_DOWN)&&y(a),a.which===c.ENTER&&y(a)}}})),this.search.on("keyup",this.bind(function(){this.keydowns=0,this.resizeSearch()})),this.search.on("blur",this.bind(function(b){this.container.removeClass("select2-container-active"),this.search.removeClass("select2-focused"),this.selectChoice(null),this.opened()||this.clearSearch(),b.stopImmediatePropagation(),this.opts.element.trigger(a.Event("select2-blur"))})),this.container.on("mousedown",d,this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").length>0||(this.selectChoice(null),this.clearPlaceholder(),this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.open(),this.focusSearch(),b.preventDefault()))})),this.container.on("focus",d,this.bind(function(){this.isInterfaceEnabled()&&(this.container.hasClass("select2-container-active")||this.opts.element.trigger(a.Event("select2-focus")),this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"),this.clearPlaceholder())})),this.initContainerWidth(),this.opts.element.addClass("select2-offscreen"),this.clearSearch()},enableInterface:function(){this.parent.enableInterface.apply(this,arguments)&&this.search.prop("disabled",!this.isInterfaceEnabled())},initSelection:function(){if(""===this.opts.element.val()&&""===this.opts.element.text()&&(this.updateSelection([]),this.close(),this.clearSearch()),this.select||""!==this.opts.element.val()){var c=this;this.opts.initSelection.call(null,this.opts.element,function(a){a!==b&&null!==a&&(c.updateSelection(a),c.close(),c.clearSearch())})}},clearSearch:function(){var a=this.getPlaceholder(),c=this.getMaxSearchWidth();a!==b&&0===this.getVal().length&&this.search.hasClass("select2-focused")===!1?(this.search.val(a).addClass("select2-default"),this.search.width(c>0?c:this.container.css("width"))):this.search.val("").width(10)},clearPlaceholder:function(){this.search.hasClass("select2-default")&&this.search.val("").removeClass("select2-default")},opening:function(){this.clearPlaceholder(),this.resizeSearch(),this.parent.opening.apply(this,arguments),this.focusSearch(),this.updateResults(!0),this.search.focus(),this.opts.element.trigger(a.Event("select2-open"))},close:function(){this.opened()&&this.parent.close.apply(this,arguments)},focus:function(){this.close(),this.search.focus()},isFocused:function(){return this.search.hasClass("select2-focused")},updateSelection:function(b){var c=[],d=[],e=this;a(b).each(function(){0>m(e.id(this),c)&&(c.push(e.id(this)),d.push(this))}),b=d,this.selection.find(".select2-search-choice").remove(),a(b).each(function(){e.addSelectedChoice(this)}),e.postprocessResults()},tokenize:function(){var a=this.search.val();a=this.opts.tokenizer(a,this.data(),this.bind(this.onSelect),this.opts),null!=a&&a!=b&&(this.search.val(a),a.length>0&&this.open())},onSelect:function(a,b){this.triggerSelect(a)&&(this.addSelectedChoice(a),this.opts.element.trigger({type:"selected",val:this.id(a),choice:a}),(this.select||!this.opts.closeOnSelect)&&this.postprocessResults(),this.opts.closeOnSelect?(this.close(),this.search.width(10)):this.countSelectableResults()>0?(this.search.width(10),this.resizeSearch(),this.getMaximumSelectionSize()>0&&this.val().length>=this.getMaximumSelectionSize()&&this.updateResults(!0),this.positionDropdown()):(this.close(),this.search.width(10)),this.triggerChange({added:a}),b&&b.noFocus||this.focusSearch())},cancel:function(){this.close(),this.focusSearch()},addSelectedChoice:function(c){var j,d=!c.locked,e=a("<li class='select2-search-choice'> <div></div> <a href='#' onclick='return false;' class='select2-search-choice-close' tabindex='-1'></a></li>"),f=a("<li class='select2-search-choice select2-locked'><div></div></li>"),g=d?e:f,h=this.id(c),i=this.getVal();j=this.opts.formatSelection(c,g.find("div")),j!=b&&g.find("div").replaceWith("<div title='"+this.opts.escapeMarkup(j)+"'>"+this.opts.escapeMarkup(j)+"</div>"),d&&g.find(".select2-search-choice-close").on("mousedown",y).on("click dblclick",this.bind(function(b){this.isInterfaceEnabled()&&(a(b.target).closest(".select2-search-choice").fadeOut("fast",this.bind(function(){this.unselect(a(b.target)),this.selection.find(".select2-search-choice-focus").removeClass("select2-search-choice-focus"),this.close(),this.focusSearch()})).dequeue(),y(b))})).on("focus",this.bind(function(){this.isInterfaceEnabled()&&(this.container.addClass("select2-container-active"),this.dropdown.addClass("select2-drop-active"))})),g.data("select2-data",c),g.insertBefore(this.searchContainer),i.push(h),this.setVal(i)},unselect:function(a){var c,d,b=this.getVal();if(a=a.closest(".select2-search-choice"),0===a.length)throw"Invalid argument: "+a+". Must be .select2-search-choice";c=a.data("select2-data"),c&&(d=m(this.id(c),b),d>=0&&(b.splice(d,1),this.setVal(b),this.select&&this.postprocessResults()),a.remove(),this.opts.element.trigger({type:"removed",val:this.id(c),choice:c}),this.triggerChange({removed:c}))},postprocessResults:function(a,b,c){var d=this.getVal(),e=this.results.find(".select2-result"),f=this.results.find(".select2-result-with-children"),g=this;e.each2(function(a,b){var c=g.id(b.data("select2-data"));m(c,d)>=0&&(b.addClass("select2-selected"),b.find(".select2-result-selectable").addClass("select2-selected"))}),f.each2(function(a,b){b.is(".select2-result-selectable")||0!==b.find(".select2-result-selectable:not(.select2-selected)").length||b.addClass("select2-selected")}),-1==this.highlight()&&c!==!1&&g.highlight(0),!this.opts.createSearchChoice&&!e.filter(".select2-result:not(.select2-selected)").length>0&&this.results.append("<li class='select2-no-results'>"+g.opts.formatNoMatches(g.search.val())+"</li>")},getMaxSearchWidth:function(){return this.selection.width()-q(this.search)},resizeSearch:function(){var a,b,c,d,e,f=q(this.search);a=A(this.search)+10,b=this.search.offset().left,c=this.selection.width(),d=this.selection.offset().left,e=c-(b-d)-f,a>e&&(e=c-f),40>e&&(e=c-f),0>=e&&(e=a),this.search.width(e)},getVal:function(){var a;return this.select?(a=this.select.val(),null===a?[]:a):(a=this.opts.element.val(),p(a,this.opts.separator))},setVal:function(b){var c;this.select?this.select.val(b):(c=[],a(b).each(function(){0>m(this,c)&&c.push(this)}),this.opts.element.val(0===c.length?"":c.join(this.opts.separator)))},buildChangeDetails:function(a,b){for(var b=b.slice(0),a=a.slice(0),c=0;b.length>c;c++)for(var d=0;a.length>d;d++)o(this.opts.id(b[c]),this.opts.id(a[d]))&&(b.splice(c,1),c--,a.splice(d,1),d--);return{added:b,removed:a}},val:function(c,d){var e,f=this;if(0===arguments.length)return this.getVal();if(e=this.data(),e.length||(e=[]),!c&&0!==c)return this.opts.element.val(""),this.updateSelection([]),this.clearSearch(),d&&this.triggerChange({added:this.data(),removed:e}),b;if(this.setVal(c),this.select)this.opts.initSelection(this.select,this.bind(this.updateSelection)),d&&this.triggerChange(this.buildChangeDetails(e,this.data()));else{if(this.opts.initSelection===b)throw Error("val() cannot be called if initSelection() is not defined");this.opts.initSelection(this.opts.element,function(b){var c=a(b).map(f.id);f.setVal(c),f.updateSelection(b),f.clearSearch(),d&&f.triggerChange(this.buildChangeDetails(e,this.data()))})}this.clearSearch()},onSortStart:function(){if(this.select)throw Error("Sorting of elements is not supported when attached to <select>. Attach to <input type='hidden'/> instead.");this.search.width(0),this.searchContainer.hide()},onSortEnd:function(){var b=[],c=this;this.searchContainer.show(),this.searchContainer.appendTo(this.searchContainer.parent()),this.resizeSearch(),this.selection.find(".select2-search-choice").each(function(){b.push(c.opts.id(a(this).data("select2-data")))}),this.setVal(b),this.triggerChange()},data:function(c,d){var f,g,e=this;return 0===arguments.length?this.selection.find(".select2-search-choice").map(function(){return a(this).data("select2-data")}).get():(g=this.data(),c||(c=[]),f=a.map(c,function(a){return e.opts.id(a)}),this.setVal(f),this.updateSelection(c),this.clearSearch(),d&&this.triggerChange(this.buildChangeDetails(g,this.data())),b)}}),a.fn.select2=function(){var d,g,h,i,c=Array.prototype.slice.call(arguments,0),j=["val","destroy","opened","open","close","focus","isFocused","container","onSortStart","onSortEnd","enable","readonly","positionDropdown","data"],k=["val","opened","isFocused","container","data"];return this.each(function(){if(0===c.length||"object"==typeof c[0])d=0===c.length?{}:a.extend({},c[0]),d.element=a(this),"select"===d.element.get(0).tagName.toLowerCase()?i=d.element.prop("multiple"):(i=d.multiple||!1,"tags"in d&&(d.multiple=i=!0)),g=i?new f:new e,g.init(d);else{if("string"!=typeof c[0])throw"Invalid arguments to select2 plugin: "+c;if(0>m(c[0],j))throw"Unknown method: "+c[0];if(h=b,g=a(this).data("select2"),g===b)return;if(h="container"===c[0]?g.container:g[c[0]].apply(g,c.slice(1)),m(c[0],k)>=0)return!1}}),h===b?this:h},a.fn.select2.defaults={width:"copy",loadMorePadding:0,closeOnSelect:!0,openOnEnter:!0,containerCss:{},dropdownCss:{},containerCssClass:"",dropdownCssClass:"",formatResult:function(a,b,c,d){var e=[];return C(a.text,c.term,e,d),e.join("")},formatSelection:function(a){return a?a.text:b},sortResults:function(a){return a},formatResultCssClass:function(){return b},formatNoMatches:function(){return"No matches found"},formatInputTooShort:function(a,b){var c=b-a.length;return"Please enter "+c+" more character"+(1==c?"":"s")},formatInputTooLong:function(a,b){var c=a.length-b;return"Please delete "+c+" character"+(1==c?"":"s")},formatSelectionTooBig:function(a){return"You can only select "+a+" item"+(1==a?"":"s")},formatLoadMore:function(){return"Loading more results..."},formatSearching:function(){return"Searching..."},minimumResultsForSearch:0,minimumInputLength:0,maximumInputLength:null,maximumSelectionSize:0,id:function(a){return a.id},matcher:function(a,b){return(""+b).toUpperCase().indexOf((""+a).toUpperCase())>=0},separator:",",tokenSeparators:[],tokenizer:J,escapeMarkup:function(a){var b={"\\":"&#92;","&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#47;"};return(a+"").replace(/[&<>"'\/\\]/g,function(a){return b[a]})},blurOnChange:!1,selectOnBlur:!1,adaptContainerCssClass:function(a){return a},adaptDropdownCssClass:function(){return null}},a.fn.select2.ajaxDefaults={transport:a.ajax,params:{type:"GET",cache:!1,dataType:"json"}},window.Select2={query:{ajax:D,local:E,tags:F},util:{debounce:t,markMatch:C},"class":{"abstract":d,single:e,multi:f}}}}(jQuery);
@@ -0,0 +1,388 @@
1
+ /* =========================================================
2
+ * bootstrap-slider.js v2.0.0
3
+ * http://www.eyecon.ro/bootstrap-slider
4
+ * =========================================================
5
+ * Copyright 2012 Stefan Petre
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the "License");
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ * ========================================================= */
19
+
20
+ !function( $ ) {
21
+
22
+ var Slider = function(element, options) {
23
+ this.element = $(element);
24
+ this.picker = $('<div class="slider">'+
25
+ '<div class="slider-track">'+
26
+ '<div class="slider-selection"></div>'+
27
+ '<div class="slider-handle"></div>'+
28
+ '<div class="slider-handle"></div>'+
29
+ '</div>'+
30
+ '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>'+
31
+ '</div>')
32
+ .insertBefore(this.element)
33
+ .append(this.element);
34
+ this.id = this.element.data('slider-id')||options.id;
35
+ if (this.id) {
36
+ this.picker[0].id = this.id;
37
+ }
38
+
39
+ if (typeof Modernizr !== 'undefined' && Modernizr.touch) {
40
+ this.touchCapable = true;
41
+ }
42
+
43
+ var tooltip = this.element.data('slider-tooltip')||options.tooltip;
44
+
45
+ this.tooltip = this.picker.find('.tooltip');
46
+ this.tooltipInner = this.tooltip.find('div.tooltip-inner');
47
+
48
+ this.orientation = this.element.data('slider-orientation')||options.orientation;
49
+ switch(this.orientation) {
50
+ case 'vertical':
51
+ this.picker.addClass('slider-vertical');
52
+ this.stylePos = 'top';
53
+ this.mousePos = 'pageY';
54
+ this.sizePos = 'offsetHeight';
55
+ this.tooltip.addClass('right')[0].style.left = '100%';
56
+ break;
57
+ default:
58
+ this.picker
59
+ .addClass('slider-horizontal')
60
+ .css('width', this.element.outerWidth());
61
+ this.orientation = 'horizontal';
62
+ this.stylePos = 'left';
63
+ this.mousePos = 'pageX';
64
+ this.sizePos = 'offsetWidth';
65
+ this.tooltip.addClass('top')[0].style.top = -this.tooltip.outerHeight() - 14 + 'px';
66
+ break;
67
+ }
68
+
69
+ this.min = this.element.data('slider-min')||options.min;
70
+ this.max = this.element.data('slider-max')||options.max;
71
+ this.step = this.element.data('slider-step')||options.step;
72
+ this.value = this.element.data('slider-value')||options.value;
73
+ if (this.value[1]) {
74
+ this.range = true;
75
+ }
76
+
77
+ this.selection = this.element.data('slider-selection')||options.selection;
78
+ this.selectionEl = this.picker.find('.slider-selection');
79
+ if (this.selection === 'none') {
80
+ this.selectionEl.addClass('hide');
81
+ }
82
+ this.selectionElStyle = this.selectionEl[0].style;
83
+
84
+
85
+ this.handle1 = this.picker.find('.slider-handle:first');
86
+ this.handle1Stype = this.handle1[0].style;
87
+ this.handle2 = this.picker.find('.slider-handle:last');
88
+ this.handle2Stype = this.handle2[0].style;
89
+
90
+ var handle = this.element.data('slider-handle')||options.handle;
91
+ switch(handle) {
92
+ case 'round':
93
+ this.handle1.addClass('round');
94
+ this.handle2.addClass('round');
95
+ break
96
+ case 'triangle':
97
+ this.handle1.addClass('triangle');
98
+ this.handle2.addClass('triangle');
99
+ break
100
+ }
101
+
102
+ if (this.range) {
103
+ this.value[0] = Math.max(this.min, Math.min(this.max, this.value[0]));
104
+ this.value[1] = Math.max(this.min, Math.min(this.max, this.value[1]));
105
+ } else {
106
+ this.value = [ Math.max(this.min, Math.min(this.max, this.value))];
107
+ this.handle2.addClass('hide');
108
+ if (this.selection == 'after') {
109
+ this.value[1] = this.max;
110
+ } else {
111
+ this.value[1] = this.min;
112
+ }
113
+ }
114
+ this.diff = this.max - this.min;
115
+ this.percentage = [
116
+ (this.value[0]-this.min)*100/this.diff,
117
+ (this.value[1]-this.min)*100/this.diff,
118
+ this.step*100/this.diff
119
+ ];
120
+
121
+ this.offset = this.picker.offset();
122
+ this.size = this.picker[0][this.sizePos];
123
+
124
+ this.formater = options.formater;
125
+
126
+ this.layout();
127
+
128
+ if (this.touchCapable) {
129
+ // Touch: Bind touch events:
130
+ this.picker.on({
131
+ touchstart: $.proxy(this.mousedown, this)
132
+ });
133
+ } else {
134
+ this.picker.on({
135
+ mousedown: $.proxy(this.mousedown, this)
136
+ });
137
+ }
138
+
139
+ if (tooltip === 'show') {
140
+ this.picker.on({
141
+ mouseenter: $.proxy(this.showTooltip, this),
142
+ mouseleave: $.proxy(this.hideTooltip, this)
143
+ });
144
+ } else {
145
+ this.tooltip.addClass('hide');
146
+ }
147
+ };
148
+
149
+ Slider.prototype = {
150
+ constructor: Slider,
151
+
152
+ over: false,
153
+ inDrag: false,
154
+
155
+ showTooltip: function(){
156
+ this.tooltip.addClass('in');
157
+ //var left = Math.round(this.percent*this.width);
158
+ //this.tooltip.css('left', left - this.tooltip.outerWidth()/2);
159
+ this.over = true;
160
+ },
161
+
162
+ hideTooltip: function(){
163
+ if (this.inDrag === false) {
164
+ this.tooltip.removeClass('in');
165
+ }
166
+ this.over = false;
167
+ },
168
+
169
+ layout: function(){
170
+ this.handle1Stype[this.stylePos] = this.percentage[0]+'%';
171
+ this.handle2Stype[this.stylePos] = this.percentage[1]+'%';
172
+ if (this.orientation == 'vertical') {
173
+ this.selectionElStyle.top = Math.min(this.percentage[0], this.percentage[1]) +'%';
174
+ this.selectionElStyle.height = Math.abs(this.percentage[0] - this.percentage[1]) +'%';
175
+ } else {
176
+ this.selectionElStyle.left = Math.min(this.percentage[0], this.percentage[1]) +'%';
177
+ this.selectionElStyle.width = Math.abs(this.percentage[0] - this.percentage[1]) +'%';
178
+ }
179
+ if (this.range) {
180
+ this.tooltipInner.text(
181
+ this.formater(this.value[0]) +
182
+ ' : ' +
183
+ this.formater(this.value[1])
184
+ );
185
+ this.tooltip[0].style[this.stylePos] = this.size * (this.percentage[0] + (this.percentage[1] - this.percentage[0])/2)/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px';
186
+ } else {
187
+ this.tooltipInner.text(
188
+ this.formater(this.value[0])
189
+ );
190
+ this.tooltip[0].style[this.stylePos] = this.size * this.percentage[0]/100 - (this.orientation === 'vertical' ? this.tooltip.outerHeight()/2 : this.tooltip.outerWidth()/2) +'px';
191
+ }
192
+ },
193
+
194
+ mousedown: function(ev) {
195
+
196
+ // Touch: Get the original event:
197
+ if (this.touchCapable && ev.type === 'touchstart') {
198
+ ev = ev.originalEvent;
199
+ }
200
+
201
+ this.offset = this.picker.offset();
202
+ this.size = this.picker[0][this.sizePos];
203
+
204
+ var percentage = this.getPercentage(ev);
205
+
206
+ if (this.range) {
207
+ var diff1 = Math.abs(this.percentage[0] - percentage);
208
+ var diff2 = Math.abs(this.percentage[1] - percentage);
209
+ this.dragged = (diff1 < diff2) ? 0 : 1;
210
+ } else {
211
+ this.dragged = 0;
212
+ }
213
+
214
+ this.percentage[this.dragged] = percentage;
215
+ this.layout();
216
+
217
+ if (this.touchCapable) {
218
+ // Touch: Bind touch events:
219
+ $(document).on({
220
+ touchmove: $.proxy(this.mousemove, this),
221
+ touchend: $.proxy(this.mouseup, this)
222
+ });
223
+ } else {
224
+ $(document).on({
225
+ mousemove: $.proxy(this.mousemove, this),
226
+ mouseup: $.proxy(this.mouseup, this)
227
+ });
228
+ }
229
+
230
+ this.inDrag = true;
231
+ var val = this.calculateValue();
232
+ this.element.trigger({
233
+ type: 'slideStart',
234
+ value: val
235
+ }).trigger({
236
+ type: 'slide',
237
+ value: val
238
+ });
239
+ return false;
240
+ },
241
+
242
+ mousemove: function(ev) {
243
+
244
+ // Touch: Get the original event:
245
+ if (this.touchCapable && ev.type === 'touchmove') {
246
+ ev = ev.originalEvent;
247
+ }
248
+
249
+ var percentage = this.getPercentage(ev);
250
+ if (this.range) {
251
+ if (this.dragged === 0 && this.percentage[1] < percentage) {
252
+ this.percentage[0] = this.percentage[1];
253
+ this.dragged = 1;
254
+ } else if (this.dragged === 1 && this.percentage[0] > percentage) {
255
+ this.percentage[1] = this.percentage[0];
256
+ this.dragged = 0;
257
+ }
258
+ }
259
+ this.percentage[this.dragged] = percentage;
260
+ this.layout();
261
+ var val = this.calculateValue();
262
+ this.element
263
+ .trigger({
264
+ type: 'slide',
265
+ value: val
266
+ })
267
+ .data('value', val)
268
+ .prop('value', val);
269
+ return false;
270
+ },
271
+
272
+ mouseup: function(ev) {
273
+ if (this.touchCapable) {
274
+ // Touch: Bind touch events:
275
+ $(document).off({
276
+ touchmove: this.mousemove,
277
+ touchend: this.mouseup
278
+ });
279
+ } else {
280
+ $(document).off({
281
+ mousemove: this.mousemove,
282
+ mouseup: this.mouseup
283
+ });
284
+ }
285
+
286
+ this.inDrag = false;
287
+ if (this.over == false) {
288
+ this.hideTooltip();
289
+ }
290
+ this.element;
291
+ var val = this.calculateValue();
292
+ this.element
293
+ .trigger({
294
+ type: 'slideStop',
295
+ value: val
296
+ })
297
+ .data('value', val)
298
+ .prop('value', val);
299
+ return false;
300
+ },
301
+
302
+ calculateValue: function() {
303
+ var val;
304
+ if (this.range) {
305
+ val = [
306
+ (this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step),
307
+ (this.min + Math.round((this.diff * this.percentage[1]/100)/this.step)*this.step)
308
+ ];
309
+ this.value = val;
310
+ } else {
311
+ val = (this.min + Math.round((this.diff * this.percentage[0]/100)/this.step)*this.step);
312
+ this.value = [val, this.value[1]];
313
+ }
314
+ return val;
315
+ },
316
+
317
+ getPercentage: function(ev) {
318
+ if (this.touchCapable) {
319
+ ev = ev.touches[0];
320
+ }
321
+ var percentage = (ev[this.mousePos] - this.offset[this.stylePos])*100/this.size;
322
+ percentage = Math.round(percentage/this.percentage[2])*this.percentage[2];
323
+ return Math.max(0, Math.min(100, percentage));
324
+ },
325
+
326
+ getValue: function() {
327
+ if (this.range) {
328
+ return this.value;
329
+ }
330
+ return this.value[0];
331
+ },
332
+
333
+ setValue: function(val) {
334
+ this.value = val;
335
+
336
+ if (this.range) {
337
+ this.value[0] = Math.max(this.min, Math.min(this.max, this.value[0]));
338
+ this.value[1] = Math.max(this.min, Math.min(this.max, this.value[1]));
339
+ } else {
340
+ this.value = [ Math.max(this.min, Math.min(this.max, this.value))];
341
+ this.handle2.addClass('hide');
342
+ if (this.selection == 'after') {
343
+ this.value[1] = this.max;
344
+ } else {
345
+ this.value[1] = this.min;
346
+ }
347
+ }
348
+ this.diff = this.max - this.min;
349
+ this.percentage = [
350
+ (this.value[0]-this.min)*100/this.diff,
351
+ (this.value[1]-this.min)*100/this.diff,
352
+ this.step*100/this.diff
353
+ ];
354
+ this.layout();
355
+ }
356
+ };
357
+
358
+ $.fn.slider = function ( option, val ) {
359
+ return this.each(function () {
360
+ var $this = $(this),
361
+ data = $this.data('slider'),
362
+ options = typeof option === 'object' && option;
363
+ if (!data) {
364
+ $this.data('slider', (data = new Slider(this, $.extend({}, $.fn.slider.defaults,options))));
365
+ }
366
+ if (typeof option == 'string') {
367
+ data[option](val);
368
+ }
369
+ })
370
+ };
371
+
372
+ $.fn.slider.defaults = {
373
+ min: 0,
374
+ max: 10,
375
+ step: 1,
376
+ orientation: 'horizontal',
377
+ value: 5,
378
+ selection: 'before',
379
+ tooltip: 'show',
380
+ handle: 'round',
381
+ formater: function(value) {
382
+ return value;
383
+ }
384
+ };
385
+
386
+ $.fn.slider.Constructor = Slider;
387
+
388
+ }( window.jQuery );
@@ -0,0 +1,7 @@
1
+ // Underscore.js 1.5.0
2
+ // http://underscorejs.org
3
+ // (c) 2009-2011 Jeremy Ashkenas, DocumentCloud Inc.
4
+ // (c) 2011-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
5
+ // Underscore may be freely distributed under the MIT license.
6
+ !function(){var n=this,t=n._,r={},e=Array.prototype,u=Object.prototype,i=Function.prototype,a=e.push,o=e.slice,c=e.concat,l=u.toString,f=u.hasOwnProperty,s=e.forEach,p=e.map,v=e.reduce,h=e.reduceRight,d=e.filter,g=e.every,m=e.some,y=e.indexOf,b=e.lastIndexOf,x=Array.isArray,_=Object.keys,w=i.bind,j=function(n){return n instanceof j?n:this instanceof j?(this._wrapped=n,void 0):new j(n)};"undefined"!=typeof exports?("undefined"!=typeof module&&module.exports&&(exports=module.exports=j),exports._=j):n._=j,j.VERSION="1.5.0";var A=j.each=j.forEach=function(n,t,e){if(null!=n)if(s&&n.forEach===s)n.forEach(t,e);else if(n.length===+n.length){for(var u=0,i=n.length;i>u;u++)if(t.call(e,n[u],u,n)===r)return}else for(var a in n)if(j.has(n,a)&&t.call(e,n[a],a,n)===r)return};j.map=j.collect=function(n,t,r){var e=[];return null==n?e:p&&n.map===p?n.map(t,r):(A(n,function(n,u,i){e.push(t.call(r,n,u,i))}),e)};var E="Reduce of empty array with no initial value";j.reduce=j.foldl=j.inject=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),v&&n.reduce===v)return e&&(t=j.bind(t,e)),u?n.reduce(t,r):n.reduce(t);if(A(n,function(n,i,a){u?r=t.call(e,r,n,i,a):(r=n,u=!0)}),!u)throw new TypeError(E);return r},j.reduceRight=j.foldr=function(n,t,r,e){var u=arguments.length>2;if(null==n&&(n=[]),h&&n.reduceRight===h)return e&&(t=j.bind(t,e)),u?n.reduceRight(t,r):n.reduceRight(t);var i=n.length;if(i!==+i){var a=j.keys(n);i=a.length}if(A(n,function(o,c,l){c=a?a[--i]:--i,u?r=t.call(e,r,n[c],c,l):(r=n[c],u=!0)}),!u)throw new TypeError(E);return r},j.find=j.detect=function(n,t,r){var e;return O(n,function(n,u,i){return t.call(r,n,u,i)?(e=n,!0):void 0}),e},j.filter=j.select=function(n,t,r){var e=[];return null==n?e:d&&n.filter===d?n.filter(t,r):(A(n,function(n,u,i){t.call(r,n,u,i)&&e.push(n)}),e)},j.reject=function(n,t,r){return j.filter(n,function(n,e,u){return!t.call(r,n,e,u)},r)},j.every=j.all=function(n,t,e){t||(t=j.identity);var u=!0;return null==n?u:g&&n.every===g?n.every(t,e):(A(n,function(n,i,a){return(u=u&&t.call(e,n,i,a))?void 0:r}),!!u)};var O=j.some=j.any=function(n,t,e){t||(t=j.identity);var u=!1;return null==n?u:m&&n.some===m?n.some(t,e):(A(n,function(n,i,a){return u||(u=t.call(e,n,i,a))?r:void 0}),!!u)};j.contains=j.include=function(n,t){return null==n?!1:y&&n.indexOf===y?n.indexOf(t)!=-1:O(n,function(n){return n===t})},j.invoke=function(n,t){var r=o.call(arguments,2),e=j.isFunction(t);return j.map(n,function(n){return(e?t:n[t]).apply(n,r)})},j.pluck=function(n,t){return j.map(n,function(n){return n[t]})},j.where=function(n,t,r){return j.isEmpty(t)?r?void 0:[]:j[r?"find":"filter"](n,function(n){for(var r in t)if(t[r]!==n[r])return!1;return!0})},j.findWhere=function(n,t){return j.where(n,t,!0)},j.max=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.max.apply(Math,n);if(!t&&j.isEmpty(n))return-1/0;var e={computed:-1/0,value:-1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a>e.computed&&(e={value:n,computed:a})}),e.value},j.min=function(n,t,r){if(!t&&j.isArray(n)&&n[0]===+n[0]&&n.length<65535)return Math.min.apply(Math,n);if(!t&&j.isEmpty(n))return 1/0;var e={computed:1/0,value:1/0};return A(n,function(n,u,i){var a=t?t.call(r,n,u,i):n;a<e.computed&&(e={value:n,computed:a})}),e.value},j.shuffle=function(n){var t,r=0,e=[];return A(n,function(n){t=j.random(r++),e[r-1]=e[t],e[t]=n}),e};var F=function(n){return j.isFunction(n)?n:function(t){return t[n]}};j.sortBy=function(n,t,r){var e=F(t);return j.pluck(j.map(n,function(n,t,u){return{value:n,index:t,criteria:e.call(r,n,t,u)}}).sort(function(n,t){var r=n.criteria,e=t.criteria;if(r!==e){if(r>e||r===void 0)return 1;if(e>r||e===void 0)return-1}return n.index<t.index?-1:1}),"value")};var k=function(n,t,r,e){var u={},i=F(null==t?j.identity:t);return A(n,function(t,a){var o=i.call(r,t,a,n);e(u,o,t)}),u};j.groupBy=function(n,t,r){return k(n,t,r,function(n,t,r){(j.has(n,t)?n[t]:n[t]=[]).push(r)})},j.countBy=function(n,t,r){return k(n,t,r,function(n,t){j.has(n,t)||(n[t]=0),n[t]++})},j.sortedIndex=function(n,t,r,e){r=null==r?j.identity:F(r);for(var u=r.call(e,t),i=0,a=n.length;a>i;){var o=i+a>>>1;r.call(e,n[o])<u?i=o+1:a=o}return i},j.toArray=function(n){return n?j.isArray(n)?o.call(n):n.length===+n.length?j.map(n,j.identity):j.values(n):[]},j.size=function(n){return null==n?0:n.length===+n.length?n.length:j.keys(n).length},j.first=j.head=j.take=function(n,t,r){return null==n?void 0:null==t||r?n[0]:o.call(n,0,t)},j.initial=function(n,t,r){return o.call(n,0,n.length-(null==t||r?1:t))},j.last=function(n,t,r){return null==n?void 0:null==t||r?n[n.length-1]:o.call(n,Math.max(n.length-t,0))},j.rest=j.tail=j.drop=function(n,t,r){return o.call(n,null==t||r?1:t)},j.compact=function(n){return j.filter(n,j.identity)};var R=function(n,t,r){return t&&j.every(n,j.isArray)?c.apply(r,n):(A(n,function(n){j.isArray(n)||j.isArguments(n)?t?a.apply(r,n):R(n,t,r):r.push(n)}),r)};j.flatten=function(n,t){return R(n,t,[])},j.without=function(n){return j.difference(n,o.call(arguments,1))},j.uniq=j.unique=function(n,t,r,e){j.isFunction(t)&&(e=r,r=t,t=!1);var u=r?j.map(n,r,e):n,i=[],a=[];return A(u,function(r,e){(t?e&&a[a.length-1]===r:j.contains(a,r))||(a.push(r),i.push(n[e]))}),i},j.union=function(){return j.uniq(j.flatten(arguments,!0))},j.intersection=function(n){var t=o.call(arguments,1);return j.filter(j.uniq(n),function(n){return j.every(t,function(t){return j.indexOf(t,n)>=0})})},j.difference=function(n){var t=c.apply(e,o.call(arguments,1));return j.filter(n,function(n){return!j.contains(t,n)})},j.zip=function(){return j.unzip.apply(j,o.call(arguments))},j.unzip=function(){for(var n=j.max(j.pluck(arguments,"length").concat(0)),t=new Array(n),r=0;n>r;r++)t[r]=j.pluck(arguments,""+r);return t},j.object=function(n,t){if(null==n)return{};for(var r={},e=0,u=n.length;u>e;e++)t?r[n[e]]=t[e]:r[n[e][0]]=n[e][1];return r},j.indexOf=function(n,t,r){if(null==n)return-1;var e=0,u=n.length;if(r){if("number"!=typeof r)return e=j.sortedIndex(n,t),n[e]===t?e:-1;e=0>r?Math.max(0,u+r):r}if(y&&n.indexOf===y)return n.indexOf(t,r);for(;u>e;e++)if(n[e]===t)return e;return-1},j.lastIndexOf=function(n,t,r){if(null==n)return-1;var e=null!=r;if(b&&n.lastIndexOf===b)return e?n.lastIndexOf(t,r):n.lastIndexOf(t);for(var u=e?r:n.length;u--;)if(n[u]===t)return u;return-1},j.range=function(n,t,r){arguments.length<=1&&(t=n||0,n=0),r=arguments[2]||1;for(var e=Math.max(Math.ceil((t-n)/r),0),u=0,i=new Array(e);e>u;)i[u++]=n,n+=r;return i};var M=function(){};j.bind=function(n,t){var r,e;if(w&&n.bind===w)return w.apply(n,o.call(arguments,1));if(!j.isFunction(n))throw new TypeError;return r=o.call(arguments,2),e=function(){if(!(this instanceof e))return n.apply(t,r.concat(o.call(arguments)));M.prototype=n.prototype;var u=new M;M.prototype=null;var i=n.apply(u,r.concat(o.call(arguments)));return Object(i)===i?i:u}},j.partial=function(n){var t=o.call(arguments,1);return function(){return n.apply(this,t.concat(o.call(arguments)))}},j.bindAll=function(n){var t=o.call(arguments,1);if(0===t.length)throw new Error("bindAll must be passed function names");return A(t,function(t){n[t]=j.bind(n[t],n)}),n},j.memoize=function(n,t){var r={};return t||(t=j.identity),function(){var e=t.apply(this,arguments);return j.has(r,e)?r[e]:r[e]=n.apply(this,arguments)}},j.delay=function(n,t){var r=o.call(arguments,2);return setTimeout(function(){return n.apply(null,r)},t)},j.defer=function(n){return j.delay.apply(j,[n,1].concat(o.call(arguments,1)))},j.throttle=function(n,t,r){var e,u,i,a=null,o=0;r||(r={});var c=function(){o=new Date,a=null,i=n.apply(e,u)};return function(){var l=new Date;o||r.leading!==!1||(o=l);var f=t-(l-o);return e=this,u=arguments,0>=f?(clearTimeout(a),a=null,o=l,i=n.apply(e,u)):a||r.trailing===!1||(a=setTimeout(c,f)),i}},j.debounce=function(n,t,r){var e,u=null;return function(){var i=this,a=arguments,o=function(){u=null,r||(e=n.apply(i,a))},c=r&&!u;return clearTimeout(u),u=setTimeout(o,t),c&&(e=n.apply(i,a)),e}},j.once=function(n){var t,r=!1;return function(){return r?t:(r=!0,t=n.apply(this,arguments),n=null,t)}},j.wrap=function(n,t){return function(){var r=[n];return a.apply(r,arguments),t.apply(this,r)}},j.compose=function(){var n=arguments;return function(){for(var t=arguments,r=n.length-1;r>=0;r--)t=[n[r].apply(this,t)];return t[0]}},j.after=function(n,t){return function(){return--n<1?t.apply(this,arguments):void 0}},j.keys=_||function(n){if(n!==Object(n))throw new TypeError("Invalid object");var t=[];for(var r in n)j.has(n,r)&&t.push(r);return t},j.values=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push(n[r]);return t},j.pairs=function(n){var t=[];for(var r in n)j.has(n,r)&&t.push([r,n[r]]);return t},j.invert=function(n){var t={};for(var r in n)j.has(n,r)&&(t[n[r]]=r);return t},j.functions=j.methods=function(n){var t=[];for(var r in n)j.isFunction(n[r])&&t.push(r);return t.sort()},j.extend=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]=t[r]}),n},j.pick=function(n){var t={},r=c.apply(e,o.call(arguments,1));return A(r,function(r){r in n&&(t[r]=n[r])}),t},j.omit=function(n){var t={},r=c.apply(e,o.call(arguments,1));for(var u in n)j.contains(r,u)||(t[u]=n[u]);return t},j.defaults=function(n){return A(o.call(arguments,1),function(t){if(t)for(var r in t)n[r]===void 0&&(n[r]=t[r])}),n},j.clone=function(n){return j.isObject(n)?j.isArray(n)?n.slice():j.extend({},n):n},j.tap=function(n,t){return t(n),n};var S=function(n,t,r,e){if(n===t)return 0!==n||1/n==1/t;if(null==n||null==t)return n===t;n instanceof j&&(n=n._wrapped),t instanceof j&&(t=t._wrapped);var u=l.call(n);if(u!=l.call(t))return!1;switch(u){case"[object String]":return n==String(t);case"[object Number]":return n!=+n?t!=+t:0==n?1/n==1/t:n==+t;case"[object Date]":case"[object Boolean]":return+n==+t;case"[object RegExp]":return n.source==t.source&&n.global==t.global&&n.multiline==t.multiline&&n.ignoreCase==t.ignoreCase}if("object"!=typeof n||"object"!=typeof t)return!1;for(var i=r.length;i--;)if(r[i]==n)return e[i]==t;var a=n.constructor,o=t.constructor;if(a!==o&&!(j.isFunction(a)&&a instanceof a&&j.isFunction(o)&&o instanceof o))return!1;r.push(n),e.push(t);var c=0,f=!0;if("[object Array]"==u){if(c=n.length,f=c==t.length)for(;c--&&(f=S(n[c],t[c],r,e)););}else{for(var s in n)if(j.has(n,s)&&(c++,!(f=j.has(t,s)&&S(n[s],t[s],r,e))))break;if(f){for(s in t)if(j.has(t,s)&&!c--)break;f=!c}}return r.pop(),e.pop(),f};j.isEqual=function(n,t){return S(n,t,[],[])},j.isEmpty=function(n){if(null==n)return!0;if(j.isArray(n)||j.isString(n))return 0===n.length;for(var t in n)if(j.has(n,t))return!1;return!0},j.isElement=function(n){return!(!n||1!==n.nodeType)},j.isArray=x||function(n){return"[object Array]"==l.call(n)},j.isObject=function(n){return n===Object(n)},A(["Arguments","Function","String","Number","Date","RegExp"],function(n){j["is"+n]=function(t){return l.call(t)=="[object "+n+"]"}}),j.isArguments(arguments)||(j.isArguments=function(n){return!(!n||!j.has(n,"callee"))}),"function"!=typeof/./&&(j.isFunction=function(n){return"function"==typeof n}),j.isFinite=function(n){return isFinite(n)&&!isNaN(parseFloat(n))},j.isNaN=function(n){return j.isNumber(n)&&n!=+n},j.isBoolean=function(n){return n===!0||n===!1||"[object Boolean]"==l.call(n)},j.isNull=function(n){return null===n},j.isUndefined=function(n){return n===void 0},j.has=function(n,t){return f.call(n,t)},j.noConflict=function(){return n._=t,this},j.identity=function(n){return n},j.times=function(n,t,r){for(var e=Array(Math.max(0,n)),u=0;n>u;u++)e[u]=t.call(r,u);return e},j.random=function(n,t){return null==t&&(t=n,n=0),n+Math.floor(Math.random()*(t-n+1))};var I={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};I.unescape=j.invert(I.escape);var T={escape:new RegExp("["+j.keys(I.escape).join("")+"]","g"),unescape:new RegExp("("+j.keys(I.unescape).join("|")+")","g")};j.each(["escape","unescape"],function(n){j[n]=function(t){return null==t?"":(""+t).replace(T[n],function(t){return I[n][t]})}}),j.result=function(n,t){if(null==n)return void 0;var r=n[t];return j.isFunction(r)?r.call(n):r},j.mixin=function(n){A(j.functions(n),function(t){var r=j[t]=n[t];j.prototype[t]=function(){var n=[this._wrapped];return a.apply(n,arguments),D.call(this,r.apply(j,n))}})};var N=0;j.uniqueId=function(n){var t=++N+"";return n?n+t:t},j.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var q=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"},z=/\\|'|\r|\n|\t|\u2028|\u2029/g;j.template=function(n,t,r){var e;r=j.defaults({},r,j.templateSettings);var u=new RegExp([(r.escape||q).source,(r.interpolate||q).source,(r.evaluate||q).source].join("|")+"|$","g"),i=0,a="__p+='";n.replace(u,function(t,r,e,u,o){return a+=n.slice(i,o).replace(z,function(n){return"\\"+B[n]}),r&&(a+="'+\n((__t=("+r+"))==null?'':_.escape(__t))+\n'"),e&&(a+="'+\n((__t=("+e+"))==null?'':__t)+\n'"),u&&(a+="';\n"+u+"\n__p+='"),i=o+t.length,t}),a+="';\n",r.variable||(a="with(obj||{}){\n"+a+"}\n"),a="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+a+"return __p;\n";try{e=new Function(r.variable||"obj","_",a)}catch(o){throw o.source=a,o}if(t)return e(t,j);var c=function(n){return e.call(this,n,j)};return c.source="function("+(r.variable||"obj")+"){\n"+a+"}",c},j.chain=function(n){return j(n).chain()};var D=function(n){return this._chain?j(n).chain():n};j.mixin(j),A(["pop","push","reverse","shift","sort","splice","unshift"],function(n){var t=e[n];j.prototype[n]=function(){var r=this._wrapped;return t.apply(r,arguments),"shift"!=n&&"splice"!=n||0!==r.length||delete r[0],D.call(this,r)}}),A(["concat","join","slice"],function(n){var t=e[n];j.prototype[n]=function(){return D.call(this,t.apply(this._wrapped,arguments))}}),j.extend(j.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}.call(this);
7
+ //# sourceMappingURL=underscore-min.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"underscore-min.js","sources":["underscore.js"],"names":["root","this","previousUnderscore","_","breaker","ArrayProto","Array","prototype","ObjProto","Object","FuncProto","Function","push","slice","concat","toString","hasOwnProperty","nativeForEach","forEach","nativeMap","map","nativeReduce","reduce","nativeReduceRight","reduceRight","nativeFilter","filter","nativeEvery","every","nativeSome","some","nativeIndexOf","indexOf","nativeLastIndexOf","lastIndexOf","nativeIsArray","isArray","nativeKeys","keys","nativeBind","bind","obj","_wrapped","exports","module","VERSION","each","iterator","context","length","i","l","call","key","has","collect","results","value","index","list","reduceError","foldl","inject","memo","initial","arguments","TypeError","foldr","find","detect","result","any","select","reject","all","identity","contains","include","target","invoke","method","args","isFunc","isFunction","apply","pluck","where","attrs","first","isEmpty","findWhere","max","Math","Infinity","computed","min","shuffle","rand","shuffled","random","lookupIterator","sortBy","criteria","sort","left","right","a","b","group","behavior","groupBy","countBy","sortedIndex","array","low","high","mid","toArray","values","size","head","take","n","guard","last","rest","tail","drop","compact","flatten","input","shallow","output","isArguments","without","difference","uniq","unique","isSorted","seen","union","intersection","item","other","zip","object","from","hasIndex","range","start","stop","step","len","ceil","idx","ctor","func","bound","self","partial","bindAll","funcs","Error","f","memoize","hasher","delay","wait","setTimeout","defer","throttle","options","timeout","previous","later","leading","Date","now","remaining","clearTimeout","trailing","debounce","immediate","callNow","once","ran","wrap","wrapper","compose","after","times","pairs","invert","functions","methods","names","extend","source","prop","pick","copy","omit","defaults","clone","isObject","tap","interceptor","eq","aStack","bStack","className","String","global","multiline","ignoreCase","aCtor","constructor","bCtor","pop","isEqual","isString","isElement","nodeType","name","isFinite","isNaN","parseFloat","isNumber","isBoolean","isNull","isUndefined","noConflict","accum","floor","entityMap","escape","&","<",">","\"","'","/","unescape","entityRegexes","RegExp","join","string","replace","match","property","mixin","idCounter","uniqueId","prefix","id","templateSettings","evaluate","interpolate","noMatch","escapes","\\","\r","\n","\t","
","
","escaper","template","text","data","settings","render","matcher","offset","variable","e","chain","_chain"],"mappings":"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"}