alchemy 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (620) hide show
  1. data/LICENSE +20 -0
  2. data/README.md +6 -0
  3. data/Rakefile +21 -0
  4. data/app/assets/fonts/alchemy/LiberationSans-Bold-webfont.eot +0 -0
  5. data/app/assets/fonts/alchemy/LiberationSans-Bold-webfont.svg +154 -0
  6. data/app/assets/fonts/alchemy/LiberationSans-Bold-webfont.ttf +0 -0
  7. data/app/assets/fonts/alchemy/LiberationSans-Bold-webfont.woff +0 -0
  8. data/app/assets/fonts/alchemy/LiberationSans-BoldItalic-webfont.eot +0 -0
  9. data/app/assets/fonts/alchemy/LiberationSans-BoldItalic-webfont.svg +154 -0
  10. data/app/assets/fonts/alchemy/LiberationSans-BoldItalic-webfont.ttf +0 -0
  11. data/app/assets/fonts/alchemy/LiberationSans-BoldItalic-webfont.woff +0 -0
  12. data/app/assets/fonts/alchemy/LiberationSans-Italic-webfont.eot +0 -0
  13. data/app/assets/fonts/alchemy/LiberationSans-Italic-webfont.svg +154 -0
  14. data/app/assets/fonts/alchemy/LiberationSans-Italic-webfont.ttf +0 -0
  15. data/app/assets/fonts/alchemy/LiberationSans-Italic-webfont.woff +0 -0
  16. data/app/assets/fonts/alchemy/LiberationSans-Regular-webfont.eot +0 -0
  17. data/app/assets/fonts/alchemy/LiberationSans-Regular-webfont.svg +154 -0
  18. data/app/assets/fonts/alchemy/LiberationSans-Regular-webfont.ttf +0 -0
  19. data/app/assets/fonts/alchemy/LiberationSans-Regular-webfont.woff +0 -0
  20. data/app/assets/fonts/alchemy/Red Hat Liberation License.txt +78 -0
  21. data/app/assets/fonts/alchemy/overpass_bold-web.eot +0 -0
  22. data/app/assets/fonts/alchemy/overpass_bold-web.svg +470 -0
  23. data/app/assets/fonts/alchemy/overpass_bold-web.ttf +0 -0
  24. data/app/assets/fonts/alchemy/overpass_bold-web.woff +0 -0
  25. data/app/assets/fonts/alchemy/overpass_regular-web.eot +0 -0
  26. data/app/assets/fonts/alchemy/overpass_regular-web.svg +470 -0
  27. data/app/assets/fonts/alchemy/overpass_regular-web.ttf +0 -0
  28. data/app/assets/fonts/alchemy/overpass_regular-web.woff +0 -0
  29. data/app/assets/images/alchemy/icons/action-icons.png +0 -0
  30. data/app/assets/images/alchemy/icons/arrow_icon.png +0 -0
  31. data/app/assets/images/alchemy/icons/chosen-sprite.png +0 -0
  32. data/app/assets/images/alchemy/icons/error_icon.png +0 -0
  33. data/app/assets/images/alchemy/icons/objects.png +0 -0
  34. data/app/assets/images/alchemy/icons/spinner.gif +0 -0
  35. data/app/assets/images/alchemy/icons/spinner_head.gif +0 -0
  36. data/app/assets/images/alchemy/icons/success_icon.png +0 -0
  37. data/app/assets/images/alchemy/icons/warning_icon.png +0 -0
  38. data/app/assets/javascripts/alchemy/flash_messages.js +12 -0
  39. data/app/assets/javascripts/alchemy/forms.js +25 -0
  40. data/app/assets/javascripts/alchemy/i18n.js +36 -0
  41. data/app/assets/javascripts/alchemy/login.js +130 -0
  42. data/app/assets/javascripts/alchemy/password.js +99 -0
  43. data/app/assets/stylesheets/alchemy/components/_chosen.scss +423 -0
  44. data/app/assets/stylesheets/alchemy/components/_content.scss +58 -0
  45. data/app/assets/stylesheets/alchemy/components/_helpers.scss +38 -0
  46. data/app/assets/stylesheets/alchemy/components/_media.scss +49 -0
  47. data/app/assets/stylesheets/alchemy/components/_normalize.scss +448 -0
  48. data/app/assets/stylesheets/alchemy/components/_shared.scss +18 -0
  49. data/app/assets/stylesheets/alchemy/components/buttons/_buttons.scss +241 -0
  50. data/app/assets/stylesheets/alchemy/components/buttons/_buttons_vars.scss +10 -0
  51. data/app/assets/stylesheets/alchemy/components/flash_messages/_flash_messages.scss +93 -0
  52. data/app/assets/stylesheets/alchemy/components/flash_messages/_flash_messages_vars.scss +3 -0
  53. data/app/assets/stylesheets/alchemy/components/fonts/_liberation.scss +44 -0
  54. data/app/assets/stylesheets/alchemy/components/fonts/_overpass.scss +24 -0
  55. data/app/assets/stylesheets/alchemy/components/footer/_footer.scss +53 -0
  56. data/app/assets/stylesheets/alchemy/components/footer/_footer_vars.scss +4 -0
  57. data/app/assets/stylesheets/alchemy/components/forms/_forms.scss +536 -0
  58. data/app/assets/stylesheets/alchemy/components/forms/_forms_ie.scss +45 -0
  59. data/app/assets/stylesheets/alchemy/components/forms/_forms_mixins.scss +18 -0
  60. data/app/assets/stylesheets/alchemy/components/forms/_forms_responsive.scss +161 -0
  61. data/app/assets/stylesheets/alchemy/components/forms/_forms_vars.scss +25 -0
  62. data/app/assets/stylesheets/alchemy/components/header/_header.scss +214 -0
  63. data/app/assets/stylesheets/alchemy/components/header/_header_vars.scss +11 -0
  64. data/app/assets/stylesheets/alchemy/components/login/_login.scss +169 -0
  65. data/app/assets/stylesheets/alchemy/components/login/_login_mixins.scss +7 -0
  66. data/app/assets/stylesheets/alchemy/components/login/_login_vars.scss +19 -0
  67. data/app/assets/stylesheets/alchemy/components/sprites/_sprites.scss +110 -0
  68. data/app/assets/stylesheets/alchemy/components/sprites/_sprites_mixins.scss +9 -0
  69. data/app/assets/stylesheets/alchemy/components/text/_text.scss +30 -0
  70. data/app/assets/stylesheets/alchemy/components/text/_text_vars.scss +1 -0
  71. data/app/assets/stylesheets/alchemy/composites/content_elements.scss +6 -0
  72. data/app/assets/stylesheets/alchemy/composites/login.scss +9 -0
  73. data/app/assets/stylesheets/alchemy/composites/shell.scss +4 -0
  74. data/app/assets/stylesheets/alchemy/partials/_base.scss +8 -0
  75. data/app/assets/stylesheets/alchemy/partials/_colors.scss +99 -0
  76. data/app/assets/stylesheets/alchemy/partials/_mixins.scss +24 -0
  77. data/app/assets/stylesheets/alchemy/partials/_vars.scss +31 -0
  78. data/app/helpers/alchemy/gettext_translations.rb +27 -0
  79. data/app/helpers/alchemy/layout_helper.rb +19 -0
  80. data/app/helpers/alchemy/rails_translations.rb +21 -0
  81. data/app/helpers/alchemy/translation_helper.rb +19 -0
  82. data/app/views/alchemy/layouts/_base.haml +20 -0
  83. data/app/views/alchemy/layouts/_change_password_layout.html.haml +20 -0
  84. data/app/views/alchemy/layouts/_common_i18n.haml +4 -0
  85. data/app/views/alchemy/layouts/_header_layout.haml +13 -0
  86. data/app/views/alchemy/layouts/_login_layout.html.haml +58 -0
  87. data/app/views/alchemy/layouts/_user_session_layout.haml +17 -0
  88. data/app/views/alchemy/layouts/shell_layout.haml +10 -0
  89. data/lib/alchemy.rb +6 -0
  90. data/lib/alchemy/version.rb +3 -0
  91. data/test/alchemy_test.rb +7 -0
  92. data/test/test_helper.rb +9 -0
  93. data/vendor/assets/javascripts/alchemy/html5shiv.js +298 -0
  94. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  95. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  96. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png +0 -0
  97. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png +0 -0
  98. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png +0 -0
  99. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png +0 -0
  100. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png +0 -0
  101. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  102. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_8f8f8f_256x240.png +0 -0
  103. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_97baed_256x240.png +0 -0
  104. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/images/ui-icons_cd0a0a_256x240.png +0 -0
  105. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/css/custom-theme/jquery-ui-1.8.11.custom.css +573 -0
  106. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/AUTHORS.txt +30 -0
  107. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/GPL-LICENSE.txt +278 -0
  108. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/MIT-LICENSE.txt +25 -0
  109. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/collapsible.html +57 -0
  110. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/custom-icons.html +69 -0
  111. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/default.html +85 -0
  112. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/fillspace.html +76 -0
  113. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/hoverintent.html +134 -0
  114. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/index.html +25 -0
  115. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/mouseover.html +57 -0
  116. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/no-auto-height.html +60 -0
  117. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/accordion/sortable.html +83 -0
  118. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/default.html +52 -0
  119. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/addClass/index.html +18 -0
  120. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/animate/default.html +61 -0
  121. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/animate/index.html +18 -0
  122. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/categories.html +71 -0
  123. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/combobox.html +171 -0
  124. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/custom-data.html +95 -0
  125. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/default.html +64 -0
  126. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/folding.html +62 -0
  127. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jquery_32x32.png +0 -0
  128. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/jqueryui_32x32.png +0 -0
  129. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/sizzlejs_32x32.png +0 -0
  130. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/transparent_1x1.png +0 -0
  131. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/images/ui-anim_basic_16x16.gif +0 -0
  132. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/index.html +27 -0
  133. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/london.xml +114 -0
  134. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/maxheight.html +79 -0
  135. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple-remote.html +84 -0
  136. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/multiple.html +99 -0
  137. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-jsonp.html +86 -0
  138. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote-with-cache.html +59 -0
  139. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/remote.html +59 -0
  140. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/search.php +640 -0
  141. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/autocomplete/xml.html +72 -0
  142. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/checkbox.html +44 -0
  143. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/default.html +38 -0
  144. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/icons.html +56 -0
  145. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/index.html +23 -0
  146. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/radio.html +39 -0
  147. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/splitbutton.html +55 -0
  148. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/button/toolbar.html +120 -0
  149. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/alt-field.html +36 -0
  150. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/animation.html +58 -0
  151. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/buttonbar.html +35 -0
  152. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-formats.html +47 -0
  153. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/date-range.html +49 -0
  154. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/default.html +33 -0
  155. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/dropdown-month-year.html +36 -0
  156. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/icon-trigger.html +37 -0
  157. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/images/calendar.gif +0 -0
  158. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/index.html +31 -0
  159. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/inline.html +33 -0
  160. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/localization.html +162 -0
  161. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/min-max.html +33 -0
  162. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/multiple-calendars.html +36 -0
  163. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/other-months.html +37 -0
  164. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/datepicker/show-week.html +39 -0
  165. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/demos.css +334 -0
  166. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/animated.html +56 -0
  167. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/default.html +54 -0
  168. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/index.html +23 -0
  169. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-confirmation.html +69 -0
  170. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-form.html +167 -0
  171. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal-message.html +71 -0
  172. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/dialog/modal.html +60 -0
  173. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/constrain-movement.html +69 -0
  174. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/cursor-style.html +49 -0
  175. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/default.html +39 -0
  176. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/delay-start.html +45 -0
  177. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/events.html +77 -0
  178. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/handle.html +50 -0
  179. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/index.html +28 -0
  180. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/revert.html +44 -0
  181. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/scroll.html +51 -0
  182. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/snap-to.html +68 -0
  183. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/sortable.html +57 -0
  184. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/draggable/visual-feedback.html +77 -0
  185. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/accepted-elements.html +60 -0
  186. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/default.html +53 -0
  187. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras.jpg +0 -0
  188. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2.jpg +0 -0
  189. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras2_min.jpg +0 -0
  190. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3.jpg +0 -0
  191. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras3_min.jpg +0 -0
  192. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4.jpg +0 -0
  193. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras4_min.jpg +0 -0
  194. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/images/high_tatras_min.jpg +0 -0
  195. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/index.html +24 -0
  196. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/photo-manager.html +184 -0
  197. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/propagation.html +80 -0
  198. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/revert.html +61 -0
  199. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/shopping-cart.html +101 -0
  200. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/droppable/visual-feedback.html +78 -0
  201. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/effect/default.html +109 -0
  202. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/effect/easing.html +108 -0
  203. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/effect/index.html +19 -0
  204. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/hide/default.html +102 -0
  205. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/hide/index.html +18 -0
  206. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/calendar.gif +0 -0
  207. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on-tile.gif +0 -0
  208. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-config-on.gif +0 -0
  209. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-closed.gif +0 -0
  210. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/demo-spindown-open.gif +0 -0
  211. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/icon-docs-info.gif +0 -0
  212. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/images/pbar-ani.gif +0 -0
  213. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/index.html +321 -0
  214. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/cycler.html +122 -0
  215. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/default.html +153 -0
  216. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/earth.jpg +0 -0
  217. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/flight.jpg +0 -0
  218. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/images/rocket.jpg +0 -0
  219. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/position/index.html +19 -0
  220. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/animated.html +44 -0
  221. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/default.html +35 -0
  222. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/images/pbar-ani.gif +0 -0
  223. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/index.html +20 -0
  224. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/progressbar/resize.html +40 -0
  225. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/default.html +52 -0
  226. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/removeClass/index.html +18 -0
  227. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/animate.html +43 -0
  228. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/aspect-ratio.html +42 -0
  229. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/constrain-area.html +47 -0
  230. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/default.html +40 -0
  231. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/delay-start.html +52 -0
  232. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/helper.html +43 -0
  233. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/index.html +28 -0
  234. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/max-min.html +45 -0
  235. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/snap-to-grid.html +42 -0
  236. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/synchronous-resize.html +49 -0
  237. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/textarea.html +41 -0
  238. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/resizable/visual-feedback.html +43 -0
  239. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/default.html +50 -0
  240. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/display-grid.html +55 -0
  241. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/index.html +20 -0
  242. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/selectable/serialize.html +61 -0
  243. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/show/default.html +104 -0
  244. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/show/index.html +18 -0
  245. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/colorpicker.html +95 -0
  246. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/default.html +37 -0
  247. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/hotelrooms.html +59 -0
  248. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/index.html +29 -0
  249. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/multiple-vertical.html +77 -0
  250. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range-vertical.html +51 -0
  251. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/range.html +52 -0
  252. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemax.html +50 -0
  253. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/rangemin.html +51 -0
  254. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/side-scroll.html +140 -0
  255. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/slider-vertical.html +52 -0
  256. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/steps.html +51 -0
  257. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/slider/tabs.html +67 -0
  258. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists-through-tabs.html +78 -0
  259. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/connect-lists.html +58 -0
  260. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/default.html +51 -0
  261. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/delay-start.html +67 -0
  262. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/display-grid.html +54 -0
  263. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/empty-lists.html +69 -0
  264. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/index.html +26 -0
  265. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/items.html +70 -0
  266. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/placeholder.html +56 -0
  267. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/sortable/portlets.html +96 -0
  268. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/default.html +47 -0
  269. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/switchClass/index.html +18 -0
  270. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax.html +53 -0
  271. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content1.html +4 -0
  272. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content2.html +4 -0
  273. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content3-slow.php +7 -0
  274. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/ajax/content4-broken.php +3 -0
  275. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/bottom.html +60 -0
  276. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/collapsible.html +55 -0
  277. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/cookie.html +56 -0
  278. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/default.html +49 -0
  279. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/index.html +25 -0
  280. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/manipulation.html +124 -0
  281. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/mouseover.html +53 -0
  282. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/sortable.html +58 -0
  283. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/tabs/vertical.html +61 -0
  284. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/default.html +94 -0
  285. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/toggle/index.html +18 -0
  286. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/default.html +46 -0
  287. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/demos/toggleClass/index.html +18 -0
  288. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/accordion.html +1017 -0
  289. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/addClass.html +109 -0
  290. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/animate.html +78 -0
  291. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/autocomplete.html +833 -0
  292. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/button.html +500 -0
  293. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/datepicker.html +2570 -0
  294. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/dialog.html +1698 -0
  295. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/draggable.html +1577 -0
  296. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/droppable.html +829 -0
  297. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/effect.html +143 -0
  298. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/hide.html +144 -0
  299. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/position.html +227 -0
  300. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/progressbar.html +460 -0
  301. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/removeClass.html +113 -0
  302. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/resizable.html +1201 -0
  303. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/selectable.html +848 -0
  304. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/show.html +144 -0
  305. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/slider.html +860 -0
  306. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/sortable.html +1952 -0
  307. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/switchClass.html +129 -0
  308. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/tabs.html +1549 -0
  309. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/toggle.html +144 -0
  310. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/docs/toggleClass.html +111 -0
  311. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/external/jquery.bgiframe-2.1.2.js +39 -0
  312. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/external/jquery.cookie.js +89 -0
  313. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/external/jquery.metadata.js +122 -0
  314. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/external/qunit.css +153 -0
  315. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/external/qunit.js +1261 -0
  316. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/jquery-1.5.1.js +8316 -0
  317. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  318. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  319. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  320. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  321. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  322. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  323. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  324. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  325. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_222222_256x240.png +0 -0
  326. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_2e83ff_256x240.png +0 -0
  327. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_454545_256x240.png +0 -0
  328. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_888888_256x240.png +0 -0
  329. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/images/ui-icons_cd0a0a_256x240.png +0 -0
  330. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.accordion.css +19 -0
  331. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.all.css +11 -0
  332. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.autocomplete.css +53 -0
  333. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.base.css +11 -0
  334. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.button.css +38 -0
  335. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.core.css +41 -0
  336. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.datepicker.css +68 -0
  337. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.dialog.css +21 -0
  338. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.progressbar.css +11 -0
  339. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.resizable.css +20 -0
  340. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.selectable.css +10 -0
  341. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.slider.css +24 -0
  342. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.tabs.css +18 -0
  343. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/base/jquery.ui.theme.css +252 -0
  344. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  345. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  346. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_dadada_1x100.png +0 -0
  347. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_75_e6e6e6_1x100.png +0 -0
  348. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-hard_95_ffffff_1x100.png +0 -0
  349. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_highlight-soft_80_e0e0e0_1x100.png +0 -0
  350. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-hard_65_ffffff_1x100.png +0 -0
  351. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-bg_inset-soft_95_fef1ec_1x100.png +0 -0
  352. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_8f8f8f_256x240.png +0 -0
  353. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_97baed_256x240.png +0 -0
  354. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/images/ui-icons_cd0a0a_256x240.png +0 -0
  355. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery-ui-1.8.11.custom.css +573 -0
  356. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.accordion.css +19 -0
  357. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.all.css +11 -0
  358. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.autocomplete.css +53 -0
  359. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.base.css +11 -0
  360. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.button.css +38 -0
  361. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.core.css +41 -0
  362. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.datepicker.css +68 -0
  363. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.dialog.css +21 -0
  364. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.progressbar.css +11 -0
  365. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.resizable.css +20 -0
  366. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.selectable.css +10 -0
  367. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.slider.css +24 -0
  368. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.tabs.css +18 -0
  369. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/themes/custom-theme/jquery.ui.theme.css +254 -0
  370. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery-ui-i18n.js +1379 -0
  371. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-af.js +23 -0
  372. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar-DZ.js +23 -0
  373. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ar.js +23 -0
  374. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-az.js +23 -0
  375. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bg.js +24 -0
  376. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-bs.js +23 -0
  377. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ca.js +23 -0
  378. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-cs.js +23 -0
  379. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-da.js +23 -0
  380. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-de.js +23 -0
  381. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-el.js +23 -0
  382. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-AU.js +23 -0
  383. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-GB.js +23 -0
  384. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-en-NZ.js +23 -0
  385. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eo.js +23 -0
  386. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-es.js +23 -0
  387. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-et.js +23 -0
  388. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-eu.js +23 -0
  389. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fa.js +23 -0
  390. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fi.js +23 -0
  391. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fo.js +23 -0
  392. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr-CH.js +23 -0
  393. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-fr.js +25 -0
  394. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-gl.js +23 -0
  395. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-he.js +23 -0
  396. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hr.js +23 -0
  397. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hu.js +23 -0
  398. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-hy.js +23 -0
  399. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-id.js +23 -0
  400. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-is.js +23 -0
  401. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-it.js +23 -0
  402. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ja.js +23 -0
  403. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ko.js +23 -0
  404. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-kz.js +23 -0
  405. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lt.js +23 -0
  406. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-lv.js +23 -0
  407. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ml.js +23 -0
  408. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ms.js +23 -0
  409. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-nl.js +23 -0
  410. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-no.js +23 -0
  411. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pl.js +23 -0
  412. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt-BR.js +23 -0
  413. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-pt.js +22 -0
  414. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-rm.js +21 -0
  415. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ro.js +26 -0
  416. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ru.js +23 -0
  417. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sk.js +23 -0
  418. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sl.js +24 -0
  419. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sq.js +23 -0
  420. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr-SR.js +23 -0
  421. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sr.js +23 -0
  422. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-sv.js +23 -0
  423. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-ta.js +23 -0
  424. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-th.js +23 -0
  425. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tj.js +23 -0
  426. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-tr.js +23 -0
  427. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-uk.js +23 -0
  428. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-vi.js +23 -0
  429. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-CN.js +23 -0
  430. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-HK.js +23 -0
  431. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/i18n/jquery.ui.datepicker-zh-TW.js +23 -0
  432. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery-ui-1.8.11.custom.js +11577 -0
  433. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.blind.js +49 -0
  434. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.bounce.js +78 -0
  435. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.clip.js +54 -0
  436. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.core.js +747 -0
  437. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.drop.js +50 -0
  438. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.explode.js +79 -0
  439. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fade.js +32 -0
  440. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.fold.js +56 -0
  441. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.highlight.js +50 -0
  442. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.pulsate.js +51 -0
  443. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.scale.js +178 -0
  444. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.shake.js +57 -0
  445. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.slide.js +50 -0
  446. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.effects.transfer.js +45 -0
  447. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.accordion.js +611 -0
  448. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.autocomplete.js +612 -0
  449. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.button.js +387 -0
  450. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.core.js +308 -0
  451. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.datepicker.js +1773 -0
  452. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.dialog.js +857 -0
  453. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.draggable.js +799 -0
  454. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.droppable.js +285 -0
  455. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.mouse.js +156 -0
  456. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.position.js +252 -0
  457. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.progressbar.js +108 -0
  458. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.resizable.js +812 -0
  459. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.selectable.js +266 -0
  460. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.slider.js +682 -0
  461. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.sortable.js +1073 -0
  462. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.tabs.js +758 -0
  463. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/jquery.ui.widget.js +262 -0
  464. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.blind.min.js +14 -0
  465. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.bounce.min.js +15 -0
  466. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.clip.min.js +14 -0
  467. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.core.min.js +30 -0
  468. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.drop.min.js +14 -0
  469. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.explode.min.js +15 -0
  470. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fade.min.js +13 -0
  471. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.fold.min.js +14 -0
  472. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.highlight.min.js +14 -0
  473. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.pulsate.min.js +14 -0
  474. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.scale.min.js +20 -0
  475. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.shake.min.js +14 -0
  476. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.slide.min.js +14 -0
  477. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.effects.transfer.min.js +14 -0
  478. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.accordion.min.js +30 -0
  479. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.autocomplete.min.js +32 -0
  480. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.button.min.js +25 -0
  481. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.core.min.js +17 -0
  482. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.datepicker.min.js +82 -0
  483. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.dialog.min.js +40 -0
  484. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.draggable.min.js +50 -0
  485. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.droppable.min.js +26 -0
  486. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.mouse.min.js +17 -0
  487. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.position.min.js +16 -0
  488. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.progressbar.min.js +16 -0
  489. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.resizable.min.js +47 -0
  490. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.selectable.min.js +22 -0
  491. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.slider.min.js +33 -0
  492. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.sortable.min.js +60 -0
  493. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.tabs.min.js +35 -0
  494. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/ui/minified/jquery.ui.widget.min.js +15 -0
  495. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/development-bundle/version.txt +1 -0
  496. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/js/jquery-1.5.1.min.js +16 -0
  497. data/vendor/assets/javascripts/alchemy/jquery-ui-1.8.11.custom/js/jquery-ui-1.8.11.custom.min.js +783 -0
  498. data/vendor/assets/javascripts/alchemy/jquery/jquery-1.6.2.js +8981 -0
  499. data/vendor/assets/javascripts/alchemy/jquery/plugins/chosen.jquery.js +1003 -0
  500. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/API.txt +1201 -0
  501. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/FAQ.txt +76 -0
  502. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/LICENSE.txt +22 -0
  503. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/Makefile +9 -0
  504. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/NEWS.txt +508 -0
  505. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/PLUGINS.txt +137 -0
  506. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/README.txt +90 -0
  507. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/ajax.html +143 -0
  508. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/annotating.html +75 -0
  509. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/arrow-down.gif +0 -0
  510. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/arrow-left.gif +0 -0
  511. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/arrow-right.gif +0 -0
  512. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/arrow-up.gif +0 -0
  513. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/basic.html +38 -0
  514. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-1.json +4 -0
  515. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-2.json +4 -0
  516. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-3.json +4 -0
  517. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-4.json +4 -0
  518. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth-5.json +4 -0
  519. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-eu-gdp-growth.json +4 -0
  520. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-japan-gdp-growth.json +4 -0
  521. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/data-usa-gdp-growth.json +4 -0
  522. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/graph-types.html +75 -0
  523. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/hs-2004-27-a-large_web.jpg +0 -0
  524. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/image.html +45 -0
  525. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/index.html +44 -0
  526. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/interacting-axes.html +97 -0
  527. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/interacting.html +93 -0
  528. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/layout.css +6 -0
  529. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/multiple-axes.html +60 -0
  530. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/navigate.html +118 -0
  531. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/percentiles.html +57 -0
  532. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/pie.html +756 -0
  533. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/realtime.html +83 -0
  534. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/resize.html +61 -0
  535. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/selection.html +114 -0
  536. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/setting-options.html +61 -0
  537. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/stacking.html +77 -0
  538. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/symbols.html +49 -0
  539. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/thresholding.html +54 -0
  540. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/time.html +71 -0
  541. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/tracking.html +95 -0
  542. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/turning-series.html +98 -0
  543. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/visitors.html +90 -0
  544. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/examples/zooming.html +98 -0
  545. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/excanvas.js +1427 -0
  546. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/excanvas.min.js +1 -0
  547. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.colorhelpers.js +179 -0
  548. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.colorhelpers.min.js +1 -0
  549. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.crosshair.js +167 -0
  550. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.crosshair.min.js +1 -0
  551. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.fillbetween.js +183 -0
  552. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.fillbetween.min.js +1 -0
  553. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.image.js +238 -0
  554. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.image.min.js +1 -0
  555. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.js +2599 -0
  556. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.min.js +6 -0
  557. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.navigate.js +336 -0
  558. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.navigate.min.js +1 -0
  559. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.pie.js +750 -0
  560. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.pie.min.js +1 -0
  561. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.resize.js +60 -0
  562. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.resize.min.js +1 -0
  563. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.selection.js +344 -0
  564. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.selection.min.js +1 -0
  565. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.stack.js +184 -0
  566. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.stack.min.js +1 -0
  567. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.symbol.js +70 -0
  568. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.symbol.min.js +1 -0
  569. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.threshold.js +103 -0
  570. data/vendor/assets/javascripts/alchemy/jquery/plugins/flot-0.7/jquery.flot.threshold.min.js +1 -0
  571. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/blank.svg +3 -0
  572. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/custom_test.js +67 -0
  573. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svg.css +9 -0
  574. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svg.js +1101 -0
  575. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svg.min.js +7 -0
  576. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svg.pack.js +7 -0
  577. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svgfilter.js +396 -0
  578. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svgfilter.min.js +7 -0
  579. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svgfilter.pack.js +7 -0
  580. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svggraph.js +1337 -0
  581. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svggraph.min.js +7 -0
  582. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/jquery.svggraph.pack.js +7 -0
  583. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/lion.svg +161 -0
  584. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery-svg/test.js +714 -0
  585. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.ajaxfileupload.js +205 -0
  586. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.ba-bbq.js +1137 -0
  587. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.ba-resize.js +246 -0
  588. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.cookie.js +92 -0
  589. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.easing.1.3.js +205 -0
  590. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.fancyqueries.js +106 -0
  591. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.flash.js +288 -0
  592. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.form.js +964 -0
  593. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.hoverIntent.js +106 -0
  594. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.jeditable.ajaxupload.js +62 -0
  595. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.jeditable.js +556 -0
  596. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.jnotify.js +210 -0
  597. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.jscrollpane.js +1390 -0
  598. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.jscrollpane.min.js +11 -0
  599. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.linkHover.js +89 -0
  600. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.loadmask.min.js +10 -0
  601. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.mousewheel.js +78 -0
  602. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.multiselect.filter.js +176 -0
  603. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.multiselect.js +668 -0
  604. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.pack.js +11 -0
  605. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.periodicalupdater.js +175 -0
  606. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.sortElements.js +75 -0
  607. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.sparkline.min.js +94 -0
  608. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.text-overflow.js +60 -0
  609. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.timepickr.js +214 -0
  610. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.timers.js +142 -0
  611. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.tipsy.js +358 -0
  612. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.treeTable.js +226 -0
  613. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.trunk8.js +203 -0
  614. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.ui.multiselect.js +338 -0
  615. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.ui.totop.js +58 -0
  616. data/vendor/assets/javascripts/alchemy/jquery/plugins/jquery.uitablefilter.js +95 -0
  617. data/vendor/assets/javascripts/alchemy/jquery/plugins/ui.spinner.js +683 -0
  618. data/vendor/assets/javascripts/alchemy/rails.js +331 -0
  619. data/vendor/assets/javascripts/alchemy/underscore-1.3.1.js +999 -0
  620. metadata +683 -0
