rails-jquery-bundle 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (190) hide show
  1. data/Gemfile +15 -0
  2. data/Gemfile.lock +42 -0
  3. data/LICENSE.txt +675 -0
  4. data/README.rdoc +27 -0
  5. data/Rakefile +57 -0
  6. data/VERSION +1 -0
  7. data/app/helpers/rails_jquery_bundle/jquery_css_helper.rb +34 -0
  8. data/app/helpers/rails_jquery_bundle/jquery_js_helper.rb +133 -0
  9. data/lib/rails-jquery-bundle.rb +15 -0
  10. data/lib/rails_jquery_bundle/constants/jquery.rb +22 -0
  11. data/lib/rails_jquery_bundle/constants/jquery/ui.rb +34 -0
  12. data/lib/rails_jquery_bundle/engine.rb +23 -0
  13. data/public/javascripts/jquery/1.5.1/jquery.js +8316 -0
  14. data/public/javascripts/jquery/1.5.1/minified/jquery.min.js +16 -0
  15. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery-ui-i18n.js +1357 -0
  16. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-af.js +23 -0
  17. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
  18. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ar.js +23 -0
  19. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-az.js +23 -0
  20. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-bg.js +24 -0
  21. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-bs.js +23 -0
  22. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ca.js +23 -0
  23. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-cs.js +23 -0
  24. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-da.js +23 -0
  25. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-de.js +23 -0
  26. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-el.js +23 -0
  27. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-en-AU.js +23 -0
  28. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-en-GB.js +23 -0
  29. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
  30. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-eo.js +23 -0
  31. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-es.js +23 -0
  32. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-et.js +23 -0
  33. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-eu.js +23 -0
  34. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-fa.js +23 -0
  35. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-fi.js +23 -0
  36. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-fo.js +23 -0
  37. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-fr-CH.js +23 -0
  38. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-fr.js +25 -0
  39. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-gl.js +23 -0
  40. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-he.js +23 -0
  41. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-hr.js +23 -0
  42. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-hu.js +23 -0
  43. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-hy.js +23 -0
  44. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-id.js +23 -0
  45. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-is.js +23 -0
  46. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-it.js +23 -0
  47. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ja.js +23 -0
  48. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ko.js +23 -0
  49. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-kz.js +23 -0
  50. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-lt.js +23 -0
  51. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-lv.js +23 -0
  52. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ml.js +23 -0
  53. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ms.js +23 -0
  54. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-nl.js +23 -0
  55. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-no.js +23 -0
  56. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-pl.js +23 -0
  57. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-pt-BR.js +23 -0
  58. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-pt.js +22 -0
  59. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-rm.js +21 -0
  60. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ro.js +26 -0
  61. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ru.js +23 -0
  62. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sk.js +23 -0
  63. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sl.js +24 -0
  64. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sq.js +23 -0
  65. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sr-SR.js +23 -0
  66. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sr.js +23 -0
  67. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-sv.js +23 -0
  68. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-ta.js +23 -0
  69. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-th.js +23 -0
  70. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-tr.js +23 -0
  71. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-uk.js +23 -0
  72. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-vi.js +23 -0
  73. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-zh-CN.js +23 -0
  74. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-zh-HK.js +23 -0
  75. data/public/javascripts/jquery/ui/1.8.10/i18n/jquery.ui.datepicker-zh-TW.js +23 -0
  76. data/public/javascripts/jquery/ui/1.8.10/jquery-ui.all.js +11544 -0
  77. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.blind.js +49 -0
  78. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.bounce.js +78 -0
  79. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.clip.js +54 -0
  80. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.core.js +747 -0
  81. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.drop.js +50 -0
  82. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.explode.js +79 -0
  83. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.fade.js +32 -0
  84. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.fold.js +56 -0
  85. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.highlight.js +50 -0
  86. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.pulsate.js +51 -0
  87. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.scale.js +178 -0
  88. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.shake.js +57 -0
  89. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.slide.js +50 -0
  90. data/public/javascripts/jquery/ui/1.8.10/jquery.effects.transfer.js +45 -0
  91. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.accordion.js +606 -0
  92. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.autocomplete.js +607 -0
  93. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.button.js +378 -0
  94. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.core.js +308 -0
  95. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.datepicker.js +1766 -0
  96. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.dialog.js +857 -0
  97. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.draggable.js +797 -0
  98. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.droppable.js +285 -0
  99. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.mouse.js +151 -0
  100. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.position.js +252 -0
  101. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.progressbar.js +108 -0
  102. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.resizable.js +812 -0
  103. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.selectable.js +266 -0
  104. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.slider.js +682 -0
  105. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.sortable.js +1073 -0
  106. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.tabs.js +758 -0
  107. data/public/javascripts/jquery/ui/1.8.10/jquery.ui.widget.js +262 -0
  108. data/public/javascripts/jquery/ui/1.8.10/minified/jquery-ui.all.min.js +782 -0
  109. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.blind.min.js +14 -0
  110. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.bounce.min.js +15 -0
  111. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.clip.min.js +14 -0
  112. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.core.min.js +30 -0
  113. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.drop.min.js +14 -0
  114. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.explode.min.js +15 -0
  115. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.fade.min.js +13 -0
  116. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.fold.min.js +14 -0
  117. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.highlight.min.js +14 -0
  118. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.pulsate.min.js +14 -0
  119. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.scale.min.js +20 -0
  120. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.shake.min.js +14 -0
  121. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.slide.min.js +14 -0
  122. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.effects.transfer.min.js +14 -0
  123. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.accordion.min.js +30 -0
  124. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.autocomplete.min.js +31 -0
  125. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.button.min.js +26 -0
  126. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.core.min.js +17 -0
  127. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.datepicker.min.js +81 -0
  128. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.dialog.min.js +40 -0
  129. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.draggable.min.js +50 -0
  130. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.droppable.min.js +26 -0
  131. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.mouse.min.js +17 -0
  132. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.position.min.js +16 -0
  133. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.progressbar.min.js +16 -0
  134. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.resizable.min.js +47 -0
  135. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.selectable.min.js +22 -0
  136. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.slider.min.js +33 -0
  137. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.sortable.min.js +60 -0
  138. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.tabs.min.js +35 -0
  139. data/public/javascripts/jquery/ui/1.8.10/minified/jquery.ui.widget.min.js +15 -0
  140. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_flat_55_999999_40x100.png +0 -0
  141. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_flat_75_aaaaaa_40x100.png +0 -0
  142. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_glass_45_0078ae_1x400.png +0 -0
  143. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_glass_55_f8da4e_1x400.png +0 -0
  144. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_glass_75_79c9ec_1x400.png +0 -0
  145. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_gloss-wave_45_e14f1c_500x100.png +0 -0
  146. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_gloss-wave_50_6eac2c_500x100.png +0 -0
  147. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_gloss-wave_75_2191c0_500x100.png +0 -0
  148. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-bg_inset-hard_100_fcfdfd_1x100.png +0 -0
  149. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_0078ae_256x240.png +0 -0
  150. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_056b93_256x240.png +0 -0
  151. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_d8e7f3_256x240.png +0 -0
  152. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_e0fdff_256x240.png +0 -0
  153. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_f5e175_256x240.png +0 -0
  154. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_f7a50d_256x240.png +0 -0
  155. data/public/stylesheets/jquery/ui/1.8.10/themes/start/images/ui-icons_fcd113_256x240.png +0 -0
  156. data/public/stylesheets/jquery/ui/1.8.10/themes/start/jquery-ui-1.8.10.custom.css +573 -0
  157. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_flat_30_cccccc_40x100.png +0 -0
  158. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_flat_50_5c5c5c_40x100.png +0 -0
  159. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_glass_20_555555_1x400.png +0 -0
  160. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_glass_40_0078a3_1x400.png +0 -0
  161. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_glass_40_ffc73d_1x400.png +0 -0
  162. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_gloss-wave_25_333333_500x100.png +0 -0
  163. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_highlight-soft_80_eeeeee_1x100.png +0 -0
  164. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_inset-soft_25_000000_1x100.png +0 -0
  165. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-bg_inset-soft_30_f58400_1x100.png +0 -0
  166. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-icons_222222_256x240.png +0 -0
  167. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-icons_4b8e0b_256x240.png +0 -0
  168. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-icons_a83300_256x240.png +0 -0
  169. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-icons_cccccc_256x240.png +0 -0
  170. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/images/ui-icons_ffffff_256x240.png +0 -0
  171. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-darkness/jquery-ui-1.8.10.custom.css +573 -0
  172. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  173. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  174. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  175. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  176. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  177. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  178. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  179. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  180. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  181. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  182. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  183. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  184. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  185. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  186. data/public/stylesheets/jquery/ui/1.8.10/themes/ui-lightness/jquery-ui-1.8.10.custom.css +573 -0
  187. data/rails-jquery-bundle.gemspec +247 -0
  188. data/spec/rails-jquery-bundle_spec.rb +7 -0
  189. data/spec/spec_helper.rb +12 -0
  190. metadata +348 -0
