alchemy 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 @@
1
+ (function(b){var a={series:{stack:null}};function c(f){function d(k,j){var h=null;for(var g=0;g<j.length;++g){if(k==j[g]){break}if(j[g].stack==k.stack){h=j[g]}}return h}function e(C,v,g){if(v.stack==null){return}var p=d(v,C.getData());if(!p){return}var z=g.pointsize,F=g.points,h=p.datapoints.pointsize,y=p.datapoints.points,t=[],x,w,k,J,I,r,u=v.lines.show,G=v.bars.horizontal,o=z>2&&(G?g.format[2].x:g.format[2].y),n=u&&v.lines.steps,E=true,q=G?1:0,H=G?0:1,D=0,B=0,A;while(true){if(D>=F.length){break}A=t.length;if(F[D]==null){for(m=0;m<z;++m){t.push(F[D+m])}D+=z}else{if(B>=y.length){if(!u){for(m=0;m<z;++m){t.push(F[D+m])}}D+=z}else{if(y[B]==null){for(m=0;m<z;++m){t.push(null)}E=true;B+=h}else{x=F[D+q];w=F[D+H];J=y[B+q];I=y[B+H];r=0;if(x==J){for(m=0;m<z;++m){t.push(F[D+m])}t[A+H]+=I;r=I;D+=z;B+=h}else{if(x>J){if(u&&D>0&&F[D-z]!=null){k=w+(F[D-z+H]-w)*(J-x)/(F[D-z+q]-x);t.push(J);t.push(k+I);for(m=2;m<z;++m){t.push(F[D+m])}r=I}B+=h}else{if(E&&u){D+=z;continue}for(m=0;m<z;++m){t.push(F[D+m])}if(u&&B>0&&y[B-h]!=null){r=I+(y[B-h+H]-I)*(x-J)/(y[B-h+q]-J)}t[A+H]+=r;D+=z}}E=false;if(A!=t.length&&o){t[A+2]+=r}}}}if(n&&A!=t.length&&A>0&&t[A]!=null&&t[A]!=t[A-z]&&t[A+1]!=t[A-z+1]){for(m=0;m<z;++m){t[A+z+m]=t[A+m]}t[A+1]=t[A-z+1]}}g.points=t}f.hooks.processDatapoints.push(e)}b.plot.plugins.push({init:c,options:a,name:"stack",version:"1.2"})})(jQuery);
@@ -0,0 +1,70 @@
1
+ /*
2
+ Flot plugin that adds some extra symbols for plotting points.
3
+
4
+ The symbols are accessed as strings through the standard symbol
5
+ choice:
6
+
7
+ series: {
8
+ points: {
9
+ symbol: "square" // or "diamond", "triangle", "cross"
10
+ }
11
+ }
12
+
13
+ */
14
+
15
+ (function ($) {
16
+ function processRawData(plot, series, datapoints) {
17
+ // we normalize the area of each symbol so it is approximately the
18
+ // same as a circle of the given radius
19
+
20
+ var handlers = {
21
+ square: function (ctx, x, y, radius, shadow) {
22
+ // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
23
+ var size = radius * Math.sqrt(Math.PI) / 2;
24
+ ctx.rect(x - size, y - size, size + size, size + size);
25
+ },
26
+ diamond: function (ctx, x, y, radius, shadow) {
27
+ // pi * r^2 = 2s^2 => s = r * sqrt(pi/2)
28
+ var size = radius * Math.sqrt(Math.PI / 2);
29
+ ctx.moveTo(x - size, y);
30
+ ctx.lineTo(x, y - size);
31
+ ctx.lineTo(x + size, y);
32
+ ctx.lineTo(x, y + size);
33
+ ctx.lineTo(x - size, y);
34
+ },
35
+ triangle: function (ctx, x, y, radius, shadow) {
36
+ // pi * r^2 = 1/2 * s^2 * sin (pi / 3) => s = r * sqrt(2 * pi / sin(pi / 3))
37
+ var size = radius * Math.sqrt(2 * Math.PI / Math.sin(Math.PI / 3));
38
+ var height = size * Math.sin(Math.PI / 3);
39
+ ctx.moveTo(x - size/2, y + height/2);
40
+ ctx.lineTo(x + size/2, y + height/2);
41
+ if (!shadow) {
42
+ ctx.lineTo(x, y - height/2);
43
+ ctx.lineTo(x - size/2, y + height/2);
44
+ }
45
+ },
46
+ cross: function (ctx, x, y, radius, shadow) {
47
+ // pi * r^2 = (2s)^2 => s = r * sqrt(pi)/2
48
+ var size = radius * Math.sqrt(Math.PI) / 2;
49
+ ctx.moveTo(x - size, y - size);
50
+ ctx.lineTo(x + size, y + size);
51
+ ctx.moveTo(x - size, y + size);
52
+ ctx.lineTo(x + size, y - size);
53
+ }
54
+ }
55
+
56
+ var s = series.points.symbol;
57
+ if (handlers[s])
58
+ series.points.symbol = handlers[s];
59
+ }
60
+
61
+ function init(plot) {
62
+ plot.hooks.processDatapoints.push(processRawData);
63
+ }
64
+
65
+ $.plot.plugins.push({
66
+ init: init,
67
+ name: 'symbols',
68
+ version: '1.0'
69
+ });
70
+ })(jQuery);
@@ -0,0 +1 @@
1
+ (function(b){function a(h,e,g){var d={square:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI)/2;k.rect(j-l,n-l,l+l,l+l)},diamond:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI/2);k.moveTo(j-l,n);k.lineTo(j,n-l);k.lineTo(j+l,n);k.lineTo(j,n+l);k.lineTo(j-l,n)},triangle:function(l,k,o,j,n){var m=j*Math.sqrt(2*Math.PI/Math.sin(Math.PI/3));var i=m*Math.sin(Math.PI/3);l.moveTo(k-m/2,o+i/2);l.lineTo(k+m/2,o+i/2);if(!n){l.lineTo(k,o-i/2);l.lineTo(k-m/2,o+i/2)}},cross:function(k,j,n,i,m){var l=i*Math.sqrt(Math.PI)/2;k.moveTo(j-l,n-l);k.lineTo(j+l,n+l);k.moveTo(j-l,n+l);k.lineTo(j+l,n-l)}};var f=e.points.symbol;if(d[f]){e.points.symbol=d[f]}}function c(d){d.hooks.processDatapoints.push(a)}b.plot.plugins.push({init:c,name:"symbols",version:"1.0"})})(jQuery);
@@ -0,0 +1,103 @@
1
+ /*
2
+ Flot plugin for thresholding data. Controlled through the option
3
+ "threshold" in either the global series options
4
+
5
+ series: {
6
+ threshold: {
7
+ below: number
8
+ color: colorspec
9
+ }
10
+ }
11
+
12
+ or in a specific series
13
+
14
+ $.plot($("#placeholder"), [{ data: [ ... ], threshold: { ... }}])
15
+
16
+ The data points below "below" are drawn with the specified color. This
17
+ makes it easy to mark points below 0, e.g. for budget data.
18
+
19
+ Internally, the plugin works by splitting the data into two series,
20
+ above and below the threshold. The extra series below the threshold
21
+ will have its label cleared and the special "originSeries" attribute
22
+ set to the original series. You may need to check for this in hover
23
+ events.
24
+ */
25
+
26
+ (function ($) {
27
+ var options = {
28
+ series: { threshold: null } // or { below: number, color: color spec}
29
+ };
30
+
31
+ function init(plot) {
32
+ function thresholdData(plot, s, datapoints) {
33
+ if (!s.threshold)
34
+ return;
35
+
36
+ var ps = datapoints.pointsize, i, x, y, p, prevp,
37
+ thresholded = $.extend({}, s); // note: shallow copy
38
+
39
+ thresholded.datapoints = { points: [], pointsize: ps };
40
+ thresholded.label = null;
41
+ thresholded.color = s.threshold.color;
42
+ thresholded.threshold = null;
43
+ thresholded.originSeries = s;
44
+ thresholded.data = [];
45
+
46
+ var below = s.threshold.below,
47
+ origpoints = datapoints.points,
48
+ addCrossingPoints = s.lines.show;
49
+
50
+ threspoints = [];
51
+ newpoints = [];
52
+
53
+ for (i = 0; i < origpoints.length; i += ps) {
54
+ x = origpoints[i]
55
+ y = origpoints[i + 1];
56
+
57
+ prevp = p;
58
+ if (y < below)
59
+ p = threspoints;
60
+ else
61
+ p = newpoints;
62
+
63
+ if (addCrossingPoints && prevp != p && x != null
64
+ && i > 0 && origpoints[i - ps] != null) {
65
+ var interx = (x - origpoints[i - ps]) / (y - origpoints[i - ps + 1]) * (below - y) + x;
66
+ prevp.push(interx);
67
+ prevp.push(below);
68
+ for (m = 2; m < ps; ++m)
69
+ prevp.push(origpoints[i + m]);
70
+
71
+ p.push(null); // start new segment
72
+ p.push(null);
73
+ for (m = 2; m < ps; ++m)
74
+ p.push(origpoints[i + m]);
75
+ p.push(interx);
76
+ p.push(below);
77
+ for (m = 2; m < ps; ++m)
78
+ p.push(origpoints[i + m]);
79
+ }
80
+
81
+ p.push(x);
82
+ p.push(y);
83
+ }
84
+
85
+ datapoints.points = newpoints;
86
+ thresholded.datapoints.points = threspoints;
87
+
88
+ if (thresholded.datapoints.points.length > 0)
89
+ plot.getData().push(thresholded);
90
+
91
+ // FIXME: there are probably some edge cases left in bars
92
+ }
93
+
94
+ plot.hooks.processDatapoints.push(thresholdData);
95
+ }
96
+
97
+ $.plot.plugins.push({
98
+ init: init,
99
+ options: options,
100
+ name: 'threshold',
101
+ version: '1.0'
102
+ });
103
+ })(jQuery);
@@ -0,0 +1 @@
1
+ (function(B){var A={series:{threshold:null}};function C(D){function E(L,S,M){if(!S.threshold){return }var F=M.pointsize,I,O,N,G,K,H=B.extend({},S);H.datapoints={points:[],pointsize:F};H.label=null;H.color=S.threshold.color;H.threshold=null;H.originSeries=S;H.data=[];var P=S.threshold.below,Q=M.points,R=S.lines.show;threspoints=[];newpoints=[];for(I=0;I<Q.length;I+=F){O=Q[I];N=Q[I+1];K=G;if(N<P){G=threspoints}else{G=newpoints}if(R&&K!=G&&O!=null&&I>0&&Q[I-F]!=null){var J=(O-Q[I-F])/(N-Q[I-F+1])*(P-N)+O;K.push(J);K.push(P);for(m=2;m<F;++m){K.push(Q[I+m])}G.push(null);G.push(null);for(m=2;m<F;++m){G.push(Q[I+m])}G.push(J);G.push(P);for(m=2;m<F;++m){G.push(Q[I+m])}}G.push(O);G.push(N)}M.points=newpoints;H.datapoints.points=threspoints;if(H.datapoints.points.length>0){L.getData().push(H)}}D.hooks.processDatapoints.push(E)}B.plot.plugins.push({init:C,options:A,name:"threshold",version:"1.0"})})(jQuery);
@@ -0,0 +1,3 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg onload="window.parent.svgManager._registerSVG();" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ </svg>
@@ -0,0 +1,67 @@
1
+ //var chartArea = [[0.1, 0.1, 0.95, 0.9], [0.2, 0.1, 0.95, 0.9],
2
+ // [0.1, 0.1, 0.8, 0.9], [0.1, 0.25, 0.9, 0.9], [0.1, 0.1, 0.9, 0.8]];
3
+ //var legendArea = [[0.0, 0.0, 0.0, 0.0], [0.005, 0.1, 0.125, 0.5],
4
+ // [0.875, 0.1, 0.995, 0.5], [0.2, 0.1, 0.8, 0.2], [0.2, 0.9, 0.8, 0.995]];
5
+ //var fills = [['lightblue', 'url(#fadeBlue)'], ['pink', 'url(#fadeRed)'],
6
+ // ['lightgreen', 'url(#fadeGreen)']];
7
+ function buildGraph(options) {
8
+ var settings = $.extend({
9
+ svg_container: "",
10
+ graph_url: "test",
11
+ id: 1,
12
+ dataType: "summary",
13
+ chartType: "line", //tell svg plugin if we want line, bar, or pie graphs
14
+ chartTitle: "",
15
+ timeframe: "7 days",
16
+ xTitle: "",
17
+ yTitle: ""
18
+ },options||{});
19
+ var svg = svgManager.getSVGFor(settings.svg_container);
20
+ var params = {
21
+ id:settings.id, //id of the node to get graph data for
22
+ type:settings.dataType, /*this will be what we pass in to tell
23
+ *the data api what kind of data to return*/
24
+ timeframe:settings.timeframe, //what time period do we want back from the data api?
25
+ isJSON:true}; /*while this is not used right now, there is the chance we will want to
26
+ call the data api before rendering the page, this is a flag to allow that*/
27
+ $.getJSON(settings.graph_url, params, function(response) {
28
+ var defs = svg.defs();
29
+ var legendPos = 1;
30
+ /*
31
+ * Everything else that is commented out from here down is experimental stuff that we shouldn't need right away,
32
+ * but may want to play with as we make this look nicer.
33
+ */
34
+ //svg.linearGradient(defs, 'fadeBlue', [[0, 'lightblue'], [1, 'blue']]);
35
+ //svg.linearGradient(defs, 'fadeRed', [[0, 'pink'], [1, 'red']]);
36
+ //svg.linearGradient(defs, 'fadeGreen', [[0, 'lightgreen'], [1, 'green']]);
37
+ svg.graph.noDraw().title(settings.chartTitle,10).
38
+ chartFormat('lightyellow', 'gray').
39
+ //gridlines({stroke: 'gray', stroke_dasharray: '2,2'}, 'gray').
40
+ status(setStatus);
41
+ $(response.dataset).each(function(){
42
+ svg.graph.noDraw().
43
+ addSeries(this.name, this.values, this.fill, this.stroke, this.strokeWidth);
44
+
45
+ });
46
+ svg.graph.xAxis.title(settings.xTitle).scale(0, 3);
47
+ if (response.timepoints.length > 0){
48
+ svg.graph.xAxis.ticks(1, 0).labels(response.timepoints);
49
+ }
50
+ svg.graph.yAxis.title(settings.yTitle).scale(-5, 105).ticks(10, 5);
51
+ //svg.graph.legend.settings({fill: 'lightgoldenrodyellow', stroke: 'gray'});
52
+ svg.graph.legend.show(legendPos).area([0.0, 0.0, 0.0, 0.0]);
53
+ //for (var i = 0; i < 3; i++) {
54
+ // svg.graph.series()[i].format((fills[i])[0]);
55
+ //}
56
+ svg.graph.noDraw().//chartArea(chartArea[legendPos]).
57
+ chartType(settings.chartType, {explode: [2], explodeDist: 10}).redraw();
58
+
59
+ });
60
+ }
61
+ /*callback function for when you mouse over the data.
62
+ *I hope for this eventually to highlight the datapoint and show any additional information
63
+ *the design may call for.
64
+ **/
65
+ function setStatus(value) {
66
+ //alert(value);
67
+ }
@@ -0,0 +1,9 @@
1
+ /* http://home.iprimus.com.au/kbwood/jquery/svg.html
2
+ SVG for jQuery v1.0.0.
3
+ Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
4
+ Under the Creative Commons Licence http://creativecommons.org/licenses/by/3.0/
5
+ Share or Remix it but please Attribute the author. */
6
+
7
+ svg\:svg { display: none; }
8
+
9
+ .svg_error { color: red; font-weight: bold; }
@@ -0,0 +1,1101 @@
1
+ /* http://keith-wood.name/svg.html
2
+ SVG for jQuery v1.0.1.
3
+ Written by Keith Wood (kbwood@iprimus.com.au) August 2007.
4
+ Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and
5
+ MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses.
6
+ Please attribute the author if you use it. */
7
+
8
+ var svgManager = null;
9
+
10
+ (function($) { // Hide scope, no $ conflict
11
+
12
+ /* SVG manager.
13
+ Use the singleton instance of this class, svgManager,
14
+ to interact with the SVG functionality. */
15
+ function SVGManager() {
16
+ this._nextId = 0; // Next ID for a SVG root
17
+ this._svgs = []; // List of SVG roots indexed by ID
18
+ this._settings = []; // Settings to be remembered per SVG object:
19
+ // [0] is width, [1] is height, [2] is URL to load initially, [3] is callback function
20
+ this._extensions = []; // List of SVG extensions added to SVGRoot
21
+ // for each entry [0] is extension name, [1] is extension class (function)
22
+ // the function takes one parameter - the SVGRoot instance
23
+ this.regional = []; // Localisations, indexed by language, '' for default (English)
24
+ this.regional[''] = {notSupportedText: 'This browser does not support SVG',
25
+ errorLoadingText: 'Error loading'};
26
+ this.local = this.regional['']; // Current localisation
27
+ }
28
+
29
+ $.extend(SVGManager.prototype, {
30
+ /* SVG namespace. */
31
+ svgNS: 'http://www.w3.org/2000/svg',
32
+ /* XLink namespace. */
33
+ xlinkNS: 'http://www.w3.org/1999/xlink',
34
+
35
+ /* SVG root class. */
36
+ _rootClass: SVGRoot,
37
+
38
+ /* Add the SVG object to its container. */
39
+ _connectSVG: function(container, loadURL, onLoad, settings) {
40
+ var id = this._nextId++;
41
+ container._svgId = id;
42
+ var svg = null;
43
+ if ($.browser.msie) {
44
+ container.innerHTML = '<embed type="image/svg+xml" width="' + container.clientWidth +
45
+ '" height="' + container.clientHeight + '" src="blank.svg"/>';
46
+ this._settings[id] = [container, loadURL, settings, onLoad];
47
+ }
48
+ else if (document.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#SVG","1.1") ||
49
+ document.implementation.hasFeature("org.w3c.svg", "1.1")) {
50
+ svg = document.createElementNS(this.svgNS, 'svg');
51
+ svg.setAttribute('version', '1.1');
52
+ svg.setAttribute('width', container.clientWidth);
53
+ svg.setAttribute('height', container.clientHeight);
54
+ container.appendChild(svg);
55
+ this._afterLoad(id, svg, [container, loadURL, settings, onLoad]);
56
+ }
57
+ else {
58
+ container.innerHTML = '<p class="svg_error">' + this.local.notSupportedText + '</p>';
59
+ }
60
+ return id;
61
+ },
62
+
63
+ /* SVG callback after loading - register SVG root. */
64
+ _registerSVG: function() {
65
+ for (var i = 0; i < document.embeds.length; i++) { // Check all
66
+ var id = document.embeds[i].parentNode._svgId;
67
+ var svg = document.embeds[i].getSVGDocument();
68
+ svg = (svg ? svg.documentElement : null);
69
+ if (id != null && svg && !this._svgs[id]) { // Valid and not already done
70
+ this._afterLoad(id, svg);
71
+ }
72
+ }
73
+ },
74
+
75
+ /* Post-processing once loaded. */
76
+ _afterLoad: function(id, svg, settings) {
77
+ var settings = settings || this._settings[id];
78
+ var root = this._svgs[id] = new this._rootClass(svg, settings[0]);
79
+ if (settings[1]) { // Load URL
80
+ root.load(settings[1]);
81
+ }
82
+ if (settings[2]) { // Additional settings
83
+ root.configure(settings[2]);
84
+ }
85
+ if (settings[3]) { // Onload callback
86
+ settings[3](settings[0]);
87
+ }
88
+ },
89
+
90
+ /* Return the SVG root created for a given container.
91
+ @param container string - selector for the container or
92
+ element - the container for the SVG object or
93
+ jQuery collection - first entry is the container
94
+ @return the corresponding SVG root element, or null if not attached */
95
+ getSVGFor: function(container) {
96
+ container = (typeof container == 'string' ? $(container)[0] :
97
+ (container.jquery ? container[0] : container));
98
+ return this._svgs[container._svgId];
99
+ },
100
+
101
+ /* Extend the SVGRoot object with an embedded class.
102
+ The constructor function must take a single parameter that is
103
+ a reference to the owning SVG root object. This allows the
104
+ extension to access the basic SVG functionality.
105
+ @param name string - the name of the SVGRoot attribute to access the new class
106
+ @param extClass function - the extension class constructor */
107
+ addExtension: function(name, extClass) {
108
+ this._extensions[this._extensions.length] = [name, extClass];
109
+ }
110
+ });
111
+
112
+
113
+
114
+ /* The main SVG interface, which encapsulates the SVG element.
115
+ Obtain a reference from svgManager.getSVGFor(). */
116
+ function SVGRoot(svg, container) {
117
+ this._svg = svg; // The SVG root node
118
+ this._container = container; // The containing div
119
+ for (var i = 0; i < svgManager._extensions.length; i++) {
120
+ var extension = svgManager._extensions[i];
121
+ this[extension[0]] = new extension[1](this);
122
+ }
123
+ }
124
+
125
+ $.extend(SVGRoot.prototype, {
126
+
127
+ /* Retrieve the width of the SVG object. */
128
+ _width: function() {
129
+ return this._container.clientWidth;
130
+ },
131
+
132
+ /* Retrieve the height of the SVG object. */
133
+ _height: function() {
134
+ return this._container.clientHeight;
135
+ },
136
+
137
+ /* Configure the SVG root.
138
+ @param settings object - additional settings for the root
139
+ @param clear boolean - true to remove existing attributes first,
140
+ false to add to what is already there (optional)
141
+ @return this root */
142
+ configure: function(settings, clear) {
143
+ if (clear) {
144
+ for (var i = this._svg.attributes.length - 1; i >= 0; i--) {
145
+ var attr = this._svg.attributes.item(i);
146
+ if (!(attr.nodeName == 'onload' || attr.nodeName == 'version' ||
147
+ attr.nodeName.substring(0, 5) == 'xmlns')) {
148
+ this._svg.attributes.removeNamedItem(attr.nodeName);
149
+ }
150
+ }
151
+ }
152
+ for (var attrName in settings) {
153
+ this._svg.setAttribute(attrName, settings[attrName]);
154
+ }
155
+ return this;
156
+ },
157
+
158
+ /* Locate a specific element in the SVG document.
159
+ @param id the element's identifier
160
+ @return the element reference, or null if not found */
161
+ getElementById: function(id) {
162
+ return this._svg.getElementById(id);
163
+ },
164
+
165
+ /* Add a title.
166
+ @param parent element - the parent node for the new title
167
+ @param text string - the text of the title
168
+ @param settings object - additional settings for the title (optional)
169
+ @return the new title node */
170
+ title: function(parent, text, settings) {
171
+ var node = this._makeNode(parent, 'title', settings || {});
172
+ node.appendChild(this._svg.ownerDocument.createTextNode(text));
173
+ return node;
174
+ },
175
+
176
+ /* Add a description.
177
+ @param parent element - the parent node for the new description
178
+ @param text string - the text of the description
179
+ @param settings object - additional settings for the description (optional)
180
+ @return the new description node */
181
+ describe: function(parent, text, settings) {
182
+ var node = this._makeNode(parent, 'desc', settings || {});
183
+ node.appendChild(this._svg.ownerDocument.createTextNode(text));
184
+ return node;
185
+ },
186
+
187
+ /* Add a definitions node.
188
+ @param parent element - the parent node for the new definitions
189
+ @param id string - the ID of this definitions (optional)
190
+ @param settings object - additional settings for the definitions (optional)
191
+ @return the new definitions node */
192
+ defs: function(parent, id, settings) {
193
+ if (typeof id != 'string') {
194
+ settings = id;
195
+ id = null;
196
+ }
197
+ return this._makeNode(parent, 'defs', $.extend(
198
+ (id ? {id: id} : {}), settings || {}));
199
+ },
200
+
201
+ /* Add a symbol definition.
202
+ @param parent element - the parent node for the new symbol
203
+ @param id string - the ID of this symbol
204
+ @param x1 number - the left coordinate for this symbol
205
+ @param y1 number - the top coordinate for this symbol
206
+ @param x2 number - the right coordinate for this symbol
207
+ @param y2 number - the bottom coordinate for this symbol
208
+ @param settings object - additional settings for the symbol (optional)
209
+ @return the new symbol node */
210
+ symbol: function(parent, id, x1, y1, x2, y2, settings) {
211
+ return this._makeNode(parent, 'symbol', $.extend(
212
+ {id: id, viewBox: x1 + ' ' + y1 + ' ' + x2 + ' ' + y2}, settings || {}));
213
+ },
214
+
215
+ /* Add a marker definition.
216
+ @param parent element - the parent node for the new marker
217
+ @param id string - the ID of this marker
218
+ @param refX number - the x-coordinate for the reference point
219
+ @param refY number - the y-coordinate for the reference point
220
+ @param mWidth number - the marker viewport width
221
+ @param mHeight number - the marker viewport height
222
+ @param orient string or int - 'auto' or angle (degrees) (optional)
223
+ @param settings object - additional settings for the marker (optional)
224
+ @return the new marker node */
225
+ marker: function(parent, id, refX, refY, mWidth, mHeight, orient, settings) {
226
+ if (typeof orient == 'object') {
227
+ settings = orient;
228
+ orient = null;
229
+ }
230
+ return this._makeNode(parent, 'marker', $.extend(
231
+ {id: id, refX: refX, refY: refY, markerWidth: mWidth,
232
+ markerHeight: mHeight, orient: orient || 'auto'}, settings || {}));
233
+ },
234
+
235
+ /* Add a style node.
236
+ @param parent element - the parent node for the new node
237
+ @param styles string - the CSS styles
238
+ @param settings object - additional settings for the node (optional)
239
+ @return the new style node */
240
+ style: function(parent, styles, settings) {
241
+ var node = this._makeNode(parent, 'style', $.extend(
242
+ {type: 'text/css'}, settings || {}));
243
+ node.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(styles)));
244
+ return node;
245
+ },
246
+
247
+ /* Add a script node.
248
+ @param parent element - the parent node for the new node
249
+ @param script string - the JavaScript code
250
+ @param type string - the MIME type for the code (optional, default 'text/javascript')
251
+ @param settings object - additional settings for the node (optional)
252
+ @return the new script node */
253
+ script: function(parent, script, type, settings) {
254
+ if (typeof type == 'object') {
255
+ settings = type;
256
+ type = null;
257
+ }
258
+ var node = this._makeNode(parent, 'script', $.extend(
259
+ {type: type || 'text/javascript'}, settings || {}));
260
+ node.appendChild(this._svg.ownerDocument.createTextNode(this._escapeXML(script)));
261
+ return node;
262
+ },
263
+
264
+ /* Add a linear gradient definition.
265
+ Specify all of x1, y1, x2, y2 or none of them.
266
+ @param parent element - the parent node for the new gradient
267
+ @param id string - the ID for this gradient
268
+ @param stops string[][] - the gradient stops, each entry is
269
+ [0] is offset (0.0-1.0 or 0%-100%), [1] is colour,
270
+ [2] is opacity (optional)
271
+ @param x1 number - the x-coordinate of the gradient start (optional)
272
+ @param y1 number - the y-coordinate of the gradient start (optional)
273
+ @param x2 number - the x-coordinate of the gradient end (optional)
274
+ @param y2 number - the y-coordinate of the gradient end (optional)
275
+ @param settings object - additional settings for the gradient (optional)
276
+ @return the new gradient node */
277
+ linearGradient: function(parent, id, stops, x1, y1, x2, y2, settings) {
278
+ if (typeof x1 == 'object') {
279
+ settings = x1;
280
+ x1 = null;
281
+ }
282
+ var sets = $.extend({id: id},
283
+ (x1 != null ? {x1: x1, y1: y1, x2: x2, y2: y2} : {}));
284
+ return this._gradient(parent, 'linearGradient',
285
+ $.extend(sets, settings || {}), stops);
286
+ },
287
+
288
+ /* Add a radial gradient definition.
289
+ Specify all of cx, cy, r, fx, fy or none of them.
290
+ @param parent element - the parent node for the new gradient
291
+ @param id string - the ID for this gradient
292
+ @param stops string[][] - the gradient stops, each entry
293
+ [0] is offset, [1] is colour, [2] is opacity (optional)
294
+ @param cx number - the x-coordinate of the largest circle centre (optional)
295
+ @param cy number - the y-coordinate of the largest circle centre (optional)
296
+ @param r number - the radius of the largest circle (optional)
297
+ @param fx number - the x-coordinate of the gradient focus (optional)
298
+ @param fy number - the y-coordinate of the gradient focus (optional)
299
+ @param settings object - additional settings for the gradient (optional)
300
+ @return the new gradient node */
301
+ radialGradient: function(parent, id, stops, cx, cy, r, fx, fy, settings) {
302
+ if (typeof cx == 'object') {
303
+ settings = cx;
304
+ cx = null;
305
+ }
306
+ var sets = $.extend({id: id},
307
+ (cx != null ? {cx: cx, cy: cy, r: r, fx: fx, fy: fy} : {}));
308
+ return this._gradient(parent, 'radialGradient',
309
+ $.extend(sets, settings || {}), stops);
310
+ },
311
+
312
+ /* Add a gradient node. */
313
+ _gradient: function(parent, name, settings, stops) {
314
+ var node = this._makeNode(parent, name, settings);
315
+ for (var i = 0; i < stops.length; i++) {
316
+ var stop = stops[i];
317
+ this._makeNode(node, 'stop', $.extend(
318
+ {offset: stop[0], stop_color: stop[1]},
319
+ (stop[2] != null ? {stop_opacity: stop[2]} : {})));
320
+ }
321
+ return node;
322
+ },
323
+
324
+ /* Add a pattern definition.
325
+ Specify all of vx, vy, xwidth, vheight or none of them.
326
+ @param parent element - the parent node for the new pattern
327
+ @param id string - the ID for this pattern
328
+ @param x number - the x-coordinate for the left edge of the pattern
329
+ @param y number - the y-coordinate for the top edge of the pattern
330
+ @param width number - the width of the pattern
331
+ @param height number - the height of the pattern
332
+ @param vx number - the minimum x-coordinate for view box (optional)
333
+ @param vy number - the minimum y-coordinate for the view box (optional)
334
+ @param vwidth number - the width of the view box (optional)
335
+ @param vheight number - the height of the view box (optional)
336
+ @param settings object - additional settings for the pattern (optional)
337
+ @return the new pattern node */
338
+ pattern: function(parent, id, x, y, width, height, vx, vy, vwidth, vheight, settings) {
339
+ if (typeof vx == 'object') {
340
+ settings = vx;
341
+ vx = null;
342
+ }
343
+ var sets = $.extend({id: id, x: x, y: y, width: width, height: height},
344
+ (vx != null ? {viewBox: vx + ' ' + vy + ' ' + vwidth + ' ' + vheight} : {}));
345
+ return this._makeNode(parent, 'pattern', $.extend(sets, settings || {}));
346
+ },
347
+
348
+ /* Add a mask definition.
349
+ @param parent element - the parent node for the new mask
350
+ @param id string - the ID for this mask
351
+ @param x number - the x-coordinate for the left edge of the mask
352
+ @param y number - the y-coordinate for the top edge of the mask
353
+ @param width number - the width of the mask
354
+ @param height number - the height of the mask
355
+ @param settings object - additional settings for the mask (optional)
356
+ @return the new mask node */
357
+ mask: function(parent, id, x, y, width, height, settings) {
358
+ return this._makeNode(parent, 'mask', $.extend(
359
+ {id: id, x: x, y: y, width: width, height: height}, settings || {}));
360
+ },
361
+
362
+ /* Create a new path object.
363
+ @return a new path object */
364
+ createPath: function() {
365
+ return new SVGPath();
366
+ },
367
+
368
+ /* Create a new text object.
369
+ @return a new text object */
370
+ createText: function() {
371
+ return new SVGText();
372
+ },
373
+
374
+ /* Add an embedded SVG element.
375
+ Specify all of vx, vy, vwidth, vheight or none of them.
376
+ @param parent element - the parent node for the new node
377
+ @param x number - the x-coordinate for the left edge of the node
378
+ @param y number - the y-coordinate for the top edge of the node
379
+ @param width number - the width of the node
380
+ @param height number - the height of the node
381
+ @param vx number - the minimum x-coordinate for view box (optional)
382
+ @param vy number - the minimum y-coordinate for the view box (optional)
383
+ @param vwidth number - the width of the view box (optional)
384
+ @param vheight number - the height of the view box (optional)
385
+ @param settings object - additional settings for the node (optional)
386
+ @return the new node */
387
+ svg: function(parent, x, y, width, height, vx, vy, vwidth, vheight, settings) {
388
+ if (typeof vx == 'object') {
389
+ settings = vx;
390
+ vx = null;
391
+ }
392
+ var sets = $.extend({x: x, y: y, width: width, height: height},
393
+ (vx != null ? {viewBox: vx + ' ' + vy + ' ' + vwidth + ' ' + vheight} : {}));
394
+ return this._makeNode(parent, 'svg', $.extend(sets, settings || {}));
395
+ },
396
+
397
+ /* Create a group.
398
+ @param parent element - the parent node for the new group
399
+ @param id string - the ID of this group (optional)
400
+ @param settings object - additional settings for the group (optional)
401
+ @return the new group node */
402
+ group: function(parent, id, settings) {
403
+ if (typeof id == 'object') {
404
+ settings = id;
405
+ id = null;
406
+ }
407
+ return this._makeNode(parent, 'g', $.extend({id: id}, settings || {}));
408
+ },
409
+
410
+ /* Add a usage reference.
411
+ Specify all of x, y, width, height or none of them.
412
+ @param parent element - the parent node for the new node
413
+ @param x number - the x-coordinate for the left edge of the node (optional)
414
+ @param y number - the y-coordinate for the top edge of the node (optional)
415
+ @param width number - the width of the node (optional)
416
+ @param height number - the height of the node (optional)
417
+ @param ref string - the ID of the definition node
418
+ @param settings object - additional settings for the node (optional)
419
+ @return the new node */
420
+ use: function(parent, x, y, width, height, ref, settings) {
421
+ if (typeof x == 'string') {
422
+ ref = x;
423
+ settings = y;
424
+ x = y = width = height = null;
425
+ }
426
+ var node = this._makeNode(parent, 'use', $.extend(
427
+ {x: x, y: y, width: width, height: height}, settings || {}));
428
+ node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
429
+ return node;
430
+ },
431
+
432
+ /* Add a link, which applies to all child elements.
433
+ @param parent element - the parent node for the new link
434
+ @param ref string - the target URL
435
+ @param settings object - additional settings for the link (optional)
436
+ @return the new link node */
437
+ link: function(parent, ref, settings) {
438
+ var node = this._makeNode(parent, 'a', settings);
439
+ node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
440
+ return node;
441
+ },
442
+
443
+ /* Add an image.
444
+ @param parent element - the parent node for the new image
445
+ @param x number - the x-coordinate for the left edge of the image
446
+ @param y number - the y-coordinate for the top edge of the image
447
+ @param width number - the width of the image
448
+ @param height number - the height of the image
449
+ @param ref string - the path to the image
450
+ @param settings object - additional settings for the image (optional)
451
+ @return the new image node */
452
+ image: function(parent, x, y, width, height, ref, settings) {
453
+ var node = this._makeNode(parent, 'image', $.extend(
454
+ {x: x, y: y, width: width, height: height}, settings || {}));
455
+ node.setAttributeNS(svgManager.xlinkNS, 'href', ref);
456
+ return node;
457
+ },
458
+
459
+ /* Draw a path.
460
+ @param parent element - the parent node for the new shape
461
+ @param path string or SVGPath - the path to draw
462
+ @param settings object - additional settings for the shape (optional)
463
+ @return the new shape node */
464
+ path: function(parent, path, settings) {
465
+ return this._makeNode(parent, 'path', $.extend(
466
+ {d: (path.path ? path.path() : path)}, settings || {}));
467
+ },
468
+
469
+ /* Draw a rectangle.
470
+ @param parent element - the parent node for the new shape
471
+ @param x number - the x-coordinate for the left edge of the rectangle
472
+ @param y number - the y-coordinate for the top edge of the rectangle
473
+ @param width number - the width of the rectangle
474
+ @param height number - the height of the rectangle
475
+ @param settings object - additional settings for the shape (optional)
476
+ @return the new shape node */
477
+ rect: function(parent, x, y, width, height, settings) {
478
+ return this._makeNode(parent, 'rect', $.extend(
479
+ {x: x, y: y, width: width, height: height}, settings || {}));
480
+ },
481
+
482
+ /* Draw a rounded rectangle.
483
+ @param parent element - the parent node for the new shape
484
+ @param x number - the x-coordinate for the left edge of the rectangle
485
+ @param y number - the y-coordinate for the top edge of the rectangle
486
+ @param width number - the width of the rectangle
487
+ @param height number - the height of the rectangle
488
+ @param rx number - the x-radius of the ellipse for the rounded corners
489
+ @param ry number - the y-radius of the ellipse for the rounded corners
490
+ @param settings object - additional settings for the shape (optional)
491
+ @return the new shape node */
492
+ roundrect: function(parent, x, y, width, height, rx, ry, settings) {
493
+ return this._makeNode(parent, 'rect', $.extend(
494
+ {x: x, y: y, width: width, height: height, rx: rx, ry: ry}, settings || {}));
495
+ },
496
+
497
+ /* Draw a circle.
498
+ @param parent element - the parent node for the new shape
499
+ @param cx number - the x-coordinate for the centre of the circle
500
+ @param cy number - the y-coordinate for the centre of the circle
501
+ @param r number - the radius of the circle
502
+ @param settings object - additional settings for the shape (optional)
503
+ @return the new shape node */
504
+ circle: function(parent, cx, cy, r, settings) {
505
+ return this._makeNode(parent, 'circle', $.extend(
506
+ {cx: cx, cy: cy, r: r}, settings || {}));
507
+ },
508
+
509
+ /* Draw an ellipse.
510
+ @param parent element - the parent node for the new shape
511
+ @param cx number - the x-coordinate for the centre of the ellipse
512
+ @param cy number - the y-coordinate for the centre of the ellipse
513
+ @param rx number - the x-radius of the ellipse
514
+ @param ry number - the y-radius of the ellipse
515
+ @param settings object - additional settings for the shape (optional)
516
+ @return the new shape node */
517
+ ellipse: function(parent, cx, cy, rx, ry, settings) {
518
+ return this._makeNode(parent, 'ellipse', $.extend(
519
+ {cx: cx, cy: cy, rx: rx, ry: ry}, settings || {}));
520
+ },
521
+
522
+ /* Draw a line.
523
+ @param parent element - the parent node for the new shape
524
+ @param x1 number - the x-coordinate for the start of the line
525
+ @param y1 number - the y-coordinate for the start of the line
526
+ @param x2 number - the x-coordinate for the end of the line
527
+ @param y2 number - the y-coordinate for the end of the line
528
+ @param settings object - additional settings for the shape (optional)
529
+ @return the new shape node */
530
+ line: function(parent, x1, y1, x2, y2, settings) {
531
+ return this._makeNode(parent, 'line', $.extend(
532
+ {x1: x1, y1: y1, x2: x2, y2: y2}, settings || {}));
533
+ },
534
+
535
+ /* Draw a polygonal line.
536
+ @param parent element - the parent node for the new shape
537
+ @param points number[][] - the x-/y-coordinates for the points on the line
538
+ @param settings object - additional settings for the shape (optional)
539
+ @return the new shape node */
540
+ polyline: function(parent, points, settings) {
541
+ return this._poly(parent, 'polyline', points, settings);
542
+ },
543
+
544
+ /* Draw a polygonal shape.
545
+ @param parent element - the parent node for the new shape
546
+ @param points number[][] - the x-/y-coordinates for the points on the shape
547
+ @param settings object - additional settings for the shape (optional)
548
+ @return the new shape node */
549
+ polygon: function(parent, points, settings) {
550
+ return this._poly(parent, 'polygon', points, settings);
551
+ },
552
+
553
+ /* Draw a polygonal line or shape. */
554
+ _poly: function(parent, name, points, settings) {
555
+ var ps = '';
556
+ for (var i = 0; i < points.length; i++) {
557
+ ps += points[i].join() + ' ';
558
+ }
559
+ return this._makeNode(parent, name, $.extend(
560
+ {points: ps}, settings || {}));
561
+ },
562
+
563
+ /* Draw text.
564
+ Specify both of x and y or neither of them.
565
+ @param parent element - the parent node for the text
566
+ @param x number or number[] - the x-coordinate(s) for the text (optional)
567
+ @param y number or number[] - the y-coordinate(s) for the text (optional)
568
+ @param value string - the text content or
569
+ SVGText - text with spans and references
570
+ @param settings object - additional settings for the text (optional)
571
+ @return the new text node */
572
+ text: function(parent, x, y, value, settings) {
573
+ if (typeof x == 'string' && arguments.length < 4) {
574
+ value = x;
575
+ settings = y;
576
+ x = y = null;
577
+ }
578
+ return this._text(parent, 'text', value, $.extend(
579
+ {x: (x && isArray(x) ? x.join(' ') : x), y: (y && isArray(y) ? y.join(' ') : y)},
580
+ settings || {}));
581
+ },
582
+
583
+ /* Draw text along a path.
584
+ @param parent element - the parent node for the text
585
+ @param path string - the ID of the path
586
+ @param value string - the text content or
587
+ SVGText - text with spans and references
588
+ @param settings object - additional settings for the text (optional)
589
+ @return the new text node */
590
+ textpath: function(parent, path, value, settings) {
591
+ var node = this._text(parent, 'textPath', value, settings || {});
592
+ node.setAttributeNS(svgManager.xlinkNS, 'href', path);
593
+ return node;
594
+ },
595
+
596
+ /* Draw text. */
597
+ _text: function(parent, name, value, settings) {
598
+ var node = this._makeNode(parent, name, settings);
599
+ if (typeof value == 'string') {
600
+ node.appendChild(node.ownerDocument.createTextNode(value));
601
+ }
602
+ else {
603
+ for (var i = 0; i < value._parts.length; i++) {
604
+ var part = value._parts[i];
605
+ if (part[0] == 'tspan') {
606
+ var child = this._makeNode(node, part[0], part[2]);
607
+ child.appendChild(node.ownerDocument.createTextNode(part[1]));
608
+ node.appendChild(child);
609
+ }
610
+ else if (part[0] == 'tref') {
611
+ var child = this._makeNode(node, part[0], part[2]);
612
+ child.setAttributeNS(svgManager.xlinkNS, 'href', part[1]);
613
+ node.appendChild(child);
614
+ }
615
+ else if (part[0] == 'textpath') {
616
+ var pathId = part[2].href;
617
+ part[2].href = null;
618
+ var child = this._makeNode(node, part[0], part[2]);
619
+ child.setAttributeNS(svgManager.xlinkNS, 'href', pathId);
620
+ child.appendChild(node.ownerDocument.createTextNode(part[1]));
621
+ node.appendChild(child);
622
+ }
623
+ else { // straight text
624
+ node.appendChild(node.ownerDocument.createTextNode(part[1]));
625
+ }
626
+ }
627
+ }
628
+ return node;
629
+ },
630
+
631
+ /* Add a custom SVG element.
632
+ @param parent element - the parent node for the new element
633
+ @param name string - the name of the element
634
+ @param settings object - additional settings for the element (optional)
635
+ @return the new title node */
636
+ other: function(parent, name, settings) {
637
+ return this._makeNode(parent, other, settings || {});
638
+ },
639
+
640
+ /* Create a shape node with the given settings. */
641
+ _makeNode: function(parent, name, settings) {
642
+ parent = parent || this._svg;
643
+ var node = this._svg.ownerDocument.createElementNS(svgManager.svgNS, name);
644
+ for (var name in settings) {
645
+ var value = settings[name];
646
+ if (value != null && value != null &&
647
+ (typeof value != 'string' || value != '')) {
648
+ node.setAttribute(this._fromJSName(name), value);
649
+ }
650
+ }
651
+ parent.appendChild(node);
652
+ return node;
653
+ },
654
+
655
+ /* JavaScript identifiers can't use '-', so convert from '_'. */
656
+ _fromJSName: function(name) {
657
+ return name.replace(/^_/, '').replace(/_/g, '-');
658
+ },
659
+
660
+ /* Add an existing SVG node to the diagram.
661
+ @param parent element - the parent node for the new node
662
+ @param node element - the new node to add or
663
+ string - the jQuery selector for the node or
664
+ jQuery collection - set of nodes to add */
665
+ add: function(parent, node) {
666
+ var svg = this;
667
+ parent = parent || this._svg;
668
+ node = (node.jquery ? node : $(node));
669
+ node.each(function() {
670
+ var child = svg._cloneAsSVG(this);
671
+ if (child) {
672
+ parent.appendChild(child);
673
+ }
674
+ });
675
+ },
676
+
677
+ /* SVG nodes must belong to the SVG namespace, so clone and ensure this is so. */
678
+ _cloneAsSVG: function(node) {
679
+ var newNode = null;
680
+ if (node.nodeType == 1) { // element
681
+ newNode = this._svg.ownerDocument.createElementNS(
682
+ node.namespaceURI || svgManager.svgNS, this._checkName(node.nodeName));
683
+ for (var i = 0; i < node.attributes.length; i++) {
684
+ var attr = node.attributes.item(i);
685
+ if (attr.nodeName != 'xmlns') {
686
+ if (attr.prefix == 'xlink') {
687
+ newNode.setAttributeNS(svgManager.xlinkNS, attr.localName, attr.nodeValue);
688
+ }
689
+ else {
690
+ newNode.setAttribute(this._checkName(attr.nodeName), attr.nodeValue);
691
+ }
692
+ }
693
+ }
694
+ for (var i = 0; i < node.childNodes.length; i++) {
695
+ var child = this._cloneAsSVG(node.childNodes[i]);
696
+ if (child) {
697
+ newNode.appendChild(child);
698
+ }
699
+ }
700
+ }
701
+ else if (node.nodeType == 3) { // text
702
+ if ($.trim(node.nodeValue)) {
703
+ newNode = this._svg.ownerDocument.createTextNode(node.nodeValue);
704
+ }
705
+ }
706
+ else if (node.nodeType == 4) { // CDATA
707
+ if ($.trim(node.nodeValue)) {
708
+ newNode = this._svg.ownerDocument.createCDATASection(node.nodeValue);
709
+ }
710
+ }
711
+ return newNode;
712
+ },
713
+
714
+ /* Node names must be lower case and without SVG namespace prefix. */
715
+ _checkName: function(name) {
716
+ name = (name.substring(0, 1) >= 'A' && name.substring(0, 1) <= 'Z' ? name.toLowerCase() : name);
717
+ return (name.substring(0, 4) == 'svg:' ? name.substring(4) : name);
718
+ },
719
+
720
+ /* Load an external SVG document.
721
+ @param url string - the location of the SVG document
722
+ @param addTo boolean - true to add to what's already there, or false to clear the canvas first */
723
+ load: function(url, addTo) {
724
+ if (!addTo) {
725
+ this.clear(true);
726
+ }
727
+ var root = this;
728
+ var http = $.ajax({url: url, dataType: 'xml', success: function(data) {
729
+ if ($.browser.msie) { // Doesn't load properly!
730
+ data.loadXML(http.responseText);
731
+ if (data.parseError.errorCode != 0) {
732
+ root.text(null, 10, 20, svgManager.local.errorLoadingText + ': ' +
733
+ data.parseError.reason);
734
+ return;
735
+ }
736
+ }
737
+ var attrs = {};
738
+ for (var i = 0; i < data.documentElement.attributes.length; i++) {
739
+ var attr = data.documentElement.attributes.item(i);
740
+ if (!(attr.nodeName == 'version' || attr.nodeName.substring(0, 5) == 'xmlns')) {
741
+ attrs[attr.nodeName] = attr.nodeValue;
742
+ }
743
+ }
744
+ root.configure(attrs, true);
745
+ var nodes = data.documentElement.childNodes;
746
+ for (var i = 0; i < nodes.length; i++) {
747
+ root.add(null, nodes[i]);
748
+ }
749
+ }, error: function(http, message, exc) {
750
+ root.text(null, 10, 20, svgManager.local.errorLoadingText + ': ' +
751
+ message + (exc ? ' ' + exc.message : ''));
752
+ }});
753
+ },
754
+
755
+ /* Delete a specified node.
756
+ @param node element - the drawing node to remove */
757
+ remove: function(node) {
758
+ node.parentNode.removeChild(node);
759
+ },
760
+
761
+ /* Delete everything in the current document.
762
+ @param attrsToo boolean - true to clear any root attributes as well,
763
+ false to leave them (optional) */
764
+ clear: function(attrsToo) {
765
+ if (attrsToo) {
766
+ this.configure({}, true);
767
+ }
768
+ while (this._svg.firstChild) {
769
+ this._svg.removeChild(this._svg.firstChild);
770
+ }
771
+ },
772
+
773
+ /* Serialise the current diagram into an SVG text document.
774
+ @return the SVG as text */
775
+ toSVG: function() {
776
+ return this._toSVG(this._svg);
777
+ },
778
+
779
+ /* Serialise one node in the SVG hierarchy. */
780
+ _toSVG: function(node) {
781
+ var svgDoc = '';
782
+ if (!node) {
783
+ return svgDoc;
784
+ }
785
+ if (node.nodeType == 3) { // Text
786
+ svgDoc = node.nodeValue;
787
+ }
788
+ else if (node.nodeType == 4) { // CDATA
789
+ svgDoc = '<![CDATA[' + node.nodeValue + ']]>';
790
+ }
791
+ else { // Element
792
+ svgDoc = '<' + node.nodeName;
793
+ if (node.attributes) {
794
+ for (var i = 0; i < node.attributes.length; i++) {
795
+ var attr = node.attributes.item(i);
796
+ if (!($.trim(attr.nodeValue) == '' || attr.nodeValue.match(/^\[object/) ||
797
+ attr.nodeValue.match(/^function/))) {
798
+ svgDoc += ' ' + (attr.namespaceURI == svgManager.xlinkNS ? 'xlink:' : '') +
799
+ attr.nodeName + '="' + attr.nodeValue + '"';
800
+ }
801
+ }
802
+ }
803
+ if (node.firstChild) {
804
+ svgDoc += '>';
805
+ var child = node.firstChild;
806
+ while (child) {
807
+ svgDoc += this._toSVG(child);
808
+ child = child.nextSibling;
809
+ }
810
+ svgDoc += '</' + node.nodeName + '>';
811
+ }
812
+ else {
813
+ svgDoc += '/>';
814
+ }
815
+ }
816
+ return svgDoc;
817
+ },
818
+
819
+ /* Escape reserved characters in XML. */
820
+ _escapeXML: function(text) {
821
+ text = text.replace(/&/g, '&amp;');
822
+ text = text.replace(/</g, '&lt;');
823
+ text = text.replace(/>/g, '&gt;');
824
+ return text;
825
+ }
826
+ });
827
+
828
+ /* Helper to generate an SVG path.
829
+ Obtain an instance from the SVGRoot object.
830
+ String calls together to generate the path and use its value:
831
+ var path = root.createPath();
832
+ root.path(null, path.moveTo(100, 100).lineTo(300, 100).lineTo(200, 300).close(), {fill: 'red'});
833
+ or
834
+ root.path(null, path.moveTo(100, 100).lineTo([[300, 100], [200, 300]]).close(), {fill: 'red'}); */
835
+ function SVGPath() {
836
+ this._path = '';
837
+ }
838
+
839
+ $.extend(SVGPath.prototype, {
840
+ /* Prepare to create a new path.
841
+ @return this path */
842
+ reset: function() {
843
+ this._path = '';
844
+ return this;
845
+ },
846
+
847
+ /* Move the pointer to a position.
848
+ @param x number - x-coordinate to move to or
849
+ number[][] - x-/y-coordinates to move to
850
+ @param y number - y-coordinate to move to (omitted if x is array)
851
+ @param relative boolean - true for coordinates relative to the current point,
852
+ false for coordinates being absolute
853
+ @return this path */
854
+ moveTo: function(x, y, relative) {
855
+ relative = (isArray(x) ? y : relative);
856
+ return this._coords((relative ? 'm' : 'M'), x, y);
857
+ },
858
+
859
+ /* Draw a line to a position.
860
+ @param x number - x-coordinate to move to or
861
+ number[][] - x-/y-coordinates to move to
862
+ @param y number - y-coordinate to move to (omitted if x is array)
863
+ @param relative boolean - true for coordinates relative to the current point,
864
+ false for coordinates being absolute
865
+ @return this path */
866
+ lineTo: function(x, y, relative) {
867
+ relative = (isArray(x) ? y : relative);
868
+ return this._coords((relative ? 'l' : 'L'), x, y);
869
+ },
870
+
871
+ /* Draw a horizontal line to a position.
872
+ @param x number - x-coordinate to draw to
873
+ @param relative boolean - true for coordinates relative to the current point,
874
+ false for coordinates being absolute
875
+ @return this path */
876
+ horizTo: function(x, relative) {
877
+ this._path += (relative ? 'h' : 'H') + x;
878
+ return this;
879
+ },
880
+
881
+ /* Draw a vertical line to a position.
882
+ @param y number - y-coordinate to draw to
883
+ @param relative boolean - true for coordinates relative to the current point,
884
+ false for coordinates being absolute
885
+ @return this path */
886
+ vertTo: function(y, relative) {
887
+ this._path += (relative ? 'v' : 'V') + y;
888
+ return this;
889
+ },
890
+
891
+ /* Draw a cubic B�zier curve.
892
+ @param x1 number - x-coordinate of beginning control point or
893
+ number[][] - x-/y-coordinates of control and end points to draw to
894
+ @param y1 number - y-coordinate of beginning control point (omitted if x1 is array)
895
+ @param x2 number - x-coordinate of ending control point (omitted if x1 is array)
896
+ @param y2 number - y-coordinate of ending control point (omitted if x1 is array)
897
+ @param x number - x-coordinate of curve end (omitted if x1 is array)
898
+ @param y number - y-coordinate of curve end (omitted if x1 is array)
899
+ @param relative boolean - true for coordinates relative to the current point,
900
+ false for coordinates being absolute
901
+ @return this path */
902
+ curveCTo: function(x1, y1, x2, y2, x, y, relative) {
903
+ relative = (isArray(x1) ? y1 : relative);
904
+ return this._coords((relative ? 'c' : 'C'), x1, y1, x2, y2, x, y);
905
+ },
906
+
907
+ /* Continue a cubic B�zier curve.
908
+ Starting control point is the reflection of the previous end control point.
909
+ @param x2 number - x-coordinate of ending control point or
910
+ number[][] - x-/y-coordinates of control and end points to draw to
911
+ @param y2 number - y-coordinate of ending control point (omitted if x2 is array)
912
+ @param x number - x-coordinate of curve end (omitted if x2 is array)
913
+ @param y number - y-coordinate of curve end (omitted if x2 is array)
914
+ @param relative boolean - true for coordinates relative to the current point,
915
+ false for coordinates being absolute
916
+ @return this path */
917
+ smoothCTo: function(x2, y2, x, y, relative) {
918
+ relative = (isArray(x2) ? y2 : relative);
919
+ return this._coords((relative ? 's' : 'S'), x2, y2, x, y);
920
+ },
921
+
922
+ /* Draw a quadratic B�zier curve.
923
+ @param x1 number - x-coordinate of control point or
924
+ number[][] - x-/y-coordinates of control and end points to draw to
925
+ @param y1 number - y-coordinate of control point (omitted if x1 is array)
926
+ @param x number - x-coordinate of curve end (omitted if x1 is array)
927
+ @param y number - y-coordinate of curve end (omitted if x1 is array)
928
+ @param relative boolean - true for coordinates relative to the current point,
929
+ false for coordinates being absolute
930
+ @return this path */
931
+ curveQTo: function(x1, y1, x, y, relative) {
932
+ relative = (isArray(x1) ? y1 : relative);
933
+ return this._coords((relative ? 'q' : 'Q'), x1, y1, x, y);
934
+ },
935
+
936
+ /* Continue a quadratic B�zier curve.
937
+ Control point is the reflection of the previous control point.
938
+ @param x number - x-coordinate of curve end or
939
+ number[][] - x-/y-coordinates of points to draw to
940
+ @param y number - y-coordinate of curve end (omitted if x is array)
941
+ @param relative boolean - true for coordinates relative to the current point,
942
+ false for coordinates being absolute
943
+ @return this path */
944
+ smoothQTo: function(x, y, relative) {
945
+ relative = (isArray(x) ? y : relative);
946
+ return this._coords((relative ? 't' : 'T'), x, y);
947
+ },
948
+
949
+ /* Generate a path command with (a list of) coordinates. */
950
+ _coords: function(cmd, x1, y1, x2, y2, x3, y3) {
951
+ if (isArray(x1)) {
952
+ for (var i = 0; i < x1.length; i++) {
953
+ var cs = x1[i];
954
+ this._path += (i == 0 ? cmd : ' ') + cs[0] + ',' + cs[1] +
955
+ (cs.length < 4 ? '' : ' ' + cs[2] + ',' + cs[3] +
956
+ (cs.length < 6 ? '': ' ' + cs[4] + ',' + cs[5]));
957
+ }
958
+ }
959
+ else {
960
+ this._path += cmd + x1 + ',' + y1 +
961
+ (x2 == null ? '' : ' ' + x2 + ',' + y2 +
962
+ (x3 == null ? '' : ' ' + x3 + ',' + y3));
963
+ }
964
+ return this;
965
+ },
966
+
967
+ /* Draw an arc to a position.
968
+ @param rx number - x-radius of arc or
969
+ number/boolean[][] - x-/y-coordinates and flags for points to draw to
970
+ @param ry number - y-radius of arc (omitted if rx is array)
971
+ @param xRotate number - x-axis rotation (degrees, clockwise) (omitted if rx is array)
972
+ @param large boolean - true to draw the large part of the arc,
973
+ false to draw the small part (omitted if rx is array)
974
+ @param clockwise boolean - true to draw the clockwise arc,
975
+ false to draw the anti-clockwise arc (omitted if rx is array)
976
+ @param x number - x-coordinate of arc end (omitted if rx is array)
977
+ @param y number - y-coordinate of arc end (omitted if rx is array)
978
+ @param relative boolean - true for coordinates relative to the current point,
979
+ false for coordinates being absolute
980
+ @return this path */
981
+ arcTo: function(rx, ry, xRotate, large, clockwise, x, y, relative) {
982
+ relative = (isArray(rx) ? ry : relative);
983
+ this._path += (relative ? 'a' : 'A');
984
+ if (isArray(rx)) {
985
+ for (var i = 0; i < rx.length; i++) {
986
+ var cs = rx[i];
987
+ this._path += (i == 0 ? '' : ' ') + cs[0] + ',' + cs[1] + ' ' +
988
+ cs[2] + ' ' + (cs[3] ? '1' : '0') + ',' +
989
+ (cs[4] ? '1' : '0') + ' ' + cs[5] + ',' + cs[6];
990
+ }
991
+ }
992
+ else {
993
+ this._path += rx + ',' + ry + ' ' + xRotate + ' ' +
994
+ (large ? '1' : '0') + ',' + (clockwise ? '1' : '0') + ' ' + x + ',' + y;
995
+ }
996
+ return this;
997
+ },
998
+
999
+ /* Close the current path.
1000
+ @return this path */
1001
+ close: function() {
1002
+ this._path += 'z';
1003
+ return this;
1004
+ },
1005
+
1006
+ /* Return the string rendering of the specified path.
1007
+ @return stringified path */
1008
+ path: function() {
1009
+ return this._path;
1010
+ }
1011
+ });
1012
+
1013
+ /* Helper to generate an SVG text object.
1014
+ Obtain an instance from the SVGRoot object.
1015
+ String calls together to generate the text and use its value:
1016
+ var text = root.createText();
1017
+ root.text(null, x, y, text.string('This is ').
1018
+ span('red', {fill: 'red'}).string('!'), {fill: 'blue'}); */
1019
+ function SVGText() {
1020
+ this._parts = []; // The components of the text object
1021
+ }
1022
+
1023
+ $.extend(SVGText.prototype, {
1024
+ /* Prepare to create a new text object.
1025
+ @return this text */
1026
+ reset: function() {
1027
+ this._parts = [];
1028
+ return this;
1029
+ },
1030
+
1031
+ /* Add a straight string value.
1032
+ @param value string - the actual text
1033
+ @return this text object */
1034
+ string: function(value) {
1035
+ this._parts[this._parts.length] = ['text', value];
1036
+ return this;
1037
+ },
1038
+
1039
+ /* Add a separate text span that has its own settings.
1040
+ @param value string - the actual text
1041
+ @param settings object - the settings for this text
1042
+ @return this text object */
1043
+ span: function(value, settings) {
1044
+ this._parts[this._parts.length] = ['tspan', value, settings];
1045
+ return this;
1046
+ },
1047
+
1048
+ /* Add a reference to a previously defined text string.
1049
+ @param id string - the ID of the actual text
1050
+ @param settings object - the settings for this text
1051
+ @return this text object */
1052
+ ref: function(id, settings) {
1053
+ this._parts[this._parts.length] = ['tref', id, settings];
1054
+ return this;
1055
+ },
1056
+
1057
+ /* Add text drawn along a path.
1058
+ @param id string - the ID of the path
1059
+ @param value string - the actual text
1060
+ @param settings object - the settings for this text
1061
+ @return this text object */
1062
+ path: function(id, value, settings) {
1063
+ this._parts[this._parts.length] = ['textpath', value,
1064
+ $.extend({href: id}, settings || {})];
1065
+ return this;
1066
+ }
1067
+ });
1068
+
1069
+ /* Attach the SVG functionality to a jQuery selection.
1070
+ @param loadURL string - the URL of the initial document to load (optional)
1071
+ @param onLoad function - a callback functional invoked following loading (optional)
1072
+ @param settings object - the new settings to use for this SVG instance (optional)
1073
+ @return jQuery object - for chaining further calls */
1074
+ $.fn.svg = function(loadURL, onLoad, settings) {
1075
+ if (typeof loadURL == 'function') {
1076
+ settings = onLoad;
1077
+ onLoad = loadURL;
1078
+ loadURL = null;
1079
+ }
1080
+ if (loadURL && typeof loadURL == 'object') {
1081
+ settings = loadURL;
1082
+ loadURL = onLoad = null;
1083
+ }
1084
+ if (onLoad && typeof onLoad == 'object') {
1085
+ settings = onLoad;
1086
+ onLoad = null;
1087
+ }
1088
+ return this.each(function() {
1089
+ svgManager._connectSVG(this, loadURL, onLoad, settings);
1090
+ });
1091
+ };
1092
+
1093
+ /* Determine whether an object is an array. */
1094
+ function isArray(a) {
1095
+ return (a.constructor && a.constructor.toString().match(/\Array\(\)/));
1096
+ }
1097
+
1098
+ // Singleton primary SVG interface
1099
+ svgManager = new SVGManager();
1100
+
1101
+ })(jQuery);