@@ -0,0 +1,153 @@
1
+ /** Font Family and Sizes */
2
+
3
+ #qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
4
+ font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial;
5
+ }
6
+
7
+ #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
8
+ #qunit-tests { font-size: smaller; }
9
+
10
+
11
+ /** Resets */
12
+
13
+ #qunit-tests, #qunit-tests li ol, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult {
14
+ margin: 0;
15
+ padding: 0;
16
+ }
17
+
18
+
19
+ /** Header */
20
+
21
+ #qunit-header {
22
+ padding: 0.5em 0 0.5em 1em;
23
+
24
+ color: #fff;
25
+ text-shadow: rgba(0, 0, 0, 0.5) 4px 4px 1px;
26
+ background-color: #0d3349;
27
+
28
+ border-radius: 15px 15px 0 0;
29
+ -moz-border-radius: 15px 15px 0 0;
30
+ -webkit-border-top-right-radius: 15px;
31
+ -webkit-border-top-left-radius: 15px;
32
+ }
33
+
34
+ #qunit-header a {
35
+ text-decoration: none;
36
+ color: white;
37
+ }
38
+
39
+ #qunit-banner {
40
+ height: 5px;
41
+ }
42
+
43
+ #qunit-testrunner-toolbar {
44
+ padding: 0em 0 0.5em 2em;
45
+ }
46
+
47
+ #qunit-userAgent {
48
+ padding: 0.5em 0 0.5em 2.5em;
49
+ background-color: #2b81af;
50
+ color: #fff;
51
+ text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
52
+ }
53
+
54
+
55
+ /** Tests: Pass/Fail */
56
+
57
+ #qunit-tests {
58
+ list-style-position: inside;
59
+ }
60
+
61
+ #qunit-tests li {
62
+ padding: 0.4em 0.5em 0.4em 2.5em;
63
+ border-bottom: 1px solid #fff;
64
+ list-style-position: inside;
65
+ }
66
+
67
+ #qunit-tests li strong {
68
+ cursor: pointer;
69
+ }
70
+
71
+ #qunit-tests li ol {
72
+ margin-top: 0.5em;
73
+ padding: 0.5em;
74
+
75
+ background-color: #fff;
76
+
77
+ border-radius: 15px;
78
+ -moz-border-radius: 15px;
79
+ -webkit-border-radius: 15px;
80
+
81
+ box-shadow: inset 0px 2px 13px #999;
82
+ -moz-box-shadow: inset 0px 2px 13px #999;
83
+ -webkit-box-shadow: inset 0px 2px 13px #999;
84
+ }
85
+
86
+ #qunit-tests li li {
87
+ margin: 0.5em;
88
+ padding: 0.4em 0.5em 0.4em 0.5em;
89
+ background-color: #fff;
90
+ border-bottom: none;
91
+ list-style-position: inside;
92
+ }
93
+
94
+ /*** Passing Styles */
95
+
96
+ #qunit-tests li li.pass {
97
+ color: #5E740B;
98
+ background-color: #fff;
99
+ border-left: 26px solid #C6E746;
100
+ }
101
+
102
+ #qunit-tests li.pass { color: #528CE0; background-color: #D2E0E6; }
103
+ #qunit-tests li.pass span.test-name { color: #366097; }
104
+
105
+ #qunit-tests li li.pass span.test-actual,
106
+ #qunit-tests li li.pass span.test-expected { color: #999999; }
107
+
108
+ strong b.pass { color: #5E740B; }
109
+
110
+ #qunit-banner.qunit-pass { background-color: #C6E746; }
111
+
112
+ /*** Failing Styles */
113
+
114
+ #qunit-tests li li.fail {
115
+ color: #710909;
116
+ background-color: #fff;
117
+ border-left: 26px solid #EE5757;
118
+ }
119
+
120
+ #qunit-tests li.fail { color: #000000; background-color: #EE5757; }
121
+ #qunit-tests li.fail span.test-name,
122
+ #qunit-tests li.fail span.module-name { color: #000000; }
123
+
124
+ #qunit-tests li li.fail span.test-actual { color: #EE5757; }
125
+ #qunit-tests li li.fail span.test-expected { color: green; }
126
+
127
+ strong b.fail { color: #710909; }
128
+
129
+ #qunit-banner.qunit-fail,
130
+ #qunit-testrunner-toolbar { background-color: #EE5757; }
131
+
132
+
133
+ /** Footer */
134
+
135
+ #qunit-testresult {
136
+ padding: 0.5em 0.5em 0.5em 2.5em;
137
+
138
+ color: #2b81af;
139
+ background-color: #D2E0E6;
140
+
141
+ border-radius: 0 0 15px 15px;
142
+ -moz-border-radius: 0 0 15px 15px;
143
+ -webkit-border-bottom-right-radius: 15px;
144
+ -webkit-border-bottom-left-radius: 15px;
145
+ }
146
+
147
+ /** Fixture */
148
+
149
+ #qunit-fixture {
150
+ position: absolute;
151
+ top: -10000px;
152
+ left: -10000px;
153
+ }
@@ -0,0 +1,1261 @@
1
+ /*
2
+ * QUnit - A JavaScript Unit Testing Framework
3
+ *
4
+ * http://docs.jquery.com/QUnit
5
+ *
6
+ * Copyright (c) 2009 John Resig, Jörn Zaefferer
7
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
8
+ * and GPL (GPL-LICENSE.txt) licenses.
9
+ */
10
+
11
+ (function(window) {
12
+
13
+ var QUnit = {
14
+
15
+ // call on start of module test to prepend name to all tests
16
+ module: function(name, testEnvironment) {
17
+ config.currentModule = name;
18
+
19
+ synchronize(function() {
20
+ if ( config.currentModule ) {
21
+ QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
22
+ }
23
+
24
+ config.currentModule = name;
25
+ config.moduleTestEnvironment = testEnvironment;
26
+ config.moduleStats = { all: 0, bad: 0 };
27
+
28
+ QUnit.moduleStart( name, testEnvironment );
29
+ });
30
+ },
31
+
32
+ asyncTest: function(testName, expected, callback) {
33
+ if ( arguments.length === 2 ) {
34
+ callback = expected;
35
+ expected = 0;
36
+ }
37
+
38
+ QUnit.test(testName, expected, callback, true);
39
+ },
40
+
41
+ test: function(testName, expected, callback, async) {
42
+ var name = '<span class="test-name">' + testName + '</span>', testEnvironment, testEnvironmentArg;
43
+
44
+ if ( arguments.length === 2 ) {
45
+ callback = expected;
46
+ expected = null;
47
+ }
48
+ // is 2nd argument a testEnvironment?
49
+ if ( expected && typeof expected === 'object') {
50
+ testEnvironmentArg = expected;
51
+ expected = null;
52
+ }
53
+
54
+ if ( config.currentModule ) {
55
+ name = '<span class="module-name">' + config.currentModule + "</span>: " + name;
56
+ }
57
+
58
+ if ( !validTest(config.currentModule + ": " + testName) ) {
59
+ return;
60
+ }
61
+
62
+ synchronize(function() {
63
+
64
+ testEnvironment = extend({
65
+ setup: function() {},
66
+ teardown: function() {}
67
+ }, config.moduleTestEnvironment);
68
+ if (testEnvironmentArg) {
69
+ extend(testEnvironment,testEnvironmentArg);
70
+ }
71
+
72
+ QUnit.testStart( testName, testEnvironment );
73
+
74
+ // allow utility functions to access the current test environment
75
+ QUnit.current_testEnvironment = testEnvironment;
76
+
77
+ config.assertions = [];
78
+ config.expected = expected;
79
+
80
+ var tests = id("qunit-tests");
81
+ if (tests) {
82
+ var b = document.createElement("strong");
83
+ b.innerHTML = "Running " + name;
84
+ var li = document.createElement("li");
85
+ li.appendChild( b );
86
+ li.id = "current-test-output";
87
+ tests.appendChild( li )
88
+ }
89
+
90
+ try {
91
+ if ( !config.pollution ) {
92
+ saveGlobal();
93
+ }
94
+
95
+ testEnvironment.setup.call(testEnvironment);
96
+ } catch(e) {
97
+ QUnit.ok( false, "Setup failed on " + name + ": " + e.message );
98
+ }
99
+ });
100
+
101
+ synchronize(function() {
102
+ if ( async ) {
103
+ QUnit.stop();
104
+ }
105
+
106
+ try {
107
+ callback.call(testEnvironment);
108
+ } catch(e) {
109
+ fail("Test " + name + " died, exception and test follows", e, callback);
110
+ QUnit.ok( false, "Died on test #" + (config.assertions.length + 1) + ": " + e.message );
111
+ // else next test will carry the responsibility
112
+ saveGlobal();
113
+
114
+ // Restart the tests if they're blocking
115
+ if ( config.blocking ) {
116
+ start();
117
+ }
118
+ }
119
+ });
120
+
121
+ synchronize(function() {
122
+ try {
123
+ checkPollution();
124
+ testEnvironment.teardown.call(testEnvironment);
125
+ } catch(e) {
126
+ QUnit.ok( false, "Teardown failed on " + name + ": " + e.message );
127
+ }
128
+ });
129
+
130
+ synchronize(function() {
131
+ try {
132
+ QUnit.reset();
133
+ } catch(e) {
134
+ fail("reset() failed, following Test " + name + ", exception and reset fn follows", e, reset);
135
+ }
136
+
137
+ if ( config.expected && config.expected != config.assertions.length ) {
138
+ QUnit.ok( false, "Expected " + config.expected + " assertions, but " + config.assertions.length + " were run" );
139
+ }
140
+
141
+ var good = 0, bad = 0,
142
+ tests = id("qunit-tests");
143
+
144
+ config.stats.all += config.assertions.length;
145
+ config.moduleStats.all += config.assertions.length;
146
+
147
+ if ( tests ) {
148
+ var ol = document.createElement("ol");
149
+
150
+ for ( var i = 0; i < config.assertions.length; i++ ) {
151
+ var assertion = config.assertions[i];
152
+
153
+ var li = document.createElement("li");
154
+ li.className = assertion.result ? "pass" : "fail";
155
+ li.innerHTML = assertion.message || "(no message)";
156
+ ol.appendChild( li );
157
+
158
+ if ( assertion.result ) {
159
+ good++;
160
+ } else {
161
+ bad++;
162
+ config.stats.bad++;
163
+ config.moduleStats.bad++;
164
+ }
165
+ }
166
+ if (bad == 0) {
167
+ ol.style.display = "none";
168
+ }
169
+
170
+ var b = document.createElement("strong");
171
+ b.innerHTML = name + " <b style='color:black;'>(<b class='fail'>" + bad + "</b>, <b class='pass'>" + good + "</b>, " + config.assertions.length + ")</b>";
172
+
173
+ addEvent(b, "click", function() {
174
+ var next = b.nextSibling, display = next.style.display;
175
+ next.style.display = display === "none" ? "block" : "none";
176
+ });
177
+
178
+ addEvent(b, "dblclick", function(e) {
179
+ var target = e && e.target ? e.target : window.event.srcElement;
180
+ if ( target.nodeName.toLowerCase() == "span" || target.nodeName.toLowerCase() == "b" ) {
181
+ target = target.parentNode;
182
+ }
183
+ if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
184
+ window.location.search = "?" + encodeURIComponent(getText([target]).replace(/\(.+\)$/, "").replace(/(^\s*|\s*$)/g, ""));
185
+ }
186
+ });
187
+
188
+ var li = id("current-test-output");
189
+ li.id = "";
190
+ li.className = bad ? "fail" : "pass";
191
+ li.removeChild( li.firstChild );
192
+ li.appendChild( b );
193
+ li.appendChild( ol );
194
+
195
+ if ( bad ) {
196
+ var toolbar = id("qunit-testrunner-toolbar");
197
+ if ( toolbar ) {
198
+ toolbar.style.display = "block";
199
+ id("qunit-filter-pass").disabled = null;
200
+ id("qunit-filter-missing").disabled = null;
201
+ }
202
+ }
203
+
204
+ } else {
205
+ for ( var i = 0; i < config.assertions.length; i++ ) {
206
+ if ( !config.assertions[i].result ) {
207
+ bad++;
208
+ config.stats.bad++;
209
+ config.moduleStats.bad++;
210
+ }
211
+ }
212
+ }
213
+
214
+ QUnit.testDone( testName, bad, config.assertions.length );
215
+
216
+ if ( !window.setTimeout && !config.queue.length ) {
217
+ done();
218
+ }
219
+ });
220
+
221
+ synchronize( done );
222
+ },
223
+
224
+ /**
225
+ * Specify the number of expected assertions to gurantee that failed test (no assertions are run at all) don't slip through.
226
+ */
227
+ expect: function(asserts) {
228
+ config.expected = asserts;
229
+ },
230
+
231
+ /**
232
+ * Asserts true.
233
+ * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
234
+ */
235
+ ok: function(a, msg) {
236
+ msg = escapeHtml(msg);
237
+ QUnit.log(a, msg);
238
+
239
+ config.assertions.push({
240
+ result: !!a,
241
+ message: msg
242
+ });
243
+ },
244
+
245
+ /**
246
+ * Checks that the first two arguments are equal, with an optional message.
247
+ * Prints out both actual and expected values.
248
+ *
249
+ * Prefered to ok( actual == expected, message )
250
+ *
251
+ * @example equal( format("Received {0} bytes.", 2), "Received 2 bytes." );
252
+ *
253
+ * @param Object actual
254
+ * @param Object expected
255
+ * @param String message (optional)
256
+ */
257
+ equal: function(actual, expected, message) {
258
+ push(expected == actual, actual, expected, message);
259
+ },
260
+
261
+ notEqual: function(actual, expected, message) {
262
+ push(expected != actual, actual, expected, message);
263
+ },
264
+
265
+ deepEqual: function(actual, expected, message) {
266
+ push(QUnit.equiv(actual, expected), actual, expected, message);
267
+ },
268
+
269
+ notDeepEqual: function(actual, expected, message) {
270
+ push(!QUnit.equiv(actual, expected), actual, expected, message);
271
+ },
272
+
273
+ strictEqual: function(actual, expected, message) {
274
+ push(expected === actual, actual, expected, message);
275
+ },
276
+
277
+ notStrictEqual: function(actual, expected, message) {
278
+ push(expected !== actual, actual, expected, message);
279
+ },
280
+
281
+ raises: function(fn, message) {
282
+ try {
283
+ fn();
284
+ ok( false, message );
285
+ }
286
+ catch (e) {
287
+ ok( true, message );
288
+ }
289
+ },
290
+
291
+ start: function() {
292
+ // A slight delay, to avoid any current callbacks
293
+ if ( window.setTimeout ) {
294
+ window.setTimeout(function() {
295
+ if ( config.timeout ) {
296
+ clearTimeout(config.timeout);
297
+ }
298
+
299
+ config.blocking = false;
300
+ process();
301
+ }, 13);
302
+ } else {
303
+ config.blocking = false;
304
+ process();
305
+ }
306
+ },
307
+
308
+ stop: function(timeout) {
309
+ config.blocking = true;
310
+
311
+ if ( timeout && window.setTimeout ) {
312
+ config.timeout = window.setTimeout(function() {
313
+ QUnit.ok( false, "Test timed out" );
314
+ QUnit.start();
315
+ }, timeout);
316
+ }
317
+ }
318
+
319
+ };
320
+
321
+ // Backwards compatibility, deprecated
322
+ QUnit.equals = QUnit.equal;
323
+ QUnit.same = QUnit.deepEqual;
324
+
325
+ // Maintain internal state
326
+ var config = {
327
+ // The queue of tests to run
328
+ queue: [],
329
+
330
+ // block until document ready
331
+ blocking: true
332
+ };
333
+
334
+ // Load paramaters
335
+ (function() {
336
+ var location = window.location || { search: "", protocol: "file:" },
337
+ GETParams = location.search.slice(1).split('&');
338
+
339
+ for ( var i = 0; i < GETParams.length; i++ ) {
340
+ GETParams[i] = decodeURIComponent( GETParams[i] );
341
+ if ( GETParams[i] === "noglobals" ) {
342
+ GETParams.splice( i, 1 );
343
+ i--;
344
+ config.noglobals = true;
345
+ } else if ( GETParams[i].search('=') > -1 ) {
346
+ GETParams.splice( i, 1 );
347
+ i--;
348
+ }
349
+ }
350
+
351
+ // restrict modules/tests by get parameters
352
+ config.filters = GETParams;
353
+
354
+ // Figure out if we're running the tests from a server or not
355
+ QUnit.isLocal = !!(location.protocol === 'file:');
356
+ })();
357
+
358
+ // Expose the API as global variables, unless an 'exports'
359
+ // object exists, in that case we assume we're in CommonJS
360
+ if ( typeof exports === "undefined" || typeof require === "undefined" ) {
361
+ extend(window, QUnit);
362
+ window.QUnit = QUnit;
363
+ } else {
364
+ extend(exports, QUnit);
365
+ exports.QUnit = QUnit;
366
+ }
367
+
368
+ // define these after exposing globals to keep them in these QUnit namespace only
369
+ extend(QUnit, {
370
+ config: config,
371
+
372
+ // Initialize the configuration options
373
+ init: function() {
374
+ extend(config, {
375
+ stats: { all: 0, bad: 0 },
376
+ moduleStats: { all: 0, bad: 0 },
377
+ started: +new Date,
378
+ updateRate: 1000,
379
+ blocking: false,
380
+ autostart: true,
381
+ autorun: false,
382
+ assertions: [],
383
+ filters: [],
384
+ queue: []
385
+ });
386
+
387
+ var tests = id("qunit-tests"),
388
+ banner = id("qunit-banner"),
389
+ result = id("qunit-testresult");
390
+
391
+ if ( tests ) {
392
+ tests.innerHTML = "";
393
+ }
394
+
395
+ if ( banner ) {
396
+ banner.className = "";
397
+ }
398
+
399
+ if ( result ) {
400
+ result.parentNode.removeChild( result );
401
+ }
402
+ },
403
+
404
+ /**
405
+ * Resets the test setup. Useful for tests that modify the DOM.
406
+ */
407
+ reset: function() {
408
+ if ( window.jQuery ) {
409
+ jQuery("#main, #qunit-fixture").html( config.fixture );
410
+ }
411
+ },
412
+
413
+ /**
414
+ * Trigger an event on an element.
415
+ *
416
+ * @example triggerEvent( document.body, "click" );
417
+ *
418
+ * @param DOMElement elem
419
+ * @param String type
420
+ */
421
+ triggerEvent: function( elem, type, event ) {
422
+ if ( document.createEvent ) {
423
+ event = document.createEvent("MouseEvents");
424
+ event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
425
+ 0, 0, 0, 0, 0, false, false, false, false, 0, null);
426
+ elem.dispatchEvent( event );
427
+
428
+ } else if ( elem.fireEvent ) {
429
+ elem.fireEvent("on"+type);
430
+ }
431
+ },
432
+
433
+ // Safe object type checking
434
+ is: function( type, obj ) {
435
+ return QUnit.objectType( obj ) == type;
436
+ },
437
+
438
+ objectType: function( obj ) {
439
+ if (typeof obj === "undefined") {
440
+ return "undefined";
441
+
442
+ // consider: typeof null === object
443
+ }
444
+ if (obj === null) {
445
+ return "null";
446
+ }
447
+
448
+ var type = Object.prototype.toString.call( obj )
449
+ .match(/^\[object\s(.*)\]$/)[1] || '';
450
+
451
+ switch (type) {
452
+ case 'Number':
453
+ if (isNaN(obj)) {
454
+ return "nan";
455
+ } else {
456
+ return "number";
457
+ }
458
+ case 'String':
459
+ case 'Boolean':
460
+ case 'Array':
461
+ case 'Date':
462
+ case 'RegExp':
463
+ case 'Function':
464
+ return type.toLowerCase();
465
+ }
466
+ if (typeof obj === "object") {
467
+ return "object";
468
+ }
469
+ return undefined;
470
+ },
471
+
472
+ // Logging callbacks
473
+ begin: function() {},
474
+ done: function(failures, total) {},
475
+ log: function(result, message) {},
476
+ testStart: function(name, testEnvironment) {},
477
+ testDone: function(name, failures, total) {},
478
+ moduleStart: function(name, testEnvironment) {},
479
+ moduleDone: function(name, failures, total) {}
480
+ });
481
+
482
+ if ( typeof document === "undefined" || document.readyState === "complete" ) {
483
+ config.autorun = true;
484
+ }
485
+
486
+ addEvent(window, "load", function() {
487
+ QUnit.begin();
488
+
489
+ // Initialize the config, saving the execution queue
490
+ var oldconfig = extend({}, config);
491
+ QUnit.init();
492
+ extend(config, oldconfig);
493
+
494
+ config.blocking = false;
495
+
496
+ var userAgent = id("qunit-userAgent");
497
+ if ( userAgent ) {
498
+ userAgent.innerHTML = navigator.userAgent;
499
+ }
500
+ var banner = id("qunit-header");
501
+ if ( banner ) {
502
+ banner.innerHTML = '<a href="' + location.href + '">' + banner.innerHTML + '</a>';
503
+ }
504
+
505
+ var toolbar = id("qunit-testrunner-toolbar");
506
+ if ( toolbar ) {
507
+ toolbar.style.display = "none";
508
+
509
+ var filter = document.createElement("input");
510
+ filter.type = "checkbox";
511
+ filter.id = "qunit-filter-pass";
512
+ filter.disabled = true;
513
+ addEvent( filter, "click", function() {
514
+ var li = document.getElementsByTagName("li");
515
+ for ( var i = 0; i < li.length; i++ ) {
516
+ if ( li[i].className.indexOf("pass") > -1 ) {
517
+ li[i].style.display = filter.checked ? "none" : "";
518
+ }
519
+ }
520
+ });
521
+ toolbar.appendChild( filter );
522
+
523
+ var label = document.createElement("label");
524
+ label.setAttribute("for", "qunit-filter-pass");
525
+ label.innerHTML = "Hide passed tests";
526
+ toolbar.appendChild( label );
527
+
528
+ var missing = document.createElement("input");
529
+ missing.type = "checkbox";
530
+ missing.id = "qunit-filter-missing";
531
+ missing.disabled = true;
532
+ addEvent( missing, "click", function() {
533
+ var li = document.getElementsByTagName("li");
534
+ for ( var i = 0; i < li.length; i++ ) {
535
+ if ( li[i].className.indexOf("fail") > -1 && li[i].innerHTML.indexOf('missing test - untested code is broken code') > - 1 ) {
536
+ li[i].parentNode.parentNode.style.display = missing.checked ? "none" : "block";
537
+ }
538
+ }
539
+ });
540
+ toolbar.appendChild( missing );
541
+
542
+ label = document.createElement("label");
543
+ label.setAttribute("for", "qunit-filter-missing");
544
+ label.innerHTML = "Hide missing tests (untested code is broken code)";
545
+ toolbar.appendChild( label );
546
+ }
547
+
548
+ var main = id('main') || id('qunit-fixture');
549
+ if ( main ) {
550
+ config.fixture = main.innerHTML;
551
+ }
552
+
553
+ if (config.autostart) {
554
+ QUnit.start();
555
+ }
556
+ });
557
+
558
+ function done() {
559
+ if ( config.doneTimer && window.clearTimeout ) {
560
+ window.clearTimeout( config.doneTimer );
561
+ config.doneTimer = null;
562
+ }
563
+
564
+ if ( config.queue.length ) {
565
+ config.doneTimer = window.setTimeout(function(){
566
+ if ( !config.queue.length ) {
567
+ done();
568
+ } else {
569
+ synchronize( done );
570
+ }
571
+ }, 13);
572
+
573
+ return;
574
+ }
575
+
576
+ config.autorun = true;
577
+
578
+ // Log the last module results
579
+ if ( config.currentModule ) {
580
+ QUnit.moduleDone( config.currentModule, config.moduleStats.bad, config.moduleStats.all );
581
+ }
582
+
583
+ var banner = id("qunit-banner"),
584
+ tests = id("qunit-tests"),
585
+ html = ['Tests completed in ',
586
+ +new Date - config.started, ' milliseconds.<br/>',
587
+ '<span class="passed">', config.stats.all - config.stats.bad, '</span> tests of <span class="total">', config.stats.all, '</span> passed, <span class="failed">', config.stats.bad,'</span> failed.'].join('');
588
+
589
+ if ( banner ) {
590
+ banner.className = (config.stats.bad ? "qunit-fail" : "qunit-pass");
591
+ }
592
+
593
+ if ( tests ) {
594
+ var result = id("qunit-testresult");
595
+
596
+ if ( !result ) {
597
+ result = document.createElement("p");
598
+ result.id = "qunit-testresult";
599
+ result.className = "result";
600
+ tests.parentNode.insertBefore( result, tests.nextSibling );
601
+ }
602
+
603
+ result.innerHTML = html;
604
+ }
605
+
606
+ QUnit.done( config.stats.bad, config.stats.all );
607
+ }
608
+
609
+ function validTest( name ) {
610
+ var i = config.filters.length,
611
+ run = false;
612
+
613
+ if ( !i ) {
614
+ return true;
615
+ }
616
+
617
+ while ( i-- ) {
618
+ var filter = config.filters[i],
619
+ not = filter.charAt(0) == '!';
620
+
621
+ if ( not ) {
622
+ filter = filter.slice(1);
623
+ }
624
+
625
+ if ( name.indexOf(filter) !== -1 ) {
626
+ return !not;
627
+ }
628
+
629
+ if ( not ) {
630
+ run = true;
631
+ }
632
+ }
633
+
634
+ return run;
635
+ }
636
+
637
+ function escapeHtml(s) {
638
+ s = s === null ? "" : s + "";
639
+ return s.replace(/[\&"<>\\]/g, function(s) {
640
+ switch(s) {
641
+ case "&": return "&amp;";
642
+ case "\\": return "\\\\";
643
+ case '"': return '\"';
644
+ case "<": return "&lt;";
645
+ case ">": return "&gt;";
646
+ default: return s;
647
+ }
648
+ });
649
+ }
650
+
651
+ function push(result, actual, expected, message) {
652
+ message = escapeHtml(message) || (result ? "okay" : "failed");
653
+ message = '<span class="test-message">' + message + "</span>";
654
+ expected = escapeHtml(QUnit.jsDump.parse(expected));
655
+ actual = escapeHtml(QUnit.jsDump.parse(actual));
656
+ var output = message + ', expected: <span class="test-expected">' + expected + '</span>';
657
+ if (actual != expected) {
658
+ output += ' result: <span class="test-actual">' + actual + '</span>, diff: ' + QUnit.diff(expected, actual);
659
+ }
660
+
661
+ // can't use ok, as that would double-escape messages
662
+ QUnit.log(result, output);
663
+ config.assertions.push({
664
+ result: !!result,
665
+ message: output
666
+ });
667
+ }
668
+
669
+ function synchronize( callback ) {
670
+ config.queue.push( callback );
671
+
672
+ if ( config.autorun && !config.blocking ) {
673
+ process();
674
+ }
675
+ }
676
+
677
+ function process() {
678
+ var start = (new Date()).getTime();
679
+
680
+ while ( config.queue.length && !config.blocking ) {
681
+ if ( config.updateRate <= 0 || (((new Date()).getTime() - start) < config.updateRate) ) {
682
+ config.queue.shift()();
683
+
684
+ } else {
685
+ setTimeout( process, 13 );
686
+ break;
687
+ }
688
+ }
689
+ }
690
+
691
+ function saveGlobal() {
692
+ config.pollution = [];
693
+
694
+ if ( config.noglobals ) {
695
+ for ( var key in window ) {
696
+ config.pollution.push( key );
697
+ }
698
+ }
699
+ }
700
+
701
+ function checkPollution( name ) {
702
+ var old = config.pollution;
703
+ saveGlobal();
704
+
705
+ var newGlobals = diff( old, config.pollution );
706
+ if ( newGlobals.length > 0 ) {
707
+ ok( false, "Introduced global variable(s): " + newGlobals.join(", ") );
708
+ config.expected++;
709
+ }
710
+
711
+ var deletedGlobals = diff( config.pollution, old );
712
+ if ( deletedGlobals.length > 0 ) {
713
+ ok( false, "Deleted global variable(s): " + deletedGlobals.join(", ") );
714
+ config.expected++;
715
+ }
716
+ }
717
+
718
+ // returns a new Array with the elements that are in a but not in b
719
+ function diff( a, b ) {
720
+ var result = a.slice();
721
+ for ( var i = 0; i < result.length; i++ ) {
722
+ for ( var j = 0; j < b.length; j++ ) {
723
+ if ( result[i] === b[j] ) {
724
+ result.splice(i, 1);
725
+ i--;
726
+ break;
727
+ }
728
+ }
729
+ }
730
+ return result;
731
+ }
732
+
733
+ function fail(message, exception, callback) {
734
+ if ( typeof console !== "undefined" && console.error && console.warn ) {
735
+ console.error(message);
736
+ console.error(exception);
737
+ console.warn(callback.toString());
738
+
739
+ } else if ( window.opera && opera.postError ) {
740
+ opera.postError(message, exception, callback.toString);
741
+ }
742
+ }
743
+
744
+ function extend(a, b) {
745
+ for ( var prop in b ) {
746
+ a[prop] = b[prop];
747
+ }
748
+
749
+ return a;
750
+ }
751
+
752
+ function addEvent(elem, type, fn) {
753
+ if ( elem.addEventListener ) {
754
+ elem.addEventListener( type, fn, false );
755
+ } else if ( elem.attachEvent ) {
756
+ elem.attachEvent( "on" + type, fn );
757
+ } else {
758
+ fn();
759
+ }
760
+ }
761
+
762
+ function id(name) {
763
+ return !!(typeof document !== "undefined" && document && document.getElementById) &&
764
+ document.getElementById( name );
765
+ }
766
+
767
+ // Test for equality any JavaScript type.
768
+ // Discussions and reference: http://philrathe.com/articles/equiv
769
+ // Test suites: http://philrathe.com/tests/equiv
770
+ // Author: Philippe Rathé <prathe@gmail.com>
771
+ QUnit.equiv = function () {
772
+
773
+ var innerEquiv; // the real equiv function
774
+ var callers = []; // stack to decide between skip/abort functions
775
+ var parents = []; // stack to avoiding loops from circular referencing
776
+
777
+ // Call the o related callback with the given arguments.
778
+ function bindCallbacks(o, callbacks, args) {
779
+ var prop = QUnit.objectType(o);
780
+ if (prop) {
781
+ if (QUnit.objectType(callbacks[prop]) === "function") {
782
+ return callbacks[prop].apply(callbacks, args);
783
+ } else {
784
+ return callbacks[prop]; // or undefined
785
+ }
786
+ }
787
+ }
788
+
789
+ var callbacks = function () {
790
+
791
+ // for string, boolean, number and null
792
+ function useStrictEquality(b, a) {
793
+ if (b instanceof a.constructor || a instanceof b.constructor) {
794
+ // to catch short annotaion VS 'new' annotation of a declaration
795
+ // e.g. var i = 1;
796
+ // var j = new Number(1);
797
+ return a == b;
798
+ } else {
799
+ return a === b;
800
+ }
801
+ }
802
+
803
+ return {
804
+ "string": useStrictEquality,
805
+ "boolean": useStrictEquality,
806
+ "number": useStrictEquality,
807
+ "null": useStrictEquality,
808
+ "undefined": useStrictEquality,
809
+
810
+ "nan": function (b) {
811
+ return isNaN(b);
812
+ },
813
+
814
+ "date": function (b, a) {
815
+ return QUnit.objectType(b) === "date" && a.valueOf() === b.valueOf();
816
+ },
817
+
818
+ "regexp": function (b, a) {
819
+ return QUnit.objectType(b) === "regexp" &&
820
+ a.source === b.source && // the regex itself
821
+ a.global === b.global && // and its modifers (gmi) ...
822
+ a.ignoreCase === b.ignoreCase &&
823
+ a.multiline === b.multiline;
824
+ },
825
+
826
+ // - skip when the property is a method of an instance (OOP)
827
+ // - abort otherwise,
828
+ // initial === would have catch identical references anyway
829
+ "function": function () {
830
+ var caller = callers[callers.length - 1];
831
+ return caller !== Object &&
832
+ typeof caller !== "undefined";
833
+ },
834
+
835
+ "array": function (b, a) {
836
+ var i, j, loop;
837
+ var len;
838
+
839
+ // b could be an object literal here
840
+ if ( ! (QUnit.objectType(b) === "array")) {
841
+ return false;
842
+ }
843
+
844
+ len = a.length;
845
+ if (len !== b.length) { // safe and faster
846
+ return false;
847
+ }
848
+
849
+ //track reference to avoid circular references
850
+ parents.push(a);
851
+ for (i = 0; i < len; i++) {
852
+ loop = false;
853
+ for(j=0;j<parents.length;j++){
854
+ if(parents[j] === a[i]){
855
+ loop = true;//dont rewalk array
856
+ }
857
+ }
858
+ if (!loop && ! innerEquiv(a[i], b[i])) {
859
+ parents.pop();
860
+ return false;
861
+ }
862
+ }
863
+ parents.pop();
864
+ return true;
865
+ },
866
+
867
+ "object": function (b, a) {
868
+ var i, j, loop;
869
+ var eq = true; // unless we can proove it
870
+ var aProperties = [], bProperties = []; // collection of strings
871
+
872
+ // comparing constructors is more strict than using instanceof
873
+ if ( a.constructor !== b.constructor) {
874
+ return false;
875
+ }
876
+
877
+ // stack constructor before traversing properties
878
+ callers.push(a.constructor);
879
+ //track reference to avoid circular references
880
+ parents.push(a);
881
+
882
+ for (i in a) { // be strict: don't ensures hasOwnProperty and go deep
883
+ loop = false;
884
+ for(j=0;j<parents.length;j++){
885
+ if(parents[j] === a[i])
886
+ loop = true; //don't go down the same path twice
887
+ }
888
+ aProperties.push(i); // collect a's properties
889
+
890
+ if (!loop && ! innerEquiv(a[i], b[i])) {
891
+ eq = false;
892
+ break;
893
+ }
894
+ }
895
+
896
+ callers.pop(); // unstack, we are done
897
+ parents.pop();
898
+
899
+ for (i in b) {
900
+ bProperties.push(i); // collect b's properties
901
+ }
902
+
903
+ // Ensures identical properties name
904
+ return eq && innerEquiv(aProperties.sort(), bProperties.sort());
905
+ }
906
+ };
907
+ }();
908
+
909
+ innerEquiv = function () { // can take multiple arguments
910
+ var args = Array.prototype.slice.apply(arguments);
911
+ if (args.length < 2) {
912
+ return true; // end transition
913
+ }
914
+
915
+ return (function (a, b) {
916
+ if (a === b) {
917
+ return true; // catch the most you can
918
+ } else if (a === null || b === null || typeof a === "undefined" || typeof b === "undefined" || QUnit.objectType(a) !== QUnit.objectType(b)) {
919
+ return false; // don't lose time with error prone cases
920
+ } else {
921
+ return bindCallbacks(a, callbacks, [b, a]);
922
+ }
923
+
924
+ // apply transition with (1..n) arguments
925
+ })(args[0], args[1]) && arguments.callee.apply(this, args.splice(1, args.length -1));
926
+ };
927
+
928
+ return innerEquiv;
929
+
930
+ }();
931
+
932
+ /**
933
+ * jsDump
934
+ * Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
935
+ * Licensed under BSD (http://www.opensource.org/licenses/bsd-license.php)
936
+ * Date: 5/15/2008
937
+ * @projectDescription Advanced and extensible data dumping for Javascript.
938
+ * @version 1.0.0
939
+ * @author Ariel Flesler
940
+ * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
941
+ */
942
+ QUnit.jsDump = (function() {
943
+ function quote( str ) {
944
+ return '"' + str.toString().replace(/"/g, '\\"') + '"';
945
+ };
946
+ function literal( o ) {
947
+ return o + '';
948
+ };
949
+ function join( pre, arr, post ) {
950
+ var s = jsDump.separator(),
951
+ base = jsDump.indent(),
952
+ inner = jsDump.indent(1);
953
+ if ( arr.join )
954
+ arr = arr.join( ',' + s + inner );
955
+ if ( !arr )
956
+ return pre + post;
957
+ return [ pre, inner + arr, base + post ].join(s);
958
+ };
959
+ function array( arr ) {
960
+ var i = arr.length, ret = Array(i);
961
+ this.up();
962
+ while ( i-- )
963
+ ret[i] = this.parse( arr[i] );
964
+ this.down();
965
+ return join( '[', ret, ']' );
966
+ };
967
+
968
+ var reName = /^function (\w+)/;
969
+
970
+ var jsDump = {
971
+ parse:function( obj, type ) { //type is used mostly internally, you can fix a (custom)type in advance
972
+ var parser = this.parsers[ type || this.typeOf(obj) ];
973
+ type = typeof parser;
974
+
975
+ return type == 'function' ? parser.call( this, obj ) :
976
+ type == 'string' ? parser :
977
+ this.parsers.error;
978
+ },
979
+ typeOf:function( obj ) {
980
+ var type;
981
+ if ( obj === null ) {
982
+ type = "null";
983
+ } else if (typeof obj === "undefined") {
984
+ type = "undefined";
985
+ } else if (QUnit.is("RegExp", obj)) {
986
+ type = "regexp";
987
+ } else if (QUnit.is("Date", obj)) {
988
+ type = "date";
989
+ } else if (QUnit.is("Function", obj)) {
990
+ type = "function";
991
+ } else if (obj.setInterval && obj.document && !obj.nodeType) {
992
+ type = "window";
993
+ } else if (obj.nodeType === 9) {
994
+ type = "document";
995
+ } else if (obj.nodeType) {
996
+ type = "node";
997
+ } else if (typeof obj === "object" && typeof obj.length === "number" && obj.length >= 0) {
998
+ type = "array";
999
+ } else {
1000
+ type = typeof obj;
1001
+ }
1002
+ return type;
1003
+ },
1004
+ separator:function() {
1005
+ return this.multiline ? this.HTML ? '<br />' : '\n' : this.HTML ? '&nbsp;' : ' ';
1006
+ },
1007
+ indent:function( extra ) {// extra can be a number, shortcut for increasing-calling-decreasing
1008
+ if ( !this.multiline )
1009
+ return '';
1010
+ var chr = this.indentChar;
1011
+ if ( this.HTML )
1012
+ chr = chr.replace(/\t/g,' ').replace(/ /g,'&nbsp;');
1013
+ return Array( this._depth_ + (extra||0) ).join(chr);
1014
+ },
1015
+ up:function( a ) {
1016
+ this._depth_ += a || 1;
1017
+ },
1018
+ down:function( a ) {
1019
+ this._depth_ -= a || 1;
1020
+ },
1021
+ setParser:function( name, parser ) {
1022
+ this.parsers[name] = parser;
1023
+ },
1024
+ // The next 3 are exposed so you can use them
1025
+ quote:quote,
1026
+ literal:literal,
1027
+ join:join,
1028
+ //
1029
+ _depth_: 1,
1030
+ // This is the list of parsers, to modify them, use jsDump.setParser
1031
+ parsers:{
1032
+ window: '[Window]',
1033
+ document: '[Document]',
1034
+ error:'[ERROR]', //when no parser is found, shouldn't happen
1035
+ unknown: '[Unknown]',
1036
+ 'null':'null',
1037
+ undefined:'undefined',
1038
+ 'function':function( fn ) {
1039
+ var ret = 'function',
1040
+ name = 'name' in fn ? fn.name : (reName.exec(fn)||[])[1];//functions never have name in IE
1041
+ if ( name )
1042
+ ret += ' ' + name;
1043
+ ret += '(';
1044
+
1045
+ ret = [ ret, this.parse( fn, 'functionArgs' ), '){'].join('');
1046
+ return join( ret, this.parse(fn,'functionCode'), '}' );
1047
+ },
1048
+ array: array,
1049
+ nodelist: array,
1050
+ arguments: array,
1051
+ object:function( map ) {
1052
+ var ret = [ ];
1053
+ this.up();
1054
+ for ( var key in map )
1055
+ ret.push( this.parse(key,'key') + ': ' + this.parse(map[key]) );
1056
+ this.down();
1057
+ return join( '{', ret, '}' );
1058
+ },
1059
+ node:function( node ) {
1060
+ var open = this.HTML ? '&lt;' : '<',
1061
+ close = this.HTML ? '&gt;' : '>';
1062
+
1063
+ var tag = node.nodeName.toLowerCase(),
1064
+ ret = open + tag;
1065
+
1066
+ for ( var a in this.DOMAttrs ) {
1067
+ var val = node[this.DOMAttrs[a]];
1068
+ if ( val )
1069
+ ret += ' ' + a + '=' + this.parse( val, 'attribute' );
1070
+ }
1071
+ return ret + close + open + '/' + tag + close;
1072
+ },
1073
+ functionArgs:function( fn ) {//function calls it internally, it's the arguments part of the function
1074
+ var l = fn.length;
1075
+ if ( !l ) return '';
1076
+
1077
+ var args = Array(l);
1078
+ while ( l-- )
1079
+ args[l] = String.fromCharCode(97+l);//97 is 'a'
1080
+ return ' ' + args.join(', ') + ' ';
1081
+ },
1082
+ key:quote, //object calls it internally, the key part of an item in a map
1083
+ functionCode:'[code]', //function calls it internally, it's the content of the function
1084
+ attribute:quote, //node calls it internally, it's an html attribute value
1085
+ string:quote,
1086
+ date:quote,
1087
+ regexp:literal, //regex
1088
+ number:literal,
1089
+ 'boolean':literal
1090
+ },
1091
+ DOMAttrs:{//attributes to dump from nodes, name=>realName
1092
+ id:'id',
1093
+ name:'name',
1094
+ 'class':'className'
1095
+ },
1096
+ HTML:false,//if true, entities are escaped ( <, >, \t, space and \n )
1097
+ indentChar:' ',//indentation unit
1098
+ multiline:false //if true, items in a collection, are separated by a \n, else just a space.
1099
+ };
1100
+
1101
+ return jsDump;
1102
+ })();
1103
+
1104
+ // from Sizzle.js
1105
+ function getText( elems ) {
1106
+ var ret = "", elem;
1107
+
1108
+ for ( var i = 0; elems[i]; i++ ) {
1109
+ elem = elems[i];
1110
+
1111
+ // Get the text from text nodes and CDATA nodes
1112
+ if ( elem.nodeType === 3 || elem.nodeType === 4 ) {
1113
+ ret += elem.nodeValue;
1114
+
1115
+ // Traverse everything else, except comment nodes
1116
+ } else if ( elem.nodeType !== 8 ) {
1117
+ ret += getText( elem.childNodes );
1118
+ }
1119
+ }
1120
+
1121
+ return ret;
1122
+ };
1123
+
1124
+ /*
1125
+ * Javascript Diff Algorithm
1126
+ * By John Resig (http://ejohn.org/)
1127
+ * Modified by Chu Alan "sprite"
1128
+ *
1129
+ * Released under the MIT license.
1130
+ *
1131
+ * More Info:
1132
+ * http://ejohn.org/projects/javascript-diff-algorithm/
1133
+ *
1134
+ * Usage: QUnit.diff(expected, actual)
1135
+ *
1136
+ * QUnit.diff("the quick brown fox jumped over", "the quick fox jumps over") == "the quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
1137
+ */
1138
+ QUnit.diff = (function() {
1139
+ function diff(o, n){
1140
+ var ns = new Object();
1141
+ var os = new Object();
1142
+
1143
+ for (var i = 0; i < n.length; i++) {
1144
+ if (ns[n[i]] == null)
1145
+ ns[n[i]] = {
1146
+ rows: new Array(),
1147
+ o: null
1148
+ };
1149
+ ns[n[i]].rows.push(i);
1150
+ }
1151
+
1152
+ for (var i = 0; i < o.length; i++) {
1153
+ if (os[o[i]] == null)
1154
+ os[o[i]] = {
1155
+ rows: new Array(),
1156
+ n: null
1157
+ };
1158
+ os[o[i]].rows.push(i);
1159
+ }
1160
+
1161
+ for (var i in ns) {
1162
+ if (ns[i].rows.length == 1 && typeof(os[i]) != "undefined" && os[i].rows.length == 1) {
1163
+ n[ns[i].rows[0]] = {
1164
+ text: n[ns[i].rows[0]],
1165
+ row: os[i].rows[0]
1166
+ };
1167
+ o[os[i].rows[0]] = {
1168
+ text: o[os[i].rows[0]],
1169
+ row: ns[i].rows[0]
1170
+ };
1171
+ }
1172
+ }
1173
+
1174
+ for (var i = 0; i < n.length - 1; i++) {
1175
+ if (n[i].text != null && n[i + 1].text == null && n[i].row + 1 < o.length && o[n[i].row + 1].text == null &&
1176
+ n[i + 1] == o[n[i].row + 1]) {
1177
+ n[i + 1] = {
1178
+ text: n[i + 1],
1179
+ row: n[i].row + 1
1180
+ };
1181
+ o[n[i].row + 1] = {
1182
+ text: o[n[i].row + 1],
1183
+ row: i + 1
1184
+ };
1185
+ }
1186
+ }
1187
+
1188
+ for (var i = n.length - 1; i > 0; i--) {
1189
+ if (n[i].text != null && n[i - 1].text == null && n[i].row > 0 && o[n[i].row - 1].text == null &&
1190
+ n[i - 1] == o[n[i].row - 1]) {
1191
+ n[i - 1] = {
1192
+ text: n[i - 1],
1193
+ row: n[i].row - 1
1194
+ };
1195
+ o[n[i].row - 1] = {
1196
+ text: o[n[i].row - 1],
1197
+ row: i - 1
1198
+ };
1199
+ }
1200
+ }
1201
+
1202
+ return {
1203
+ o: o,
1204
+ n: n
1205
+ };
1206
+ }
1207
+
1208
+ return function(o, n){
1209
+ o = o.replace(/\s+$/, '');
1210
+ n = n.replace(/\s+$/, '');
1211
+ var out = diff(o == "" ? [] : o.split(/\s+/), n == "" ? [] : n.split(/\s+/));
1212
+
1213
+ var str = "";
1214
+
1215
+ var oSpace = o.match(/\s+/g);
1216
+ if (oSpace == null) {
1217
+ oSpace = [" "];
1218
+ }
1219
+ else {
1220
+ oSpace.push(" ");
1221
+ }
1222
+ var nSpace = n.match(/\s+/g);
1223
+ if (nSpace == null) {
1224
+ nSpace = [" "];
1225
+ }
1226
+ else {
1227
+ nSpace.push(" ");
1228
+ }
1229
+
1230
+ if (out.n.length == 0) {
1231
+ for (var i = 0; i < out.o.length; i++) {
1232
+ str += '<del>' + out.o[i] + oSpace[i] + "</del>";
1233
+ }
1234
+ }
1235
+ else {
1236
+ if (out.n[0].text == null) {
1237
+ for (n = 0; n < out.o.length && out.o[n].text == null; n++) {
1238
+ str += '<del>' + out.o[n] + oSpace[n] + "</del>";
1239
+ }
1240
+ }
1241
+
1242
+ for (var i = 0; i < out.n.length; i++) {
1243
+ if (out.n[i].text == null) {
1244
+ str += '<ins>' + out.n[i] + nSpace[i] + "</ins>";
1245
+ }
1246
+ else {
1247
+ var pre = "";
1248
+
1249
+ for (n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++) {
1250
+ pre += '<del>' + out.o[n] + oSpace[n] + "</del>";
1251
+ }
1252
+ str += " " + out.n[i].text + nSpace[i] + pre;
1253
+ }
1254
+ }
1255
+ }
1256
+
1257
+ return str;
1258
+ }
1259
+ })();
1260
+
1261
+ })(this);