@@ -0,0 +1,266 @@
1
+ /*
2
+ * jQuery UI Selectable 1.8.10
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Selectables
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ * jquery.ui.mouse.js
13
+ * jquery.ui.widget.js
14
+ */
15
+ (function( $, undefined ) {
16
+
17
+ $.widget("ui.selectable", $.ui.mouse, {
18
+ options: {
19
+ appendTo: 'body',
20
+ autoRefresh: true,
21
+ distance: 0,
22
+ filter: '*',
23
+ tolerance: 'touch'
24
+ },
25
+ _create: function() {
26
+ var self = this;
27
+
28
+ this.element.addClass("ui-selectable");
29
+
30
+ this.dragged = false;
31
+
32
+ // cache selectee children based on filter
33
+ var selectees;
34
+ this.refresh = function() {
35
+ selectees = $(self.options.filter, self.element[0]);
36
+ selectees.each(function() {
37
+ var $this = $(this);
38
+ var pos = $this.offset();
39
+ $.data(this, "selectable-item", {
40
+ element: this,
41
+ $element: $this,
42
+ left: pos.left,
43
+ top: pos.top,
44
+ right: pos.left + $this.outerWidth(),
45
+ bottom: pos.top + $this.outerHeight(),
46
+ startselected: false,
47
+ selected: $this.hasClass('ui-selected'),
48
+ selecting: $this.hasClass('ui-selecting'),
49
+ unselecting: $this.hasClass('ui-unselecting')
50
+ });
51
+ });
52
+ };
53
+ this.refresh();
54
+
55
+ this.selectees = selectees.addClass("ui-selectee");
56
+
57
+ this._mouseInit();
58
+
59
+ this.helper = $("<div class='ui-selectable-helper'></div>");
60
+ },
61
+
62
+ destroy: function() {
63
+ this.selectees
64
+ .removeClass("ui-selectee")
65
+ .removeData("selectable-item");
66
+ this.element
67
+ .removeClass("ui-selectable ui-selectable-disabled")
68
+ .removeData("selectable")
69
+ .unbind(".selectable");
70
+ this._mouseDestroy();
71
+
72
+ return this;
73
+ },
74
+
75
+ _mouseStart: function(event) {
76
+ var self = this;
77
+
78
+ this.opos = [event.pageX, event.pageY];
79
+
80
+ if (this.options.disabled)
81
+ return;
82
+
83
+ var options = this.options;
84
+
85
+ this.selectees = $(options.filter, this.element[0]);
86
+
87
+ this._trigger("start", event);
88
+
89
+ $(options.appendTo).append(this.helper);
90
+ // position helper (lasso)
91
+ this.helper.css({
92
+ "left": event.clientX,
93
+ "top": event.clientY,
94
+ "width": 0,
95
+ "height": 0
96
+ });
97
+
98
+ if (options.autoRefresh) {
99
+ this.refresh();
100
+ }
101
+
102
+ this.selectees.filter('.ui-selected').each(function() {
103
+ var selectee = $.data(this, "selectable-item");
104
+ selectee.startselected = true;
105
+ if (!event.metaKey) {
106
+ selectee.$element.removeClass('ui-selected');
107
+ selectee.selected = false;
108
+ selectee.$element.addClass('ui-unselecting');
109
+ selectee.unselecting = true;
110
+ // selectable UNSELECTING callback
111
+ self._trigger("unselecting", event, {
112
+ unselecting: selectee.element
113
+ });
114
+ }
115
+ });
116
+
117
+ $(event.target).parents().andSelf().each(function() {
118
+ var selectee = $.data(this, "selectable-item");
119
+ if (selectee) {
120
+ var doSelect = !event.metaKey || !selectee.$element.hasClass('ui-selected');
121
+ selectee.$element
122
+ .removeClass(doSelect ? "ui-unselecting" : "ui-selected")
123
+ .addClass(doSelect ? "ui-selecting" : "ui-unselecting");
124
+ selectee.unselecting = !doSelect;
125
+ selectee.selecting = doSelect;
126
+ selectee.selected = doSelect;
127
+ // selectable (UN)SELECTING callback
128
+ if (doSelect) {
129
+ self._trigger("selecting", event, {
130
+ selecting: selectee.element
131
+ });
132
+ } else {
133
+ self._trigger("unselecting", event, {
134
+ unselecting: selectee.element
135
+ });
136
+ }
137
+ return false;
138
+ }
139
+ });
140
+
141
+ },
142
+
143
+ _mouseDrag: function(event) {
144
+ var self = this;
145
+ this.dragged = true;
146
+
147
+ if (this.options.disabled)
148
+ return;
149
+
150
+ var options = this.options;
151
+
152
+ var x1 = this.opos[0], y1 = this.opos[1], x2 = event.pageX, y2 = event.pageY;
153
+ if (x1 > x2) { var tmp = x2; x2 = x1; x1 = tmp; }
154
+ if (y1 > y2) { var tmp = y2; y2 = y1; y1 = tmp; }
155
+ this.helper.css({left: x1, top: y1, width: x2-x1, height: y2-y1});
156
+
157
+ this.selectees.each(function() {
158
+ var selectee = $.data(this, "selectable-item");
159
+ //prevent helper from being selected if appendTo: selectable
160
+ if (!selectee || selectee.element == self.element[0])
161
+ return;
162
+ var hit = false;
163
+ if (options.tolerance == 'touch') {
164
+ hit = ( !(selectee.left > x2 || selectee.right < x1 || selectee.top > y2 || selectee.bottom < y1) );
165
+ } else if (options.tolerance == 'fit') {
166
+ hit = (selectee.left > x1 && selectee.right < x2 && selectee.top > y1 && selectee.bottom < y2);
167
+ }
168
+
169
+ if (hit) {
170
+ // SELECT
171
+ if (selectee.selected) {
172
+ selectee.$element.removeClass('ui-selected');
173
+ selectee.selected = false;
174
+ }
175
+ if (selectee.unselecting) {
176
+ selectee.$element.removeClass('ui-unselecting');
177
+ selectee.unselecting = false;
178
+ }
179
+ if (!selectee.selecting) {
180
+ selectee.$element.addClass('ui-selecting');
181
+ selectee.selecting = true;
182
+ // selectable SELECTING callback
183
+ self._trigger("selecting", event, {
184
+ selecting: selectee.element
185
+ });
186
+ }
187
+ } else {
188
+ // UNSELECT
189
+ if (selectee.selecting) {
190
+ if (event.metaKey && selectee.startselected) {
191
+ selectee.$element.removeClass('ui-selecting');
192
+ selectee.selecting = false;
193
+ selectee.$element.addClass('ui-selected');
194
+ selectee.selected = true;
195
+ } else {
196
+ selectee.$element.removeClass('ui-selecting');
197
+ selectee.selecting = false;
198
+ if (selectee.startselected) {
199
+ selectee.$element.addClass('ui-unselecting');
200
+ selectee.unselecting = true;
201
+ }
202
+ // selectable UNSELECTING callback
203
+ self._trigger("unselecting", event, {
204
+ unselecting: selectee.element
205
+ });
206
+ }
207
+ }
208
+ if (selectee.selected) {
209
+ if (!event.metaKey && !selectee.startselected) {
210
+ selectee.$element.removeClass('ui-selected');
211
+ selectee.selected = false;
212
+
213
+ selectee.$element.addClass('ui-unselecting');
214
+ selectee.unselecting = true;
215
+ // selectable UNSELECTING callback
216
+ self._trigger("unselecting", event, {
217
+ unselecting: selectee.element
218
+ });
219
+ }
220
+ }
221
+ }
222
+ });
223
+
224
+ return false;
225
+ },
226
+
227
+ _mouseStop: function(event) {
228
+ var self = this;
229
+
230
+ this.dragged = false;
231
+
232
+ var options = this.options;
233
+
234
+ $('.ui-unselecting', this.element[0]).each(function() {
235
+ var selectee = $.data(this, "selectable-item");
236
+ selectee.$element.removeClass('ui-unselecting');
237
+ selectee.unselecting = false;
238
+ selectee.startselected = false;
239
+ self._trigger("unselected", event, {
240
+ unselected: selectee.element
241
+ });
242
+ });
243
+ $('.ui-selecting', this.element[0]).each(function() {
244
+ var selectee = $.data(this, "selectable-item");
245
+ selectee.$element.removeClass('ui-selecting').addClass('ui-selected');
246
+ selectee.selecting = false;
247
+ selectee.selected = true;
248
+ selectee.startselected = true;
249
+ self._trigger("selected", event, {
250
+ selected: selectee.element
251
+ });
252
+ });
253
+ this._trigger("stop", event);
254
+
255
+ this.helper.remove();
256
+
257
+ return false;
258
+ }
259
+
260
+ });
261
+
262
+ $.extend($.ui.selectable, {
263
+ version: "1.8.10"
264
+ });
265
+
266
+ })(jQuery);
@@ -0,0 +1,682 @@
1
+ /*
2
+ * jQuery UI Slider 1.8.10
3
+ *
4
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
5
+ * Dual licensed under the MIT or GPL Version 2 licenses.
6
+ * http://jquery.org/license
7
+ *
8
+ * http://docs.jquery.com/UI/Slider
9
+ *
10
+ * Depends:
11
+ * jquery.ui.core.js
12
+ * jquery.ui.mouse.js
13
+ * jquery.ui.widget.js
14
+ */
15
+ (function( $, undefined ) {
16
+
17
+ // number of pages in a slider
18
+ // (how many times can you page up/down to go through the whole range)
19
+ var numPages = 5;
20
+
21
+ $.widget( "ui.slider", $.ui.mouse, {
22
+
23
+ widgetEventPrefix: "slide",
24
+
25
+ options: {
26
+ animate: false,
27
+ distance: 0,
28
+ max: 100,
29
+ min: 0,
30
+ orientation: "horizontal",
31
+ range: false,
32
+ step: 1,
33
+ value: 0,
34
+ values: null
35
+ },
36
+
37
+ _create: function() {
38
+ var self = this,
39
+ o = this.options;
40
+
41
+ this._keySliding = false;
42
+ this._mouseSliding = false;
43
+ this._animateOff = true;
44
+ this._handleIndex = null;
45
+ this._detectOrientation();
46
+ this._mouseInit();
47
+
48
+ this.element
49
+ .addClass( "ui-slider" +
50
+ " ui-slider-" + this.orientation +
51
+ " ui-widget" +
52
+ " ui-widget-content" +
53
+ " ui-corner-all" );
54
+
55
+ if ( o.disabled ) {
56
+ this.element.addClass( "ui-slider-disabled ui-disabled" );
57
+ }
58
+
59
+ this.range = $([]);
60
+
61
+ if ( o.range ) {
62
+ if ( o.range === true ) {
63
+ this.range = $( "<div></div>" );
64
+ if ( !o.values ) {
65
+ o.values = [ this._valueMin(), this._valueMin() ];
66
+ }
67
+ if ( o.values.length && o.values.length !== 2 ) {
68
+ o.values = [ o.values[0], o.values[0] ];
69
+ }
70
+ } else {
71
+ this.range = $( "<div></div>" );
72
+ }
73
+
74
+ this.range
75
+ .appendTo( this.element )
76
+ .addClass( "ui-slider-range" );
77
+
78
+ if ( o.range === "min" || o.range === "max" ) {
79
+ this.range.addClass( "ui-slider-range-" + o.range );
80
+ }
81
+
82
+ // note: this isn't the most fittingly semantic framework class for this element,
83
+ // but worked best visually with a variety of themes
84
+ this.range.addClass( "ui-widget-header" );
85
+ }
86
+
87
+ if ( $( ".ui-slider-handle", this.element ).length === 0 ) {
88
+ $( "<a href='#'></a>" )
89
+ .appendTo( this.element )
90
+ .addClass( "ui-slider-handle" );
91
+ }
92
+
93
+ if ( o.values && o.values.length ) {
94
+ while ( $(".ui-slider-handle", this.element).length < o.values.length ) {
95
+ $( "<a href='#'></a>" )
96
+ .appendTo( this.element )
97
+ .addClass( "ui-slider-handle" );
98
+ }
99
+ }
100
+
101
+ this.handles = $( ".ui-slider-handle", this.element )
102
+ .addClass( "ui-state-default" +
103
+ " ui-corner-all" );
104
+
105
+ this.handle = this.handles.eq( 0 );
106
+
107
+ this.handles.add( this.range ).filter( "a" )
108
+ .click(function( event ) {
109
+ event.preventDefault();
110
+ })
111
+ .hover(function() {
112
+ if ( !o.disabled ) {
113
+ $( this ).addClass( "ui-state-hover" );
114
+ }
115
+ }, function() {
116
+ $( this ).removeClass( "ui-state-hover" );
117
+ })
118
+ .focus(function() {
119
+ if ( !o.disabled ) {
120
+ $( ".ui-slider .ui-state-focus" ).removeClass( "ui-state-focus" );
121
+ $( this ).addClass( "ui-state-focus" );
122
+ } else {
123
+ $( this ).blur();
124
+ }
125
+ })
126
+ .blur(function() {
127
+ $( this ).removeClass( "ui-state-focus" );
128
+ });
129
+
130
+ this.handles.each(function( i ) {
131
+ $( this ).data( "index.ui-slider-handle", i );
132
+ });
133
+
134
+ this.handles
135
+ .keydown(function( event ) {
136
+ var ret = true,
137
+ index = $( this ).data( "index.ui-slider-handle" ),
138
+ allowed,
139
+ curVal,
140
+ newVal,
141
+ step;
142
+
143
+ if ( self.options.disabled ) {
144
+ return;
145
+ }
146
+
147
+ switch ( event.keyCode ) {
148
+ case $.ui.keyCode.HOME:
149
+ case $.ui.keyCode.END:
150
+ case $.ui.keyCode.PAGE_UP:
151
+ case $.ui.keyCode.PAGE_DOWN:
152
+ case $.ui.keyCode.UP:
153
+ case $.ui.keyCode.RIGHT:
154
+ case $.ui.keyCode.DOWN:
155
+ case $.ui.keyCode.LEFT:
156
+ ret = false;
157
+ if ( !self._keySliding ) {
158
+ self._keySliding = true;
159
+ $( this ).addClass( "ui-state-active" );
160
+ allowed = self._start( event, index );
161
+ if ( allowed === false ) {
162
+ return;
163
+ }
164
+ }
165
+ break;
166
+ }
167
+
168
+ step = self.options.step;
169
+ if ( self.options.values && self.options.values.length ) {
170
+ curVal = newVal = self.values( index );
171
+ } else {
172
+ curVal = newVal = self.value();
173
+ }
174
+
175
+ switch ( event.keyCode ) {
176
+ case $.ui.keyCode.HOME:
177
+ newVal = self._valueMin();
178
+ break;
179
+ case $.ui.keyCode.END:
180
+ newVal = self._valueMax();
181
+ break;
182
+ case $.ui.keyCode.PAGE_UP:
183
+ newVal = self._trimAlignValue( curVal + ( (self._valueMax() - self._valueMin()) / numPages ) );
184
+ break;
185
+ case $.ui.keyCode.PAGE_DOWN:
186
+ newVal = self._trimAlignValue( curVal - ( (self._valueMax() - self._valueMin()) / numPages ) );
187
+ break;
188
+ case $.ui.keyCode.UP:
189
+ case $.ui.keyCode.RIGHT:
190
+ if ( curVal === self._valueMax() ) {
191
+ return;
192
+ }
193
+ newVal = self._trimAlignValue( curVal + step );
194
+ break;
195
+ case $.ui.keyCode.DOWN:
196
+ case $.ui.keyCode.LEFT:
197
+ if ( curVal === self._valueMin() ) {
198
+ return;
199
+ }
200
+ newVal = self._trimAlignValue( curVal - step );
201
+ break;
202
+ }
203
+
204
+ self._slide( event, index, newVal );
205
+
206
+ return ret;
207
+
208
+ })
209
+ .keyup(function( event ) {
210
+ var index = $( this ).data( "index.ui-slider-handle" );
211
+
212
+ if ( self._keySliding ) {
213
+ self._keySliding = false;
214
+ self._stop( event, index );
215
+ self._change( event, index );
216
+ $( this ).removeClass( "ui-state-active" );
217
+ }
218
+
219
+ });
220
+
221
+ this._refreshValue();
222
+
223
+ this._animateOff = false;
224
+ },
225
+
226
+ destroy: function() {
227
+ this.handles.remove();
228
+ this.range.remove();
229
+
230
+ this.element
231
+ .removeClass( "ui-slider" +
232
+ " ui-slider-horizontal" +
233
+ " ui-slider-vertical" +
234
+ " ui-slider-disabled" +
235
+ " ui-widget" +
236
+ " ui-widget-content" +
237
+ " ui-corner-all" )
238
+ .removeData( "slider" )
239
+ .unbind( ".slider" );
240
+
241
+ this._mouseDestroy();
242
+
243
+ return this;
244
+ },
245
+
246
+ _mouseCapture: function( event ) {
247
+ var o = this.options,
248
+ position,
249
+ normValue,
250
+ distance,
251
+ closestHandle,
252
+ self,
253
+ index,
254
+ allowed,
255
+ offset,
256
+ mouseOverHandle;
257
+
258
+ if ( o.disabled ) {
259
+ return false;
260
+ }
261
+
262
+ this.elementSize = {
263
+ width: this.element.outerWidth(),
264
+ height: this.element.outerHeight()
265
+ };
266
+ this.elementOffset = this.element.offset();
267
+
268
+ position = { x: event.pageX, y: event.pageY };
269
+ normValue = this._normValueFromMouse( position );
270
+ distance = this._valueMax() - this._valueMin() + 1;
271
+ self = this;
272
+ this.handles.each(function( i ) {
273
+ var thisDistance = Math.abs( normValue - self.values(i) );
274
+ if ( distance > thisDistance ) {
275
+ distance = thisDistance;
276
+ closestHandle = $( this );
277
+ index = i;
278
+ }
279
+ });
280
+
281
+ // workaround for bug #3736 (if both handles of a range are at 0,
282
+ // the first is always used as the one with least distance,
283
+ // and moving it is obviously prevented by preventing negative ranges)
284
+ if( o.range === true && this.values(1) === o.min ) {
285
+ index += 1;
286
+ closestHandle = $( this.handles[index] );
287
+ }
288
+
289
+ allowed = this._start( event, index );
290
+ if ( allowed === false ) {
291
+ return false;
292
+ }
293
+ this._mouseSliding = true;
294
+
295
+ self._handleIndex = index;
296
+
297
+ closestHandle
298
+ .addClass( "ui-state-active" )
299
+ .focus();
300
+
301
+ offset = closestHandle.offset();
302
+ mouseOverHandle = !$( event.target ).parents().andSelf().is( ".ui-slider-handle" );
303
+ this._clickOffset = mouseOverHandle ? { left: 0, top: 0 } : {
304
+ left: event.pageX - offset.left - ( closestHandle.width() / 2 ),
305
+ top: event.pageY - offset.top -
306
+ ( closestHandle.height() / 2 ) -
307
+ ( parseInt( closestHandle.css("borderTopWidth"), 10 ) || 0 ) -
308
+ ( parseInt( closestHandle.css("borderBottomWidth"), 10 ) || 0) +
309
+ ( parseInt( closestHandle.css("marginTop"), 10 ) || 0)
310
+ };
311
+
312
+ if ( !this.handles.hasClass( "ui-state-hover" ) ) {
313
+ this._slide( event, index, normValue );
314
+ }
315
+ this._animateOff = true;
316
+ return true;
317
+ },
318
+
319
+ _mouseStart: function( event ) {
320
+ return true;
321
+ },
322
+
323
+ _mouseDrag: function( event ) {
324
+ var position = { x: event.pageX, y: event.pageY },
325
+ normValue = this._normValueFromMouse( position );
326
+
327
+ this._slide( event, this._handleIndex, normValue );
328
+
329
+ return false;
330
+ },
331
+
332
+ _mouseStop: function( event ) {
333
+ this.handles.removeClass( "ui-state-active" );
334
+ this._mouseSliding = false;
335
+
336
+ this._stop( event, this._handleIndex );
337
+ this._change( event, this._handleIndex );
338
+
339
+ this._handleIndex = null;
340
+ this._clickOffset = null;
341
+ this._animateOff = false;
342
+
343
+ return false;
344
+ },
345
+
346
+ _detectOrientation: function() {
347
+ this.orientation = ( this.options.orientation === "vertical" ) ? "vertical" : "horizontal";
348
+ },
349
+
350
+ _normValueFromMouse: function( position ) {
351
+ var pixelTotal,
352
+ pixelMouse,
353
+ percentMouse,
354
+ valueTotal,
355
+ valueMouse;
356
+
357
+ if ( this.orientation === "horizontal" ) {
358
+ pixelTotal = this.elementSize.width;
359
+ pixelMouse = position.x - this.elementOffset.left - ( this._clickOffset ? this._clickOffset.left : 0 );
360
+ } else {
361
+ pixelTotal = this.elementSize.height;
362
+ pixelMouse = position.y - this.elementOffset.top - ( this._clickOffset ? this._clickOffset.top : 0 );
363
+ }
364
+
365
+ percentMouse = ( pixelMouse / pixelTotal );
366
+ if ( percentMouse > 1 ) {
367
+ percentMouse = 1;
368
+ }
369
+ if ( percentMouse < 0 ) {
370
+ percentMouse = 0;
371
+ }
372
+ if ( this.orientation === "vertical" ) {
373
+ percentMouse = 1 - percentMouse;
374
+ }
375
+
376
+ valueTotal = this._valueMax() - this._valueMin();
377
+ valueMouse = this._valueMin() + percentMouse * valueTotal;
378
+
379
+ return this._trimAlignValue( valueMouse );
380
+ },
381
+
382
+ _start: function( event, index ) {
383
+ var uiHash = {
384
+ handle: this.handles[ index ],
385
+ value: this.value()
386
+ };
387
+ if ( this.options.values && this.options.values.length ) {
388
+ uiHash.value = this.values( index );
389
+ uiHash.values = this.values();
390
+ }
391
+ return this._trigger( "start", event, uiHash );
392
+ },
393
+
394
+ _slide: function( event, index, newVal ) {
395
+ var otherVal,
396
+ newValues,
397
+ allowed;
398
+
399
+ if ( this.options.values && this.options.values.length ) {
400
+ otherVal = this.values( index ? 0 : 1 );
401
+
402
+ if ( ( this.options.values.length === 2 && this.options.range === true ) &&
403
+ ( ( index === 0 && newVal > otherVal) || ( index === 1 && newVal < otherVal ) )
404
+ ) {
405
+ newVal = otherVal;
406
+ }
407
+
408
+ if ( newVal !== this.values( index ) ) {
409
+ newValues = this.values();
410
+ newValues[ index ] = newVal;
411
+ // A slide can be canceled by returning false from the slide callback
412
+ allowed = this._trigger( "slide", event, {
413
+ handle: this.handles[ index ],
414
+ value: newVal,
415
+ values: newValues
416
+ } );
417
+ otherVal = this.values( index ? 0 : 1 );
418
+ if ( allowed !== false ) {
419
+ this.values( index, newVal, true );
420
+ }
421
+ }
422
+ } else {
423
+ if ( newVal !== this.value() ) {
424
+ // A slide can be canceled by returning false from the slide callback
425
+ allowed = this._trigger( "slide", event, {
426
+ handle: this.handles[ index ],
427
+ value: newVal
428
+ } );
429
+ if ( allowed !== false ) {
430
+ this.value( newVal );
431
+ }
432
+ }
433
+ }
434
+ },
435
+
436
+ _stop: function( event, index ) {
437
+ var uiHash = {
438
+ handle: this.handles[ index ],
439
+ value: this.value()
440
+ };
441
+ if ( this.options.values && this.options.values.length ) {
442
+ uiHash.value = this.values( index );
443
+ uiHash.values = this.values();
444
+ }
445
+
446
+ this._trigger( "stop", event, uiHash );
447
+ },
448
+
449
+ _change: function( event, index ) {
450
+ if ( !this._keySliding && !this._mouseSliding ) {
451
+ var uiHash = {
452
+ handle: this.handles[ index ],
453
+ value: this.value()
454
+ };
455
+ if ( this.options.values && this.options.values.length ) {
456
+ uiHash.value = this.values( index );
457
+ uiHash.values = this.values();
458
+ }
459
+
460
+ this._trigger( "change", event, uiHash );
461
+ }
462
+ },
463
+
464
+ value: function( newValue ) {
465
+ if ( arguments.length ) {
466
+ this.options.value = this._trimAlignValue( newValue );
467
+ this._refreshValue();
468
+ this._change( null, 0 );
469
+ }
470
+
471
+ return this._value();
472
+ },
473
+
474
+ values: function( index, newValue ) {
475
+ var vals,
476
+ newValues,
477
+ i;
478
+
479
+ if ( arguments.length > 1 ) {
480
+ this.options.values[ index ] = this._trimAlignValue( newValue );
481
+ this._refreshValue();
482
+ this._change( null, index );
483
+ }
484
+
485
+ if ( arguments.length ) {
486
+ if ( $.isArray( arguments[ 0 ] ) ) {
487
+ vals = this.options.values;
488
+ newValues = arguments[ 0 ];
489
+ for ( i = 0; i < vals.length; i += 1 ) {
490
+ vals[ i ] = this._trimAlignValue( newValues[ i ] );
491
+ this._change( null, i );
492
+ }
493
+ this._refreshValue();
494
+ } else {
495
+ if ( this.options.values && this.options.values.length ) {
496
+ return this._values( index );
497
+ } else {
498
+ return this.value();
499
+ }
500
+ }
501
+ } else {
502
+ return this._values();
503
+ }
504
+ },
505
+
506
+ _setOption: function( key, value ) {
507
+ var i,
508
+ valsLength = 0;
509
+
510
+ if ( $.isArray( this.options.values ) ) {
511
+ valsLength = this.options.values.length;
512
+ }
513
+
514
+ $.Widget.prototype._setOption.apply( this, arguments );
515
+
516
+ switch ( key ) {
517
+ case "disabled":
518
+ if ( value ) {
519
+ this.handles.filter( ".ui-state-focus" ).blur();
520
+ this.handles.removeClass( "ui-state-hover" );
521
+ this.handles.attr( "disabled", "disabled" );
522
+ this.element.addClass( "ui-disabled" );
523
+ } else {
524
+ this.handles.removeAttr( "disabled" );
525
+ this.element.removeClass( "ui-disabled" );
526
+ }
527
+ break;
528
+ case "orientation":
529
+ this._detectOrientation();
530
+ this.element
531
+ .removeClass( "ui-slider-horizontal ui-slider-vertical" )
532
+ .addClass( "ui-slider-" + this.orientation );
533
+ this._refreshValue();
534
+ break;
535
+ case "value":
536
+ this._animateOff = true;
537
+ this._refreshValue();
538
+ this._change( null, 0 );
539
+ this._animateOff = false;
540
+ break;
541
+ case "values":
542
+ this._animateOff = true;
543
+ this._refreshValue();
544
+ for ( i = 0; i < valsLength; i += 1 ) {
545
+ this._change( null, i );
546
+ }
547
+ this._animateOff = false;
548
+ break;
549
+ }
550
+ },
551
+
552
+ //internal value getter
553
+ // _value() returns value trimmed by min and max, aligned by step
554
+ _value: function() {
555
+ var val = this.options.value;
556
+ val = this._trimAlignValue( val );
557
+
558
+ return val;
559
+ },
560
+
561
+ //internal values getter
562
+ // _values() returns array of values trimmed by min and max, aligned by step
563
+ // _values( index ) returns single value trimmed by min and max, aligned by step
564
+ _values: function( index ) {
565
+ var val,
566
+ vals,
567
+ i;
568
+
569
+ if ( arguments.length ) {
570
+ val = this.options.values[ index ];
571
+ val = this._trimAlignValue( val );
572
+
573
+ return val;
574
+ } else {
575
+ // .slice() creates a copy of the array
576
+ // this copy gets trimmed by min and max and then returned
577
+ vals = this.options.values.slice();
578
+ for ( i = 0; i < vals.length; i+= 1) {
579
+ vals[ i ] = this._trimAlignValue( vals[ i ] );
580
+ }
581
+
582
+ return vals;
583
+ }
584
+ },
585
+
586
+ // returns the step-aligned value that val is closest to, between (inclusive) min and max
587
+ _trimAlignValue: function( val ) {
588
+ if ( val <= this._valueMin() ) {
589
+ return this._valueMin();
590
+ }
591
+ if ( val >= this._valueMax() ) {
592
+ return this._valueMax();
593
+ }
594
+ var step = ( this.options.step > 0 ) ? this.options.step : 1,
595
+ valModStep = (val - this._valueMin()) % step;
596
+ alignValue = val - valModStep;
597
+
598
+ if ( Math.abs(valModStep) * 2 >= step ) {
599
+ alignValue += ( valModStep > 0 ) ? step : ( -step );
600
+ }
601
+
602
+ // Since JavaScript has problems with large floats, round
603
+ // the final value to 5 digits after the decimal point (see #4124)
604
+ return parseFloat( alignValue.toFixed(5) );
605
+ },
606
+
607
+ _valueMin: function() {
608
+ return this.options.min;
609
+ },
610
+
611
+ _valueMax: function() {
612
+ return this.options.max;
613
+ },
614
+
615
+ _refreshValue: function() {
616
+ var oRange = this.options.range,
617
+ o = this.options,
618
+ self = this,
619
+ animate = ( !this._animateOff ) ? o.animate : false,
620
+ valPercent,
621
+ _set = {},
622
+ lastValPercent,
623
+ value,
624
+ valueMin,
625
+ valueMax;
626
+
627
+ if ( this.options.values && this.options.values.length ) {
628
+ this.handles.each(function( i, j ) {
629
+ valPercent = ( self.values(i) - self._valueMin() ) / ( self._valueMax() - self._valueMin() ) * 100;
630
+ _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
631
+ $( this ).stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
632
+ if ( self.options.range === true ) {
633
+ if ( self.orientation === "horizontal" ) {
634
+ if ( i === 0 ) {
635
+ self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { left: valPercent + "%" }, o.animate );
636
+ }
637
+ if ( i === 1 ) {
638
+ self.range[ animate ? "animate" : "css" ]( { width: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
639
+ }
640
+ } else {
641
+ if ( i === 0 ) {
642
+ self.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { bottom: ( valPercent ) + "%" }, o.animate );
643
+ }
644
+ if ( i === 1 ) {
645
+ self.range[ animate ? "animate" : "css" ]( { height: ( valPercent - lastValPercent ) + "%" }, { queue: false, duration: o.animate } );
646
+ }
647
+ }
648
+ }
649
+ lastValPercent = valPercent;
650
+ });
651
+ } else {
652
+ value = this.value();
653
+ valueMin = this._valueMin();
654
+ valueMax = this._valueMax();
655
+ valPercent = ( valueMax !== valueMin ) ?
656
+ ( value - valueMin ) / ( valueMax - valueMin ) * 100 :
657
+ 0;
658
+ _set[ self.orientation === "horizontal" ? "left" : "bottom" ] = valPercent + "%";
659
+ this.handle.stop( 1, 1 )[ animate ? "animate" : "css" ]( _set, o.animate );
660
+
661
+ if ( oRange === "min" && this.orientation === "horizontal" ) {
662
+ this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { width: valPercent + "%" }, o.animate );
663
+ }
664
+ if ( oRange === "max" && this.orientation === "horizontal" ) {
665
+ this.range[ animate ? "animate" : "css" ]( { width: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
666
+ }
667
+ if ( oRange === "min" && this.orientation === "vertical" ) {
668
+ this.range.stop( 1, 1 )[ animate ? "animate" : "css" ]( { height: valPercent + "%" }, o.animate );
669
+ }
670
+ if ( oRange === "max" && this.orientation === "vertical" ) {
671
+ this.range[ animate ? "animate" : "css" ]( { height: ( 100 - valPercent ) + "%" }, { queue: false, duration: o.animate } );
672
+ }
673
+ }
674
+ }
675
+
676
+ });
677
+
678
+ $.extend( $.ui.slider, {
679
+ version: "1.8.10"
680
+ });
681
+
682
+ }(jQuery));