free_text 0.0.2 → 0.0.3

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 (1650) hide show
  1. data/app/assets/images/free_text/aloha/images/save.png +0 -0
  2. data/app/assets/javascripts/aloha-0.10.0/build.txt +47 -0
  3. data/app/assets/javascripts/aloha-0.10.0/css/aloha-core.css +44 -0
  4. data/app/assets/javascripts/aloha-0.10.0/css/aloha-sidebar.css +284 -0
  5. data/app/assets/javascripts/aloha-0.10.0/css/aloha.css +7777 -0
  6. data/app/assets/javascripts/aloha-0.10.0/css/ext-aloha-reset.css +33 -0
  7. data/app/assets/javascripts/aloha-0.10.0/css/ext-aloha.css +360 -0
  8. data/app/assets/javascripts/aloha-0.10.0/img/arrow-down.png +0 -0
  9. data/app/assets/javascripts/aloha-0.10.0/img/arrow-left.png +0 -0
  10. data/app/assets/javascripts/aloha-0.10.0/img/arrow.png +0 -0
  11. data/app/assets/javascripts/aloha-0.10.0/img/base-big.png +0 -0
  12. data/app/assets/javascripts/aloha-0.10.0/img/base-multi.png +0 -0
  13. data/app/assets/javascripts/aloha-0.10.0/img/base.png +0 -0
  14. data/app/assets/javascripts/aloha-0.10.0/img/bg.png +0 -0
  15. data/app/assets/javascripts/aloha-0.10.0/img/breadcrumb-divider.png +0 -0
  16. data/app/assets/javascripts/aloha-0.10.0/img/fade-in.png +0 -0
  17. data/app/assets/javascripts/aloha-0.10.0/img/fade-out.png +0 -0
  18. data/app/assets/javascripts/aloha-0.10.0/img/gentics-logo.png +0 -0
  19. data/app/assets/javascripts/aloha-0.10.0/img/grabhandle.png +0 -0
  20. data/app/assets/javascripts/aloha-0.10.0/img/maximize.png +0 -0
  21. data/app/assets/javascripts/aloha-0.10.0/img/multisplit-base.jpg +0 -0
  22. data/app/assets/javascripts/aloha-0.10.0/img/multisplit-close.gif +0 -0
  23. data/app/assets/javascripts/aloha-0.10.0/img/multisplit-open.gif +0 -0
  24. data/app/assets/javascripts/aloha-0.10.0/img/pin.png +0 -0
  25. data/app/assets/javascripts/aloha-0.10.0/img/removeformat.png +0 -0
  26. data/app/assets/javascripts/aloha-0.10.0/img/text_indent.png +0 -0
  27. data/app/assets/javascripts/aloha-0.10.0/img/text_indent_remove.png +0 -0
  28. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/command.js +249 -0
  29. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/console.js +330 -0
  30. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/contenthandlermanager.js +65 -0
  31. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/core.js +583 -0
  32. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ecma5.js +194 -0
  33. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ecma5shims.js +296 -0
  34. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/editable.js +905 -0
  35. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/engine.js +8431 -0
  36. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ext-alohaproxy.js +86 -0
  37. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ext-alohareader.js +50 -0
  38. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ext-alohatreeloader.js +77 -0
  39. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ext.js +32 -0
  40. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/floatingmenu.js +1515 -0
  41. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ierange-m2.js +546 -0
  42. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/jquery.aloha.js +372 -0
  43. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/jquery.js +34 -0
  44. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/jquery.patch.js +115 -0
  45. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/markup.js +1256 -0
  46. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/message.js +115 -0
  47. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/nls/de/i18n.js +10 -0
  48. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/nls/i18n.js +20 -0
  49. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/observable.js +106 -0
  50. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/plugin.js +279 -0
  51. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/pluginmanager.js +146 -0
  52. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/rangy-core.js +3242 -0
  53. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/registry.js +58 -0
  54. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/repository.js +241 -0
  55. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/repositorymanager.js +571 -0
  56. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/repositoryobjects.js +146 -0
  57. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/selection.js +2102 -0
  58. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/sidebar.js +1143 -0
  59. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ui-attributefield.js +530 -0
  60. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ui-browser.js +214 -0
  61. data/app/assets/javascripts/aloha-0.10.0/lib/aloha/ui.js +889 -0
  62. data/app/assets/javascripts/aloha-0.10.0/lib/aloha-bootstrap.js +28482 -0
  63. data/app/assets/javascripts/aloha-0.10.0/lib/aloha.js +89612 -0
  64. data/app/assets/javascripts/aloha-0.10.0/lib/css.js +313 -0
  65. data/app/assets/javascripts/aloha-0.10.0/lib/i18n.js +153 -0
  66. data/app/assets/javascripts/aloha-0.10.0/lib/jquery-plugin.js +49 -0
  67. data/app/assets/javascripts/aloha-0.10.0/lib/order.js +140 -0
  68. data/app/assets/javascripts/aloha-0.10.0/lib/require.js +2013 -0
  69. data/app/assets/javascripts/aloha-0.10.0/lib/text.js +262 -0
  70. data/app/assets/javascripts/aloha-0.10.0/lib/util/class.js +80 -0
  71. data/app/assets/javascripts/aloha-0.10.0/lib/util/dom.js +1687 -0
  72. data/app/assets/javascripts/aloha-0.10.0/lib/util/json2.js +481 -0
  73. data/app/assets/javascripts/aloha-0.10.0/lib/util/lang.js +66 -0
  74. data/app/assets/javascripts/aloha-0.10.0/lib/util/position.js +158 -0
  75. data/app/assets/javascripts/aloha-0.10.0/lib/util/range.js +923 -0
  76. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/adapter/jquery/ext-jquery-adapter-debug.js +2470 -0
  77. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/adapter/jquery/ext-jquery-adapter.js +7 -0
  78. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/ext-all-debug.js +47708 -0
  79. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/ext-all.js +13 -0
  80. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/gpl-3.0.txt +674 -0
  81. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/license.txt +42 -0
  82. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/charts.swf +0 -0
  83. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/css/ext-all.css +5903 -0
  84. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/css/ext-all.less +6795 -0
  85. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/css/xtheme-gray.css +1692 -0
  86. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/expressinstall.swf +0 -0
  87. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/corners-blue.gif +0 -0
  88. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/corners.gif +0 -0
  89. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/l-blue.gif +0 -0
  90. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/l.gif +0 -0
  91. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/r-blue.gif +0 -0
  92. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/r.gif +0 -0
  93. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/tb-blue.gif +0 -0
  94. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/box/tb.gif +0 -0
  95. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/arrow.gif +0 -0
  96. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/btn.gif +0 -0
  97. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/group-cs.gif +0 -0
  98. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/group-lr.gif +0 -0
  99. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/group-tb.gif +0 -0
  100. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow-b-noline.gif +0 -0
  101. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow-b.gif +0 -0
  102. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow-bo.gif +0 -0
  103. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow-noline.gif +0 -0
  104. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow-o.gif +0 -0
  105. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/button/s-arrow.gif +0 -0
  106. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/dd/drop-add.gif +0 -0
  107. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/dd/drop-no.gif +0 -0
  108. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/dd/drop-yes.gif +0 -0
  109. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/editor/tb-sprite.gif +0 -0
  110. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/checkbox.gif +0 -0
  111. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/clear-trigger.gif +0 -0
  112. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/clear-trigger.psd +0 -0
  113. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/date-trigger.gif +0 -0
  114. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/date-trigger.psd +0 -0
  115. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/error-tip-corners.gif +0 -0
  116. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/exclamation.gif +0 -0
  117. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/radio.gif +0 -0
  118. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/search-trigger.gif +0 -0
  119. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/search-trigger.psd +0 -0
  120. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/text-bg.gif +0 -0
  121. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/trigger-square.gif +0 -0
  122. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/trigger-square.psd +0 -0
  123. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/trigger-tpl.gif +0 -0
  124. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/trigger.gif +0 -0
  125. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/form/trigger.psd +0 -0
  126. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/gradient-bg.gif +0 -0
  127. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/arrow-left-white.gif +0 -0
  128. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/arrow-right-white.gif +0 -0
  129. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/col-move-bottom.gif +0 -0
  130. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/col-move-top.gif +0 -0
  131. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/columns.gif +0 -0
  132. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/dirty.gif +0 -0
  133. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/done.gif +0 -0
  134. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/drop-no.gif +0 -0
  135. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/drop-yes.gif +0 -0
  136. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/footer-bg.gif +0 -0
  137. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-blue-hd.gif +0 -0
  138. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-blue-split.gif +0 -0
  139. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-hrow.gif +0 -0
  140. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-loading.gif +0 -0
  141. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-split.gif +0 -0
  142. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid-vista-hd.gif +0 -0
  143. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid3-hd-btn.gif +0 -0
  144. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid3-hrow-over.gif +0 -0
  145. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid3-hrow.gif +0 -0
  146. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid3-special-col-bg.gif +0 -0
  147. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/grid3-special-col-sel-bg.gif +0 -0
  148. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/group-by.gif +0 -0
  149. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/group-collapse.gif +0 -0
  150. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/group-expand-sprite.gif +0 -0
  151. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/group-expand.gif +0 -0
  152. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hd-pop.gif +0 -0
  153. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-asc.gif +0 -0
  154. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-desc.gif +0 -0
  155. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-lock.gif +0 -0
  156. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-lock.png +0 -0
  157. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-unlock.gif +0 -0
  158. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/hmenu-unlock.png +0 -0
  159. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/invalid_line.gif +0 -0
  160. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/loading.gif +0 -0
  161. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/mso-hd.gif +0 -0
  162. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/nowait.gif +0 -0
  163. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-first-disabled.gif +0 -0
  164. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-first.gif +0 -0
  165. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-last-disabled.gif +0 -0
  166. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-last.gif +0 -0
  167. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-next-disabled.gif +0 -0
  168. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-next.gif +0 -0
  169. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-prev-disabled.gif +0 -0
  170. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/page-prev.gif +0 -0
  171. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/pick-button.gif +0 -0
  172. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/refresh.gif +0 -0
  173. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/row-check-sprite.gif +0 -0
  174. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/row-expand-sprite.gif +0 -0
  175. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/row-over.gif +0 -0
  176. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/row-sel.gif +0 -0
  177. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/sort-hd.gif +0 -0
  178. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/sort_asc.gif +0 -0
  179. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/sort_desc.gif +0 -0
  180. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/grid/wait.gif +0 -0
  181. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/collapse.gif +0 -0
  182. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/expand.gif +0 -0
  183. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/gradient-bg.gif +0 -0
  184. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/mini-bottom.gif +0 -0
  185. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/mini-left.gif +0 -0
  186. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/mini-right.gif +0 -0
  187. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/mini-top.gif +0 -0
  188. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/ns-collapse.gif +0 -0
  189. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/ns-expand.gif +0 -0
  190. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/panel-close.gif +0 -0
  191. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/panel-title-bg.gif +0 -0
  192. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/panel-title-light-bg.gif +0 -0
  193. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/stick.gif +0 -0
  194. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/stuck.gif +0 -0
  195. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/tab-close-on.gif +0 -0
  196. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/layout/tab-close.gif +0 -0
  197. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/checked.gif +0 -0
  198. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/group-checked.gif +0 -0
  199. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/item-over.gif +0 -0
  200. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/menu-parent.gif +0 -0
  201. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/menu.gif +0 -0
  202. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/menu/unchecked.gif +0 -0
  203. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/corners-sprite.gif +0 -0
  204. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/left-right.gif +0 -0
  205. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/light-hd.gif +0 -0
  206. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/tool-sprite-tpl.gif +0 -0
  207. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/tool-sprites.gif +0 -0
  208. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/tools-sprites-trans.gif +0 -0
  209. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/top-bottom.gif +0 -0
  210. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/top-bottom.png +0 -0
  211. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/white-corners-sprite.gif +0 -0
  212. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/white-left-right.gif +0 -0
  213. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/panel/white-top-bottom.gif +0 -0
  214. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/progress/progress-bg.gif +0 -0
  215. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/qtip/bg.gif +0 -0
  216. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/qtip/close.gif +0 -0
  217. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/qtip/tip-anchor-sprite.gif +0 -0
  218. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/qtip/tip-sprite.gif +0 -0
  219. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/s.gif +0 -0
  220. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shadow-c.png +0 -0
  221. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shadow-lr.png +0 -0
  222. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shadow.png +0 -0
  223. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/blue-loading.gif +0 -0
  224. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/calendar.gif +0 -0
  225. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/glass-bg.gif +0 -0
  226. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/hd-sprite.gif +0 -0
  227. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/large-loading.gif +0 -0
  228. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/left-btn.gif +0 -0
  229. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/loading-balls.gif +0 -0
  230. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/right-btn.gif +0 -0
  231. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/shared/warning.gif +0 -0
  232. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/e-handle-dark.gif +0 -0
  233. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/e-handle.gif +0 -0
  234. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/ne-handle-dark.gif +0 -0
  235. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/ne-handle.gif +0 -0
  236. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/nw-handle-dark.gif +0 -0
  237. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/nw-handle.gif +0 -0
  238. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/s-handle-dark.gif +0 -0
  239. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/s-handle.gif +0 -0
  240. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/se-handle-dark.gif +0 -0
  241. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/se-handle.gif +0 -0
  242. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/square.gif +0 -0
  243. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/sw-handle-dark.gif +0 -0
  244. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/sizer/sw-handle.gif +0 -0
  245. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/slider/slider-bg.png +0 -0
  246. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/slider/slider-thumb.png +0 -0
  247. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/slider/slider-v-bg.png +0 -0
  248. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/slider/slider-v-thumb.png +0 -0
  249. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/scroll-left.gif +0 -0
  250. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/scroll-right.gif +0 -0
  251. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/scroller-bg.gif +0 -0
  252. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-inactive-left-bg.gif +0 -0
  253. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-inactive-right-bg.gif +0 -0
  254. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-left-bg.gif +0 -0
  255. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-over-left-bg.gif +0 -0
  256. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-over-right-bg.gif +0 -0
  257. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-btm-right-bg.gif +0 -0
  258. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-close.gif +0 -0
  259. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-strip-bg.gif +0 -0
  260. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-strip-bg.png +0 -0
  261. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tab-strip-btm-bg.gif +0 -0
  262. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tabs/tabs-sprite.gif +0 -0
  263. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/bg.gif +0 -0
  264. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/btn-arrow-light.gif +0 -0
  265. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/btn-arrow.gif +0 -0
  266. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/btn-over-bg.gif +0 -0
  267. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/gray-bg.gif +0 -0
  268. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/more.gif +0 -0
  269. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/tb-bg.gif +0 -0
  270. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/tb-btn-sprite.gif +0 -0
  271. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/tb-xl-btn-sprite.gif +0 -0
  272. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/toolbar/tb-xl-sep.gif +0 -0
  273. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/arrows.gif +0 -0
  274. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-add.gif +0 -0
  275. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-between.gif +0 -0
  276. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-no.gif +0 -0
  277. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-over.gif +0 -0
  278. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-under.gif +0 -0
  279. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/drop-yes.gif +0 -0
  280. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-end-minus-nl.gif +0 -0
  281. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-end-minus.gif +0 -0
  282. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-end-plus-nl.gif +0 -0
  283. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-end-plus.gif +0 -0
  284. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-end.gif +0 -0
  285. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-line.gif +0 -0
  286. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-minus-nl.gif +0 -0
  287. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-minus.gif +0 -0
  288. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-plus-nl.gif +0 -0
  289. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow-plus.gif +0 -0
  290. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/elbow.gif +0 -0
  291. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/folder-open.gif +0 -0
  292. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/folder.gif +0 -0
  293. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/leaf.gif +0 -0
  294. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/loading.gif +0 -0
  295. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/tree/s.gif +0 -0
  296. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/icon-error.gif +0 -0
  297. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/icon-info.gif +0 -0
  298. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/icon-question.gif +0 -0
  299. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/icon-warning.gif +0 -0
  300. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/left-corners.png +0 -0
  301. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/left-corners.psd +0 -0
  302. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/left-right.png +0 -0
  303. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/left-right.psd +0 -0
  304. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/right-corners.png +0 -0
  305. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/right-corners.psd +0 -0
  306. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/top-bottom.png +0 -0
  307. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/default/window/top-bottom.psd +0 -0
  308. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/btn-arrow.gif +0 -0
  309. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/btn-sprite.gif +0 -0
  310. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/btn.gif +0 -0
  311. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/group-cs.gif +0 -0
  312. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/group-lr.gif +0 -0
  313. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/group-tb.gif +0 -0
  314. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/s-arrow-bo.gif +0 -0
  315. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/button/s-arrow-o.gif +0 -0
  316. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/form/clear-trigger.gif +0 -0
  317. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/form/date-trigger.gif +0 -0
  318. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/form/search-trigger.gif +0 -0
  319. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/form/trigger-square.gif +0 -0
  320. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/form/trigger.gif +0 -0
  321. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/gradient-bg.gif +0 -0
  322. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/col-move-bottom.gif +0 -0
  323. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/col-move-top.gif +0 -0
  324. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-hd-btn.gif +0 -0
  325. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-hrow-over.gif +0 -0
  326. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-hrow-over2.gif +0 -0
  327. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-hrow.gif +0 -0
  328. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-hrow2.gif +0 -0
  329. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-special-col-bg.gif +0 -0
  330. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-special-col-bg2.gif +0 -0
  331. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/grid3-special-col-sel-bg.gif +0 -0
  332. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/group-collapse.gif +0 -0
  333. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/group-expand-sprite.gif +0 -0
  334. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/group-expand.gif +0 -0
  335. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/page-first.gif +0 -0
  336. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/page-last.gif +0 -0
  337. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/page-next.gif +0 -0
  338. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/page-prev.gif +0 -0
  339. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/refresh.gif +0 -0
  340. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/row-expand-sprite.gif +0 -0
  341. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/sort_asc.gif +0 -0
  342. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/grid/sort_desc.gif +0 -0
  343. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/menu/group-checked.gif +0 -0
  344. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/menu/item-over-disabled.gif +0 -0
  345. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/menu/item-over.gif +0 -0
  346. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/menu/menu-parent.gif +0 -0
  347. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/corners-sprite.gif +0 -0
  348. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/left-right.gif +0 -0
  349. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/light-hd.gif +0 -0
  350. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/tool-sprite-tpl.gif +0 -0
  351. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/tool-sprites.gif +0 -0
  352. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/tools-sprites-trans.gif +0 -0
  353. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/top-bottom.gif +0 -0
  354. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/top-bottom.png +0 -0
  355. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/white-corners-sprite.gif +0 -0
  356. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/white-left-right.gif +0 -0
  357. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/panel/white-top-bottom.gif +0 -0
  358. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/progress/progress-bg.gif +0 -0
  359. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/qtip/bg.gif +0 -0
  360. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/qtip/close.gif +0 -0
  361. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/qtip/tip-anchor-sprite.gif +0 -0
  362. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/qtip/tip-sprite.gif +0 -0
  363. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/s.gif +0 -0
  364. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/shared/hd-sprite.gif +0 -0
  365. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/shared/left-btn.gif +0 -0
  366. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/shared/right-btn.gif +0 -0
  367. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/e-handle.gif +0 -0
  368. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/ne-handle.gif +0 -0
  369. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/nw-handle.gif +0 -0
  370. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/s-handle.gif +0 -0
  371. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/se-handle.gif +0 -0
  372. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/square.gif +0 -0
  373. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/sizer/sw-handle.gif +0 -0
  374. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/slider/slider-thumb.png +0 -0
  375. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/slider/slider-v-thumb.png +0 -0
  376. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/scroll-left.gif +0 -0
  377. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/scroll-right.gif +0 -0
  378. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/scroller-bg.gif +0 -0
  379. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-inactive-left-bg.gif +0 -0
  380. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-inactive-right-bg.gif +0 -0
  381. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-left-bg.gif +0 -0
  382. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-over-left-bg.gif +0 -0
  383. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-over-right-bg.gif +0 -0
  384. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-btm-right-bg.gif +0 -0
  385. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-close.gif +0 -0
  386. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-strip-bg.gif +0 -0
  387. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-strip-bg.png +0 -0
  388. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tab-strip-btm-bg.gif +0 -0
  389. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tabs/tabs-sprite.gif +0 -0
  390. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/bg.gif +0 -0
  391. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/btn-arrow-light.gif +0 -0
  392. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/btn-arrow.gif +0 -0
  393. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/btn-over-bg.gif +0 -0
  394. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/gray-bg.gif +0 -0
  395. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/more.gif +0 -0
  396. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/tb-bg.gif +0 -0
  397. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/toolbar/tb-btn-sprite.gif +0 -0
  398. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tree/arrows.gif +0 -0
  399. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tree/elbow-end-minus-nl.gif +0 -0
  400. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tree/elbow-end-minus.gif +0 -0
  401. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tree/elbow-end-plus-nl.gif +0 -0
  402. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/tree/elbow-end-plus.gif +0 -0
  403. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/icon-error.gif +0 -0
  404. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/icon-info.gif +0 -0
  405. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/icon-question.gif +0 -0
  406. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/icon-warning.gif +0 -0
  407. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/left-corners.png +0 -0
  408. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/left-corners.pspimage +0 -0
  409. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/left-right.png +0 -0
  410. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/right-corners.png +0 -0
  411. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/images/gray/window/top-bottom.png +0 -0
  412. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/ext-3.2.1/resources/resources.jsb +507 -0
  413. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/jquery-1.5.1.js +8316 -0
  414. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/jquery-1.6.1.js +8937 -0
  415. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/jquery-1.6.js +8865 -0
  416. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/jquery.json-2.2.min.js +33 -0
  417. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/jquery.store.js +470 -0
  418. data/app/assets/javascripts/aloha-0.10.0/lib/vendor/sanitize.js +267 -0
  419. data/app/assets/javascripts/aloha-0.10.0/package.json +49 -0
  420. data/app/assets/javascripts/aloha-0.10.0/plugins/common/abbr/css/abbr.css +0 -0
  421. data/app/assets/javascripts/aloha-0.10.0/plugins/common/abbr/lib/abbr-plugin.js +294 -0
  422. data/app/assets/javascripts/aloha-0.10.0/plugins/common/abbr/nls/de/i18n.js +1 -0
  423. data/app/assets/javascripts/aloha-0.10.0/plugins/common/abbr/nls/i18n.js +4 -0
  424. data/app/assets/javascripts/aloha-0.10.0/plugins/common/abbr/package.json +1 -0
  425. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/LICENSE +166 -0
  426. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/README +12 -0
  427. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/css/align.css +19 -0
  428. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/img/align.png +0 -0
  429. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/lib/align-plugin.js +353 -0
  430. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/nls/en/i18n.js +1 -0
  431. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/nls/fr/i18n.js +1 -0
  432. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/nls/i18n.js +6 -0
  433. data/app/assets/javascripts/aloha-0.10.0/plugins/common/align/package.json +2 -0
  434. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/README +0 -0
  435. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/css/block.css +104 -0
  436. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/img/toolbar-draghandle.gif +0 -0
  437. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/block-plugin.js +101 -0
  438. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/block.js +1058 -0
  439. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/blockcontenthandler.js +99 -0
  440. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/blockmanager.js +479 -0
  441. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/editor.js +312 -0
  442. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/editormanager.js +36 -0
  443. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/jquery-ui-1.8.16.custom.min.js +198 -0
  444. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/lib/sidebarattributeeditor.js +107 -0
  445. data/app/assets/javascripts/aloha-0.10.0/plugins/common/block/package.json +11 -0
  446. data/app/assets/javascripts/aloha-0.10.0/plugins/common/characterpicker/css/characterpicker.css +38 -0
  447. data/app/assets/javascripts/aloha-0.10.0/plugins/common/characterpicker/img/icon.png +0 -0
  448. data/app/assets/javascripts/aloha-0.10.0/plugins/common/characterpicker/lib/characterpicker-plugin.js +277 -0
  449. data/app/assets/javascripts/aloha-0.10.0/plugins/common/characterpicker/nls/de/i18n.js +1 -0
  450. data/app/assets/javascripts/aloha-0.10.0/plugins/common/characterpicker/nls/i18n.js +4 -0
  451. data/app/assets/javascripts/aloha-0.10.0/plugins/common/commands/css/abbr.css +0 -0
  452. data/app/assets/javascripts/aloha-0.10.0/plugins/common/commands/lib/commands-plugin.js +15 -0
  453. data/app/assets/javascripts/aloha-0.10.0/plugins/common/commands/lib/inserthtml.js +107 -0
  454. data/app/assets/javascripts/aloha-0.10.0/plugins/common/commands/package.json +1 -0
  455. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/README.md +0 -0
  456. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/lib/contenthandler-plugin.js +54 -0
  457. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/lib/genericcontenthandler.js +251 -0
  458. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/lib/oembedcontenthandler.js +276 -0
  459. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/lib/sanitizecontenthandler.js +142 -0
  460. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/lib/wordcontenthandler.js +385 -0
  461. data/app/assets/javascripts/aloha-0.10.0/plugins/common/contenthandler/package.json +1 -0
  462. data/app/assets/javascripts/aloha-0.10.0/plugins/common/dom-to-xhtml/lib/dom-to-xhtml-plugin.js +43 -0
  463. data/app/assets/javascripts/aloha-0.10.0/plugins/common/dom-to-xhtml/lib/dom-to-xhtml.js +306 -0
  464. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/css/format.css +8 -0
  465. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/img/em.png +0 -0
  466. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/img/strong.png +0 -0
  467. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/lib/format-plugin.js +357 -0
  468. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/de/i18n.js +1 -0
  469. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/eo/i18n.js +1 -0
  470. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/fi/i18n.js +1 -0
  471. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/fr/i18n.js +1 -0
  472. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/i18n.js +10 -0
  473. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/it/i18n.js +1 -0
  474. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/pl/i18n.js +1 -0
  475. data/app/assets/javascripts/aloha-0.10.0/plugins/common/format/nls/ru/i18n.js +1 -0
  476. data/app/assets/javascripts/aloha-0.10.0/plugins/common/highlighteditables/css/highlighteditables.css +14 -0
  477. data/app/assets/javascripts/aloha-0.10.0/plugins/common/highlighteditables/lib/highlighteditables-plugin.js +81 -0
  478. data/app/assets/javascripts/aloha-0.10.0/plugins/common/highlighteditables/package.json +1 -0
  479. data/app/assets/javascripts/aloha-0.10.0/plugins/common/horizontalruler/css/horizontalruler.css +4 -0
  480. data/app/assets/javascripts/aloha-0.10.0/plugins/common/horizontalruler/img/icon.png +0 -0
  481. data/app/assets/javascripts/aloha-0.10.0/plugins/common/horizontalruler/lib/horizontalruler-plugin.js +70 -0
  482. data/app/assets/javascripts/aloha-0.10.0/plugins/common/horizontalruler/nls/de/i18n.js +1 -0
  483. data/app/assets/javascripts/aloha-0.10.0/plugins/common/horizontalruler/nls/i18n.js +4 -0
  484. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/README.md +83 -0
  485. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/css/image.css +124 -0
  486. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/demo/crop.html +76 -0
  487. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/demo/crop.php +21 -0
  488. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/demo/cropnresize.jpg +0 -0
  489. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/demo/index.html +120 -0
  490. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/blank.jpg +0 -0
  491. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/crop-buttons.gif +0 -0
  492. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/cropnresize.png +0 -0
  493. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/handle-sw.png +0 -0
  494. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image-align-left.png +0 -0
  495. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image-align-none.png +0 -0
  496. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image-align-right.png +0 -0
  497. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image-border.png +0 -0
  498. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image-title.png +0 -0
  499. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/image.gif +0 -0
  500. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/padding-decrease.gif +0 -0
  501. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/padding-increase.gif +0 -0
  502. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/page.png +0 -0
  503. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/size-decrease.gif +0 -0
  504. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/img/size-increase.gif +0 -0
  505. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/lib/image-plugin.js +1662 -0
  506. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/nls/cz/i18n.js +16 -0
  507. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/nls/de/i18n.js +1 -0
  508. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/nls/fr/i18n.js +1 -0
  509. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/nls/i18n.js +7 -0
  510. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/nls/ru/i18n.js +16 -0
  511. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/package.json +1 -0
  512. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/test/test.css +12 -0
  513. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/test/test.html +40 -0
  514. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/jcrop/jcrop.gif +0 -0
  515. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/jcrop/jquery.jcrop.css +46 -0
  516. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/jcrop/jquery.jcrop.min.js +163 -0
  517. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/mousewheel/mousewheel.js +60 -0
  518. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/jquery-ui-1.8.10.custom.min.js +97 -0
  519. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  520. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  521. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_flat_10_000000_40x100.png +0 -0
  522. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  523. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
  524. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  525. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
  526. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  527. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
  528. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_222222_256x240.png +0 -0
  529. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_228ef1_256x240.png +0 -0
  530. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ef8c08_256x240.png +0 -0
  531. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ffd27a_256x240.png +0 -0
  532. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/images/ui-icons_ffffff_256x240.png +0 -0
  533. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/jquery-ui-1.8.10.cropnresize.css +33 -0
  534. data/app/assets/javascripts/aloha-0.10.0/plugins/common/image/vendor/ui/ui-lightness/jquery-ui-1.8.10.custom.css +314 -0
  535. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/css/link.css +55 -0
  536. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/demo/background.png +0 -0
  537. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/demo/external-link-ltr-icon.png +0 -0
  538. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/demo/index.css +91 -0
  539. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/demo/index.html +91 -0
  540. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/extra/delicious.js +246 -0
  541. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/extra/linklist.js +226 -0
  542. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/extra/slowlinklist.js +228 -0
  543. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/lib/link-plugin.js +793 -0
  544. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/nls/de/i18n.js +13 -0
  545. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/nls/fr/i18n.js +6 -0
  546. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/nls/i18n.js +9 -0
  547. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/nls/pl/i18n.js +6 -0
  548. data/app/assets/javascripts/aloha-0.10.0/plugins/common/link/nls/ru/i18n.js +6 -0
  549. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/lib/list-plugin.js +849 -0
  550. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/de/i18n.js +5 -0
  551. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/eo/i18n.js +1 -0
  552. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/fi/i18n.js +1 -0
  553. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/fr/i18n.js +1 -0
  554. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/i18n.js +9 -0
  555. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/it/i18n.js +1 -0
  556. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/nls/ru/i18n.js +1 -0
  557. data/app/assets/javascripts/aloha-0.10.0/plugins/common/list/package.json +1 -0
  558. data/app/assets/javascripts/aloha-0.10.0/plugins/common/paste/README.md +3 -0
  559. data/app/assets/javascripts/aloha-0.10.0/plugins/common/paste/lib/paste-plugin.js +220 -0
  560. data/app/assets/javascripts/aloha-0.10.0/plugins/common/paste/package.json +8 -0
  561. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/css/table.css +161 -0
  562. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/img/down.cur +0 -0
  563. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/img/left.cur +0 -0
  564. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/img/table_layout.png +0 -0
  565. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/img/wai-green.png +0 -0
  566. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/img/wai-red.png +0 -0
  567. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table-cell.js +465 -0
  568. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table-create-layer.js +210 -0
  569. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table-plugin-utils.js +356 -0
  570. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table-plugin.js +1545 -0
  571. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table-selection.js +434 -0
  572. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/lib/table.js +1533 -0
  573. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/de/i18n.js +28 -0
  574. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/eo/i18n.js +1 -0
  575. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/fi/i18n.js +1 -0
  576. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/fr/i18n.js +1 -0
  577. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/i18n.js +37 -0
  578. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/it/i18n.js +1 -0
  579. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/pl/i18n.js +1 -0
  580. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/nls/ru/i18n.js +1 -0
  581. data/app/assets/javascripts/aloha-0.10.0/plugins/common/table/package.json +1 -0
  582. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/demo/index.css +49 -0
  583. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/demo/index.html +85 -0
  584. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/lib/undo-plugin.js +136 -0
  585. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/package.json +7 -0
  586. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/vendor/diff_match_patch_uncompressed.js +2155 -0
  587. data/app/assets/javascripts/aloha-0.10.0/plugins/common/undo/vendor/undo.js +119 -0
  588. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/README +0 -0
  589. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/css/attributes.css +12 -0
  590. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/lib/attributes-plugin.js +217 -0
  591. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/nls/de/i18n.js +1 -0
  592. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/nls/en/i18n.js +1 -0
  593. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/attributes/nls/i18n.js +5 -0
  594. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/README +0 -0
  595. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/browser.css +359 -0
  596. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/browser.jqgrid.css +374 -0
  597. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/browsercombined.css +748 -0
  598. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  599. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  600. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  601. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  602. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  603. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  604. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  605. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  606. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-icons_222222_256x240.png +0 -0
  607. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-icons_2e83ff_256x240.png +0 -0
  608. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-icons_454545_256x240.png +0 -0
  609. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-icons_888888_256x240.png +0 -0
  610. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/images/ui-icons_cd0a0a_256x240.png +0 -0
  611. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/jquery-ui-1.8.13.custom.css +319 -0
  612. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/jstree.css +88 -0
  613. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/throbber.gif +0 -0
  614. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/css/ui.jqgrid.css +148 -0
  615. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow-000-medium.png +0 -0
  616. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow-180.png +0 -0
  617. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow-315-medium.png +0 -0
  618. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow-stop-180.png +0 -0
  619. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow-stop.png +0 -0
  620. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/arrow.png +0 -0
  621. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/control-stop-square-small.png +0 -0
  622. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/folder-horizontal-open.png +0 -0
  623. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/folder-open.png +0 -0
  624. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/gcn-icons/gcn-icon-file.gif +0 -0
  625. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/gcn-icons/gcn-icon-image.gif +0 -0
  626. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/gcn-icons/gcn-icon-page.gif +0 -0
  627. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/magnifier-left.png +0 -0
  628. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/page.png +0 -0
  629. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/picture.png +0 -0
  630. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/sort-alphabet-descending.png +0 -0
  631. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/sort-alphabet.png +0 -0
  632. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/img/throbber.gif +0 -0
  633. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/lib/browser-plugin.js +10 -0
  634. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/lib/browser.js +1163 -0
  635. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/lib/locale.js +26 -0
  636. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/nls/de/i18n.js +18 -0
  637. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/nls/de.json +1 -0
  638. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/nls/en/i18n.js +18 -0
  639. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/nls/en.json +1 -0
  640. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/nls/i18n.js +4 -0
  641. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/grid.locale.de.js +139 -0
  642. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/grid.locale.en.js +134 -0
  643. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/jquery.jqGrid.js +472 -0
  644. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/jquery.jstree.js +4549 -0
  645. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/jquery.ui.js +761 -0
  646. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/browser/vendor/ui-layout.js +113 -0
  647. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/README +0 -0
  648. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/css/cite.css +49 -0
  649. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/img/blockquote.png +0 -0
  650. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/img/icon_cite.png +0 -0
  651. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/lib/cite-plugin.js +631 -0
  652. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/nls/de/i18n.js +1 -0
  653. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/nls/en/i18n.js +1 -0
  654. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/nls/i18n.js +4 -0
  655. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/cite/package.json +1 -0
  656. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/img/add-icon.png +0 -0
  657. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/img/add.png +0 -0
  658. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/img/comments.png +0 -0
  659. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/img/hr.png +0 -0
  660. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/img/textbox.png +0 -0
  661. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/package.json +1 -0
  662. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/src/comments.css +442 -0
  663. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/comments/src/comments.js +669 -0
  664. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/AGPL3 +661 -0
  665. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/LICENSE +25 -0
  666. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/README.md +5 -0
  667. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/TODO.md +2 -0
  668. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/index.css +47 -0
  669. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/index.html +101 -0
  670. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/migration/index.css +189 -0
  671. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/migration/index.html +321 -0
  672. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/specs/DragnDropnImage.graphml +677 -0
  673. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/style.css +47 -0
  674. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/demo/upload.php +26 -0
  675. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/i18n/en.json +1 -0
  676. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/i18n/fr.json +1 -0
  677. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/img/cross.png +0 -0
  678. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/img/hourglass.png +0 -0
  679. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/img/loading.gif +0 -0
  680. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/img/page.png +0 -0
  681. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/img/tick.png +0 -0
  682. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/lib/draganddropfiles-plugin.js +4 -0
  683. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/lib/dragndropfiles.css +110 -0
  684. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/lib/dragndropfiles.js +349 -0
  685. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/lib/dropfilesrepository.js +365 -0
  686. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/draganddropfiles/package.json +1 -0
  687. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/README +0 -0
  688. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/css/externalsave.css +7 -0
  689. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/anchor.png +0 -0
  690. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/blockquote.png +0 -0
  691. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/button.png +0 -0
  692. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/caption.png +0 -0
  693. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/cite.png +0 -0
  694. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/dd.png +0 -0
  695. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/dl.png +0 -0
  696. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/dt.png +0 -0
  697. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h1.png +0 -0
  698. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h2.png +0 -0
  699. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h3.png +0 -0
  700. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h4.png +0 -0
  701. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h5.png +0 -0
  702. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/h6.png +0 -0
  703. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/icon_cite.png +0 -0
  704. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/p.png +0 -0
  705. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/pre.png +0 -0
  706. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/save.png +0 -0
  707. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/table.png +0 -0
  708. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/img/th.png +0 -0
  709. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/lib/externalsave-plugin.js +86 -0
  710. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/nls/en/i18n.js +1 -0
  711. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/nls/en.json +1 -0
  712. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/nls/fr/i18n.js +1 -0
  713. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/nls/fr.json +1 -0
  714. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/externalsave/nls/i18n.js +5 -0
  715. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/aa.png +0 -0
  716. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ab.png +0 -0
  717. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ad.png +0 -0
  718. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ae.png +0 -0
  719. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/af.png +0 -0
  720. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ag.png +0 -0
  721. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ai.png +0 -0
  722. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ak.png +0 -0
  723. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/al.png +0 -0
  724. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/am.png +0 -0
  725. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/an.png +0 -0
  726. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ao.png +0 -0
  727. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ar.png +0 -0
  728. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/as.png +0 -0
  729. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/at.png +0 -0
  730. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/au.png +0 -0
  731. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/av.png +0 -0
  732. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/aw.png +0 -0
  733. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ax.png +0 -0
  734. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ay.png +0 -0
  735. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/az.png +0 -0
  736. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ba.png +0 -0
  737. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bb.png +0 -0
  738. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bd.png +0 -0
  739. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/be.png +0 -0
  740. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bf.png +0 -0
  741. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bg.png +0 -0
  742. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bh.png +0 -0
  743. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bi.png +0 -0
  744. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bj.png +0 -0
  745. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bm.png +0 -0
  746. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bn.png +0 -0
  747. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bo.png +0 -0
  748. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/br.png +0 -0
  749. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bs.png +0 -0
  750. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bt.png +0 -0
  751. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bv.png +0 -0
  752. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bw.png +0 -0
  753. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/by.png +0 -0
  754. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/bz.png +0 -0
  755. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ca.png +0 -0
  756. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/catalonia.png +0 -0
  757. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cc.png +0 -0
  758. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cd.png +0 -0
  759. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ce.png +0 -0
  760. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cf.png +0 -0
  761. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cg.png +0 -0
  762. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ch.png +0 -0
  763. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ci.png +0 -0
  764. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ck.png +0 -0
  765. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cl.png +0 -0
  766. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cm.png +0 -0
  767. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cn.png +0 -0
  768. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/co.png +0 -0
  769. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cr.png +0 -0
  770. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cs.png +0 -0
  771. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cu.png +0 -0
  772. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cv.png +0 -0
  773. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cx.png +0 -0
  774. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cy.png +0 -0
  775. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/cz.png +0 -0
  776. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/da.png +0 -0
  777. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/de.png +0 -0
  778. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/dj.png +0 -0
  779. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/dk.png +0 -0
  780. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/dm.png +0 -0
  781. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/do.png +0 -0
  782. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/dv.png +0 -0
  783. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/dz.png +0 -0
  784. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ec.png +0 -0
  785. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ee.png +0 -0
  786. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/eg.png +0 -0
  787. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/eh.png +0 -0
  788. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/el.png +0 -0
  789. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/en.png +0 -0
  790. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/eo.png +0 -0
  791. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/er.png +0 -0
  792. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/es.png +0 -0
  793. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/et.png +0 -0
  794. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/eu.png +0 -0
  795. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/europeanunion.png +0 -0
  796. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fa.png +0 -0
  797. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fam.png +0 -0
  798. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ff.png +0 -0
  799. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fi.png +0 -0
  800. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fj.png +0 -0
  801. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fk.png +0 -0
  802. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fm.png +0 -0
  803. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fo.png +0 -0
  804. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fr.png +0 -0
  805. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/fy.png +0 -0
  806. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ga.png +0 -0
  807. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gb.png +0 -0
  808. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gd.png +0 -0
  809. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ge.png +0 -0
  810. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gf.png +0 -0
  811. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gh.png +0 -0
  812. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gi.png +0 -0
  813. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gl.png +0 -0
  814. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gm.png +0 -0
  815. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gn.png +0 -0
  816. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gp.png +0 -0
  817. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gq.png +0 -0
  818. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gr.png +0 -0
  819. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gs.png +0 -0
  820. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gt.png +0 -0
  821. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gu.png +0 -0
  822. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gv.png +0 -0
  823. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gw.png +0 -0
  824. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/gy.png +0 -0
  825. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ha.png +0 -0
  826. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/he.png +0 -0
  827. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hi.png +0 -0
  828. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hk.png +0 -0
  829. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hm.png +0 -0
  830. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hn.png +0 -0
  831. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ho.png +0 -0
  832. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hr.png +0 -0
  833. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ht.png +0 -0
  834. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hu.png +0 -0
  835. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hy.png +0 -0
  836. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/hz.png +0 -0
  837. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/id.png +0 -0
  838. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ie.png +0 -0
  839. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ig.png +0 -0
  840. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ii.png +0 -0
  841. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/il.png +0 -0
  842. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/in.png +0 -0
  843. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/io.png +0 -0
  844. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/iq.png +0 -0
  845. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ir.png +0 -0
  846. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/is.png +0 -0
  847. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/it.png +0 -0
  848. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ja.png +0 -0
  849. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/jm.png +0 -0
  850. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/jo.png +0 -0
  851. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/jp.png +0 -0
  852. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/jv.png +0 -0
  853. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ka.png +0 -0
  854. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ke.png +0 -0
  855. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kg.png +0 -0
  856. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kh.png +0 -0
  857. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ki.png +0 -0
  858. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kk.png +0 -0
  859. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kl.png +0 -0
  860. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/km.png +0 -0
  861. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kn.png +0 -0
  862. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ko.png +0 -0
  863. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kp.png +0 -0
  864. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kr.png +0 -0
  865. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ks.png +0 -0
  866. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ku.png +0 -0
  867. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kv.png +0 -0
  868. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kw.png +0 -0
  869. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ky.png +0 -0
  870. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/kz.png +0 -0
  871. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/la.png +0 -0
  872. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lb.png +0 -0
  873. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lc.png +0 -0
  874. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lg.png +0 -0
  875. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/li.png +0 -0
  876. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lk.png +0 -0
  877. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ln.png +0 -0
  878. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lo.png +0 -0
  879. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lr.png +0 -0
  880. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ls.png +0 -0
  881. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lt.png +0 -0
  882. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lu.png +0 -0
  883. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/lv.png +0 -0
  884. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ly.png +0 -0
  885. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ma.png +0 -0
  886. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mc.png +0 -0
  887. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/md.png +0 -0
  888. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/me.png +0 -0
  889. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mg.png +0 -0
  890. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mh.png +0 -0
  891. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mi.png +0 -0
  892. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mk.png +0 -0
  893. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ml.png +0 -0
  894. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mm.png +0 -0
  895. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mn.png +0 -0
  896. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mo.png +0 -0
  897. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mp.png +0 -0
  898. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mq.png +0 -0
  899. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mr.png +0 -0
  900. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ms.png +0 -0
  901. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mt.png +0 -0
  902. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mu.png +0 -0
  903. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mv.png +0 -0
  904. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mw.png +0 -0
  905. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mx.png +0 -0
  906. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/my.png +0 -0
  907. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/mz.png +0 -0
  908. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/na.png +0 -0
  909. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nb.png +0 -0
  910. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nc.png +0 -0
  911. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nd.png +0 -0
  912. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ne.png +0 -0
  913. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nf.png +0 -0
  914. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ng.png +0 -0
  915. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ni.png +0 -0
  916. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nl.png +0 -0
  917. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nn.png +0 -0
  918. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/no.png +0 -0
  919. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/np.png +0 -0
  920. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nr.png +0 -0
  921. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nu.png +0 -0
  922. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nv.png +0 -0
  923. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ny.png +0 -0
  924. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/nz.png +0 -0
  925. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/oc.png +0 -0
  926. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/om.png +0 -0
  927. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/or.png +0 -0
  928. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/os.png +0 -0
  929. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pa.png +0 -0
  930. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pe.png +0 -0
  931. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pf.png +0 -0
  932. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pg.png +0 -0
  933. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ph.png +0 -0
  934. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pk.png +0 -0
  935. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pl.png +0 -0
  936. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pm.png +0 -0
  937. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pn.png +0 -0
  938. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pr.png +0 -0
  939. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ps.png +0 -0
  940. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pt.png +0 -0
  941. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/pw.png +0 -0
  942. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/py.png +0 -0
  943. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/qa.png +0 -0
  944. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/re.png +0 -0
  945. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/rm.png +0 -0
  946. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/rn.png +0 -0
  947. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ro.png +0 -0
  948. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/rs.png +0 -0
  949. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ru.png +0 -0
  950. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/rw.png +0 -0
  951. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sa.png +0 -0
  952. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sb.png +0 -0
  953. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sc.png +0 -0
  954. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/scotland.png +0 -0
  955. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sd.png +0 -0
  956. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/se.png +0 -0
  957. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sg.png +0 -0
  958. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sh.png +0 -0
  959. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/si.png +0 -0
  960. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sj.png +0 -0
  961. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sk.png +0 -0
  962. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sl.png +0 -0
  963. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sm.png +0 -0
  964. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sn.png +0 -0
  965. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/so.png +0 -0
  966. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sq.png +0 -0
  967. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sr.png +0 -0
  968. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ss.png +0 -0
  969. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/st.png +0 -0
  970. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/su.png +0 -0
  971. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sv.png +0 -0
  972. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sw.png +0 -0
  973. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sy.png +0 -0
  974. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/sz.png +0 -0
  975. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ta.png +0 -0
  976. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tc.png +0 -0
  977. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/td.png +0 -0
  978. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/te.png +0 -0
  979. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tf.png +0 -0
  980. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tg.png +0 -0
  981. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/th.png +0 -0
  982. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ti.png +0 -0
  983. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tj.png +0 -0
  984. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tk.png +0 -0
  985. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tl.png +0 -0
  986. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tm.png +0 -0
  987. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tn.png +0 -0
  988. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/to.png +0 -0
  989. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tr.png +0 -0
  990. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tt.png +0 -0
  991. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tv.png +0 -0
  992. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tw.png +0 -0
  993. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ty.png +0 -0
  994. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/tz.png +0 -0
  995. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ua.png +0 -0
  996. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ug.png +0 -0
  997. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/uk.png +0 -0
  998. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/um.png +0 -0
  999. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ur.png +0 -0
  1000. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/us.png +0 -0
  1001. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/uy.png +0 -0
  1002. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/uz.png +0 -0
  1003. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/va.png +0 -0
  1004. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vc.png +0 -0
  1005. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ve.png +0 -0
  1006. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vg.png +0 -0
  1007. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vi.png +0 -0
  1008. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vn.png +0 -0
  1009. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vo.png +0 -0
  1010. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/vu.png +0 -0
  1011. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/wa.png +0 -0
  1012. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/wales.png +0 -0
  1013. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/wf.png +0 -0
  1014. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/wo.png +0 -0
  1015. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ws.png +0 -0
  1016. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/xh.png +0 -0
  1017. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/ye.png +0 -0
  1018. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/yt.png +0 -0
  1019. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/za.png +0 -0
  1020. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/zh.png +0 -0
  1021. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/zm.png +0 -0
  1022. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/img/flags/zw.png +0 -0
  1023. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/flag-icons/lib/flag-icons-plugin.js +27 -0
  1024. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/README.md +3 -0
  1025. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/css/formatless.css +7 -0
  1026. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/img/button.png +0 -0
  1027. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/lib/formatlesshandler.js +65 -0
  1028. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/lib/formatlesspaste-plugin.js +151 -0
  1029. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/nls/de/i18n.js +1 -0
  1030. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/nls/i18n.js +7 -0
  1031. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/formatlesspaste/package.json +8 -0
  1032. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/README.md +22 -0
  1033. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/css/googletranslate.css +14 -0
  1034. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ad.png +0 -0
  1035. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ae.png +0 -0
  1036. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/af.png +0 -0
  1037. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ag.png +0 -0
  1038. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ai.png +0 -0
  1039. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/al.png +0 -0
  1040. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/am.png +0 -0
  1041. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/an.png +0 -0
  1042. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ao.png +0 -0
  1043. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ar.png +0 -0
  1044. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/as.png +0 -0
  1045. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/at.png +0 -0
  1046. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/au.png +0 -0
  1047. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/aw.png +0 -0
  1048. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ax.png +0 -0
  1049. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/az.png +0 -0
  1050. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ba.png +0 -0
  1051. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bb.png +0 -0
  1052. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bd.png +0 -0
  1053. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/be.png +0 -0
  1054. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bf.png +0 -0
  1055. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bg.png +0 -0
  1056. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bh.png +0 -0
  1057. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bi.png +0 -0
  1058. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bj.png +0 -0
  1059. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bm.png +0 -0
  1060. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bn.png +0 -0
  1061. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bo.png +0 -0
  1062. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/br.png +0 -0
  1063. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bs.png +0 -0
  1064. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bt.png +0 -0
  1065. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bv.png +0 -0
  1066. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bw.png +0 -0
  1067. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/by.png +0 -0
  1068. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/bz.png +0 -0
  1069. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ca.png +0 -0
  1070. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/catalonia.png +0 -0
  1071. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cc.png +0 -0
  1072. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cd.png +0 -0
  1073. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cf.png +0 -0
  1074. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cg.png +0 -0
  1075. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ch.png +0 -0
  1076. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ci.png +0 -0
  1077. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ck.png +0 -0
  1078. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cl.png +0 -0
  1079. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cm.png +0 -0
  1080. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cn.png +0 -0
  1081. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/co.png +0 -0
  1082. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cr.png +0 -0
  1083. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cs.png +0 -0
  1084. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cu.png +0 -0
  1085. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cv.png +0 -0
  1086. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cx.png +0 -0
  1087. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cy.png +0 -0
  1088. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/cz.png +0 -0
  1089. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/de.png +0 -0
  1090. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/dj.png +0 -0
  1091. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/dk.png +0 -0
  1092. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/dm.png +0 -0
  1093. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/do.png +0 -0
  1094. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/dz.png +0 -0
  1095. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ec.png +0 -0
  1096. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ee.png +0 -0
  1097. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/eg.png +0 -0
  1098. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/eh.png +0 -0
  1099. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/en.png +0 -0
  1100. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/er.png +0 -0
  1101. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/es.png +0 -0
  1102. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/et.png +0 -0
  1103. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/europeanunion.png +0 -0
  1104. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fam.png +0 -0
  1105. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fi.png +0 -0
  1106. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fj.png +0 -0
  1107. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fk.png +0 -0
  1108. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fm.png +0 -0
  1109. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fo.png +0 -0
  1110. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/fr.png +0 -0
  1111. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ga.png +0 -0
  1112. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gb.png +0 -0
  1113. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gd.png +0 -0
  1114. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ge.png +0 -0
  1115. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gf.png +0 -0
  1116. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gh.png +0 -0
  1117. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gi.png +0 -0
  1118. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gl.png +0 -0
  1119. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gm.png +0 -0
  1120. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gn.png +0 -0
  1121. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gp.png +0 -0
  1122. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gq.png +0 -0
  1123. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gr.png +0 -0
  1124. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gs.png +0 -0
  1125. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gt.png +0 -0
  1126. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gu.png +0 -0
  1127. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gw.png +0 -0
  1128. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/gy.png +0 -0
  1129. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/hk.png +0 -0
  1130. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/hm.png +0 -0
  1131. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/hn.png +0 -0
  1132. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/hr.png +0 -0
  1133. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ht.png +0 -0
  1134. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/hu.png +0 -0
  1135. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/id.png +0 -0
  1136. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ie.png +0 -0
  1137. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/il.png +0 -0
  1138. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/in.png +0 -0
  1139. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/io.png +0 -0
  1140. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/iq.png +0 -0
  1141. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ir.png +0 -0
  1142. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/is.png +0 -0
  1143. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/it.png +0 -0
  1144. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/jm.png +0 -0
  1145. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/jo.png +0 -0
  1146. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/jp.png +0 -0
  1147. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ke.png +0 -0
  1148. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kg.png +0 -0
  1149. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kh.png +0 -0
  1150. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ki.png +0 -0
  1151. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/km.png +0 -0
  1152. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kn.png +0 -0
  1153. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kp.png +0 -0
  1154. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kr.png +0 -0
  1155. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kw.png +0 -0
  1156. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ky.png +0 -0
  1157. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/kz.png +0 -0
  1158. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/la.png +0 -0
  1159. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lb.png +0 -0
  1160. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lc.png +0 -0
  1161. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/li.png +0 -0
  1162. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lk.png +0 -0
  1163. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lr.png +0 -0
  1164. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ls.png +0 -0
  1165. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lt.png +0 -0
  1166. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lu.png +0 -0
  1167. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/lv.png +0 -0
  1168. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ly.png +0 -0
  1169. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ma.png +0 -0
  1170. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mc.png +0 -0
  1171. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/md.png +0 -0
  1172. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/me.png +0 -0
  1173. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mg.png +0 -0
  1174. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mh.png +0 -0
  1175. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mk.png +0 -0
  1176. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ml.png +0 -0
  1177. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mm.png +0 -0
  1178. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mn.png +0 -0
  1179. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mo.png +0 -0
  1180. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mp.png +0 -0
  1181. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mq.png +0 -0
  1182. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mr.png +0 -0
  1183. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ms.png +0 -0
  1184. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mt.png +0 -0
  1185. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mu.png +0 -0
  1186. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mv.png +0 -0
  1187. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mw.png +0 -0
  1188. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mx.png +0 -0
  1189. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/my.png +0 -0
  1190. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/mz.png +0 -0
  1191. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/na.png +0 -0
  1192. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nc.png +0 -0
  1193. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ne.png +0 -0
  1194. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nf.png +0 -0
  1195. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ng.png +0 -0
  1196. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ni.png +0 -0
  1197. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nl.png +0 -0
  1198. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/no.png +0 -0
  1199. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/np.png +0 -0
  1200. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nr.png +0 -0
  1201. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nu.png +0 -0
  1202. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/nz.png +0 -0
  1203. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/om.png +0 -0
  1204. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pa.png +0 -0
  1205. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pe.png +0 -0
  1206. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pf.png +0 -0
  1207. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pg.png +0 -0
  1208. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ph.png +0 -0
  1209. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pk.png +0 -0
  1210. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pl.png +0 -0
  1211. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pm.png +0 -0
  1212. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pn.png +0 -0
  1213. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pr.png +0 -0
  1214. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ps.png +0 -0
  1215. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pt.png +0 -0
  1216. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/pw.png +0 -0
  1217. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/py.png +0 -0
  1218. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/qa.png +0 -0
  1219. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/re.png +0 -0
  1220. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ro.png +0 -0
  1221. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/rs.png +0 -0
  1222. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ru.png +0 -0
  1223. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/rw.png +0 -0
  1224. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sa.png +0 -0
  1225. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sb.png +0 -0
  1226. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sc.png +0 -0
  1227. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/scotland.png +0 -0
  1228. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sd.png +0 -0
  1229. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/se.png +0 -0
  1230. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sg.png +0 -0
  1231. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sh.png +0 -0
  1232. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/si.png +0 -0
  1233. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sj.png +0 -0
  1234. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sk.png +0 -0
  1235. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sl.png +0 -0
  1236. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sm.png +0 -0
  1237. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sn.png +0 -0
  1238. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/so.png +0 -0
  1239. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sr.png +0 -0
  1240. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/st.png +0 -0
  1241. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sv.png +0 -0
  1242. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sy.png +0 -0
  1243. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/sz.png +0 -0
  1244. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tc.png +0 -0
  1245. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/td.png +0 -0
  1246. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tf.png +0 -0
  1247. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tg.png +0 -0
  1248. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/th.png +0 -0
  1249. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tj.png +0 -0
  1250. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tk.png +0 -0
  1251. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tl.png +0 -0
  1252. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tm.png +0 -0
  1253. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tn.png +0 -0
  1254. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/to.png +0 -0
  1255. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tr.png +0 -0
  1256. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tt.png +0 -0
  1257. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tv.png +0 -0
  1258. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tw.png +0 -0
  1259. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/tz.png +0 -0
  1260. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ua.png +0 -0
  1261. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ug.png +0 -0
  1262. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/um.png +0 -0
  1263. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/us.png +0 -0
  1264. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/uy.png +0 -0
  1265. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/uz.png +0 -0
  1266. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/va.png +0 -0
  1267. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/vc.png +0 -0
  1268. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ve.png +0 -0
  1269. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/vg.png +0 -0
  1270. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/vi.png +0 -0
  1271. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/vn.png +0 -0
  1272. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/vu.png +0 -0
  1273. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/wales.png +0 -0
  1274. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/wf.png +0 -0
  1275. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ws.png +0 -0
  1276. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/ye.png +0 -0
  1277. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/yt.png +0 -0
  1278. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/za.png +0 -0
  1279. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/zm.png +0 -0
  1280. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/img/zw.png +0 -0
  1281. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/lib/googletranslate-plugin.js +182 -0
  1282. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/googletranslate/package.json +1 -0
  1283. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/README +0 -0
  1284. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/css/headerids.css +8 -0
  1285. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/lib/headerids-plugin.js +136 -0
  1286. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/nls/de/i18n.js +1 -0
  1287. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/nls/en/i18n.js +1 -0
  1288. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/headerids/nls/i18n.js +5 -0
  1289. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/dep/jquery.poshytip.js +470 -0
  1290. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/i18n/de.json +1 -0
  1291. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/i18n/en.json +1 -0
  1292. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/img/tip-twitter_arrows.gif +0 -0
  1293. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/package.json +9 -0
  1294. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/src/hints.css +61 -0
  1295. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/hints/src/hints.js +49 -0
  1296. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/README +0 -0
  1297. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ad.png +0 -0
  1298. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ae.png +0 -0
  1299. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/af.png +0 -0
  1300. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ag.png +0 -0
  1301. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ai.png +0 -0
  1302. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/al.png +0 -0
  1303. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/am.png +0 -0
  1304. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/an.png +0 -0
  1305. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ao.png +0 -0
  1306. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ar.png +0 -0
  1307. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/as.png +0 -0
  1308. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/at.png +0 -0
  1309. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/au.png +0 -0
  1310. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/aw.png +0 -0
  1311. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ax.png +0 -0
  1312. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/az.png +0 -0
  1313. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ba.png +0 -0
  1314. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bb.png +0 -0
  1315. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bd.png +0 -0
  1316. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/be.png +0 -0
  1317. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bf.png +0 -0
  1318. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bg.png +0 -0
  1319. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bh.png +0 -0
  1320. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bi.png +0 -0
  1321. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bj.png +0 -0
  1322. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bm.png +0 -0
  1323. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bn.png +0 -0
  1324. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bo.png +0 -0
  1325. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/br.png +0 -0
  1326. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bs.png +0 -0
  1327. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bt.png +0 -0
  1328. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bv.png +0 -0
  1329. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bw.png +0 -0
  1330. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/by.png +0 -0
  1331. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/bz.png +0 -0
  1332. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ca.png +0 -0
  1333. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/catalonia.png +0 -0
  1334. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cc.png +0 -0
  1335. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cd.png +0 -0
  1336. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cf.png +0 -0
  1337. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cg.png +0 -0
  1338. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ch.png +0 -0
  1339. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ci.png +0 -0
  1340. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ck.png +0 -0
  1341. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cl.png +0 -0
  1342. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cm.png +0 -0
  1343. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cn.png +0 -0
  1344. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/co.png +0 -0
  1345. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cr.png +0 -0
  1346. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cs.png +0 -0
  1347. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cu.png +0 -0
  1348. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cv.png +0 -0
  1349. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cx.png +0 -0
  1350. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cy.png +0 -0
  1351. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/cz.png +0 -0
  1352. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/de.png +0 -0
  1353. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/dj.png +0 -0
  1354. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/dk.png +0 -0
  1355. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/dm.png +0 -0
  1356. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/do.png +0 -0
  1357. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/dz.png +0 -0
  1358. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ec.png +0 -0
  1359. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ee.png +0 -0
  1360. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/eg.png +0 -0
  1361. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/eh.png +0 -0
  1362. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/en.png +0 -0
  1363. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/er.png +0 -0
  1364. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/es.png +0 -0
  1365. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/et.png +0 -0
  1366. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/europeanunion.png +0 -0
  1367. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fam.png +0 -0
  1368. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fi.png +0 -0
  1369. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fj.png +0 -0
  1370. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fk.png +0 -0
  1371. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fm.png +0 -0
  1372. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fo.png +0 -0
  1373. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/fr.png +0 -0
  1374. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ga.png +0 -0
  1375. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gb.png +0 -0
  1376. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gd.png +0 -0
  1377. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ge.png +0 -0
  1378. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gf.png +0 -0
  1379. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gh.png +0 -0
  1380. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gi.png +0 -0
  1381. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gl.png +0 -0
  1382. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gm.png +0 -0
  1383. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gn.png +0 -0
  1384. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gp.png +0 -0
  1385. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gq.png +0 -0
  1386. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gr.png +0 -0
  1387. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gs.png +0 -0
  1388. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gt.png +0 -0
  1389. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gu.png +0 -0
  1390. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gw.png +0 -0
  1391. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/gy.png +0 -0
  1392. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/hk.png +0 -0
  1393. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/hm.png +0 -0
  1394. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/hn.png +0 -0
  1395. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/hr.png +0 -0
  1396. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ht.png +0 -0
  1397. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/hu.png +0 -0
  1398. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/id.png +0 -0
  1399. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ie.png +0 -0
  1400. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/il.png +0 -0
  1401. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/in.png +0 -0
  1402. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/io.png +0 -0
  1403. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/iq.png +0 -0
  1404. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ir.png +0 -0
  1405. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/is.png +0 -0
  1406. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/it.png +0 -0
  1407. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/jm.png +0 -0
  1408. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/jo.png +0 -0
  1409. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/jp.png +0 -0
  1410. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ke.png +0 -0
  1411. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kg.png +0 -0
  1412. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kh.png +0 -0
  1413. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ki.png +0 -0
  1414. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/km.png +0 -0
  1415. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kn.png +0 -0
  1416. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kp.png +0 -0
  1417. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kr.png +0 -0
  1418. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kw.png +0 -0
  1419. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ky.png +0 -0
  1420. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/kz.png +0 -0
  1421. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/la.png +0 -0
  1422. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lb.png +0 -0
  1423. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lc.png +0 -0
  1424. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/li.png +0 -0
  1425. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lk.png +0 -0
  1426. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lr.png +0 -0
  1427. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ls.png +0 -0
  1428. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lt.png +0 -0
  1429. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lu.png +0 -0
  1430. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/lv.png +0 -0
  1431. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ly.png +0 -0
  1432. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ma.png +0 -0
  1433. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mc.png +0 -0
  1434. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/md.png +0 -0
  1435. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/me.png +0 -0
  1436. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mg.png +0 -0
  1437. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mh.png +0 -0
  1438. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mk.png +0 -0
  1439. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ml.png +0 -0
  1440. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mm.png +0 -0
  1441. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mn.png +0 -0
  1442. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mo.png +0 -0
  1443. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mp.png +0 -0
  1444. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mq.png +0 -0
  1445. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mr.png +0 -0
  1446. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ms.png +0 -0
  1447. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mt.png +0 -0
  1448. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mu.png +0 -0
  1449. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mv.png +0 -0
  1450. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mw.png +0 -0
  1451. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mx.png +0 -0
  1452. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/my.png +0 -0
  1453. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/mz.png +0 -0
  1454. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/na.png +0 -0
  1455. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nc.png +0 -0
  1456. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ne.png +0 -0
  1457. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nf.png +0 -0
  1458. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ng.png +0 -0
  1459. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ni.png +0 -0
  1460. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nl.png +0 -0
  1461. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/no.png +0 -0
  1462. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/np.png +0 -0
  1463. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nr.png +0 -0
  1464. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nu.png +0 -0
  1465. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/nz.png +0 -0
  1466. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/om.png +0 -0
  1467. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pa.png +0 -0
  1468. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pe.png +0 -0
  1469. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pf.png +0 -0
  1470. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pg.png +0 -0
  1471. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ph.png +0 -0
  1472. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pk.png +0 -0
  1473. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pl.png +0 -0
  1474. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pm.png +0 -0
  1475. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pn.png +0 -0
  1476. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pr.png +0 -0
  1477. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ps.png +0 -0
  1478. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pt.png +0 -0
  1479. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/pw.png +0 -0
  1480. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/py.png +0 -0
  1481. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/qa.png +0 -0
  1482. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/re.png +0 -0
  1483. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ro.png +0 -0
  1484. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/rs.png +0 -0
  1485. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ru.png +0 -0
  1486. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/rw.png +0 -0
  1487. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sa.png +0 -0
  1488. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sb.png +0 -0
  1489. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sc.png +0 -0
  1490. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/scotland.png +0 -0
  1491. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sd.png +0 -0
  1492. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/se.png +0 -0
  1493. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sg.png +0 -0
  1494. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sh.png +0 -0
  1495. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/si.png +0 -0
  1496. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sj.png +0 -0
  1497. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sk.png +0 -0
  1498. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sl.png +0 -0
  1499. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sm.png +0 -0
  1500. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sn.png +0 -0
  1501. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/so.png +0 -0
  1502. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sr.png +0 -0
  1503. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/st.png +0 -0
  1504. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sv.png +0 -0
  1505. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sy.png +0 -0
  1506. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/sz.png +0 -0
  1507. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tc.png +0 -0
  1508. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/td.png +0 -0
  1509. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tf.png +0 -0
  1510. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tg.png +0 -0
  1511. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/th.png +0 -0
  1512. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tj.png +0 -0
  1513. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tk.png +0 -0
  1514. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tl.png +0 -0
  1515. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tm.png +0 -0
  1516. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tn.png +0 -0
  1517. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/to.png +0 -0
  1518. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tr.png +0 -0
  1519. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tt.png +0 -0
  1520. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tv.png +0 -0
  1521. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tw.png +0 -0
  1522. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/tz.png +0 -0
  1523. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ua.png +0 -0
  1524. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ug.png +0 -0
  1525. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/um.png +0 -0
  1526. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/us.png +0 -0
  1527. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/uy.png +0 -0
  1528. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/uz.png +0 -0
  1529. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/va.png +0 -0
  1530. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/vc.png +0 -0
  1531. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ve.png +0 -0
  1532. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/vg.png +0 -0
  1533. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/vi.png +0 -0
  1534. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/vn.png +0 -0
  1535. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/vu.png +0 -0
  1536. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/wales.png +0 -0
  1537. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/wf.png +0 -0
  1538. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ws.png +0 -0
  1539. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/ye.png +0 -0
  1540. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/yt.png +0 -0
  1541. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/za.png +0 -0
  1542. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/zm.png +0 -0
  1543. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/img/flags/zw.png +0 -0
  1544. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/lib/linkbrowser-plugin.js +165 -0
  1545. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/nls/de/i18n.js +1 -0
  1546. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/nls/fr/i18n.js +1 -0
  1547. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/nls/i18n.js +7 -0
  1548. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/nls/pl/i18n.js +1 -0
  1549. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkbrowser/nls/ru/i18n.js +1 -0
  1550. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/demo/index.css +49 -0
  1551. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/demo/index.html +82 -0
  1552. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/i18n/en.json +1 -0
  1553. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/package.json +1 -0
  1554. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/proxy.php +244 -0
  1555. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/src/linkchecker.css +14 -0
  1556. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/linkchecker/src/linkchecker.js +256 -0
  1557. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/listenforcer/lib/listenforcer-plugin.js +165 -0
  1558. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/README +0 -0
  1559. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/css/metaview.css +88 -0
  1560. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/anchor.png +0 -0
  1561. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/blockquote.png +0 -0
  1562. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/button.png +0 -0
  1563. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/caption.png +0 -0
  1564. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/cite.png +0 -0
  1565. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/dd.png +0 -0
  1566. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/div.png +0 -0
  1567. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/dl.png +0 -0
  1568. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/dt.png +0 -0
  1569. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h1.png +0 -0
  1570. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h2.png +0 -0
  1571. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h3.png +0 -0
  1572. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h4.png +0 -0
  1573. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h5.png +0 -0
  1574. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/h6.png +0 -0
  1575. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/icon_cite.png +0 -0
  1576. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/p.png +0 -0
  1577. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/pre.png +0 -0
  1578. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/table.png +0 -0
  1579. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/td.png +0 -0
  1580. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/img/th.png +0 -0
  1581. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/lib/metaview-plugin.js +91 -0
  1582. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/nls/de/i18n.js +1 -0
  1583. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/nls/en/i18n.js +1 -0
  1584. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/metaview/nls/i18n.js +5 -0
  1585. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/README +0 -0
  1586. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/css/numerated-headers.css +7 -0
  1587. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/demo/index.css +189 -0
  1588. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/demo/index.html +139 -0
  1589. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/demo/js/aloha-config.js +115 -0
  1590. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/img/headers.png +0 -0
  1591. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/lib/numerated-headers-plugin.js +249 -0
  1592. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/nls/de/i18n.js +1 -0
  1593. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/nls/en/i18n.js +1 -0
  1594. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/numerated-headers/nls/i18n.js +5 -0
  1595. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/profiler/css/profiler.css +34 -0
  1596. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/profiler/lib/profiler-plugin.js +285 -0
  1597. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/ribbon/LICENSE.md +662 -0
  1598. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/ribbon/README.md +8 -0
  1599. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/ribbon/css/ribbon.css +10 -0
  1600. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/ribbon/lib/ribbon-plugin.js +186 -0
  1601. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/ribbon/package.json +1 -0
  1602. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/sourceview/css/sourceview.css +18 -0
  1603. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/sourceview/lib/sourceview-plugin.js +267 -0
  1604. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/sourceview/vendor/htmlbeautifier.js +468 -0
  1605. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/README +0 -0
  1606. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/css/speak.css +3 -0
  1607. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/img/speaker.png +0 -0
  1608. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/lib/speak-plugin.js +44 -0
  1609. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/lib/speak.js +3 -0
  1610. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/speak/package.json +1 -0
  1611. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/toc/lib/toc-plugin.js +382 -0
  1612. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/toc/nls/de/i18n.js +3 -0
  1613. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/toc/nls/i18n.js +4 -0
  1614. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/toc/package.json +1 -0
  1615. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/LICENSE +22 -0
  1616. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/README.markdown +65 -0
  1617. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/demo/index.html +93 -0
  1618. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/img/cms-decoupled-communications.png +0 -0
  1619. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/package.json +1 -0
  1620. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/backbone-min.js +27 -0
  1621. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/underscore-min.js +25 -0
  1622. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/vie-aloha.js +74 -0
  1623. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/vie-collectionmanager.js +70 -0
  1624. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/vie-containermanager.js +263 -0
  1625. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/vie/src/vie.js +20 -0
  1626. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/README.md +11 -0
  1627. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/css/wai-lang.css +30 -0
  1628. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/img/button.png +0 -0
  1629. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/img/remove-button.png +0 -0
  1630. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/lib/language-codes.json +682 -0
  1631. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/lib/languages.js +102 -0
  1632. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/lib/wai-lang-plugin.js +377 -0
  1633. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/nls/de/i18n.js +1 -0
  1634. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/nls/en/i18n.js +1 -0
  1635. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/wai-lang/nls/i18n.js +5 -0
  1636. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/zemanta/README +5 -0
  1637. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/zemanta/css/zemanta-widget-alohaeditor.css +24 -0
  1638. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/zemanta/img/zemanta-mini-logo.png +0 -0
  1639. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/zemanta/lib/zemanta-plugin.js +241 -0
  1640. data/app/assets/javascripts/aloha-0.10.0/plugins/extra/zemanta/nls/i18n.js +8 -0
  1641. data/app/assets/javascripts/free_text.js +113 -0
  1642. data/app/controllers/free_text/texts_controller.rb +28 -0
  1643. data/app/helpers/free_text/text_helper.rb +28 -0
  1644. data/app/models/free_text/text.rb +2 -0
  1645. data/app/views/free_text/_partial.html.erb +10 -0
  1646. data/app/views/free_text/texts/aloha_config.js.erb +8 -0
  1647. data/config/routes.rb +5 -0
  1648. data/lib/free_text/version.rb +1 -1
  1649. data/lib/free_text.rb +1 -1
  1650. metadata +1648 -1
@@ -0,0 +1,2102 @@
1
+ /*!
2
+ * This file is part of Aloha Editor Project http://aloha-editor.org
3
+ * Copyright (c) 2010-2011 Gentics Software GmbH, aloha@gentics.com
4
+ * Contributors http://aloha-editor.org/contribution.php
5
+ * Licensed unter the terms of http://www.aloha-editor.org/license.html
6
+ *//*
7
+ * Aloha Editor is free software: you can redistribute it and/or modify
8
+ * it under the terms of the GNU Affero General Public License as published by
9
+ * the Free Software Foundation, either version 3 of the License, or
10
+ * (at your option) any later version.*
11
+ *
12
+ * Aloha Editor is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
+ * GNU Affero General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Affero General Public License
18
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
19
+ */
20
+
21
+
22
+ define(
23
+ [ 'aloha/core', 'aloha/jquery', 'aloha/floatingmenu', 'util/class', 'util/range', 'aloha/rangy-core' ],
24
+ function(Aloha, jQuery, FloatingMenu, Class, Range) {
25
+ var
26
+ // $ = jQuery,
27
+ // Aloha = window.Aloha,
28
+ // Class = window.Class,
29
+ GENTICS = window.GENTICS;
30
+
31
+ /**
32
+ * @namespace Aloha
33
+ * @class Selection
34
+ * This singleton class always represents the current user selection
35
+ * @singleton
36
+ */
37
+ var Selection = Class.extend({
38
+ _constructor: function(){
39
+ // Pseudo Range Clone being cleaned up for better HTML wrapping support
40
+ this.rangeObject = {};
41
+
42
+ this.preventSelectionChangedFlag = false; // will remember if someone urged us to skip the next aloha-selection-changed event
43
+
44
+ // define basics first
45
+ this.tagHierarchy = {
46
+ 'textNode' : [],
47
+ 'abbr' : ['textNode'],
48
+ 'b' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img','a','del','ins','u', 'cite', 'q', 'code', 'abbr', 'strong'],
49
+ 'pre' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img','a','del','ins','u', 'cite','q', 'code', 'abbr', 'code'],
50
+ 'blockquote' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img','a','del','ins','u', 'cite', 'q', 'code', 'abbr', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
51
+ 'ins' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img','a','u', 'p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6'],
52
+ 'ul' : ['li'],
53
+ 'ol' : ['li'],
54
+ 'li' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img', 'ul', 'ol', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'del', 'ins', 'u', 'a'],
55
+ 'tr' : ['td','th'],
56
+ 'table' : ['tr'],
57
+ 'div' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img', 'ul', 'ol', 'table', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'del', 'ins', 'u', 'p', 'div', 'pre', 'blockquote', 'a'],
58
+ 'h1' : ['textNode', 'b', 'i', 'em', 'sup', 'sub', 'br', 'span', 'img','a', 'del', 'ins', 'u']
59
+ };
60
+ // now reference the basics for all other equal tags (important: don't forget to include
61
+ // the basics itself as reference: 'b' : this.tagHierarchy.b
62
+ this.tagHierarchy = {
63
+ 'textNode' : this.tagHierarchy.textNode,
64
+ 'abbr' : this.tagHierarchy.abbr,
65
+ 'br' : this.tagHierarchy.textNode,
66
+ 'img' : this.tagHierarchy.textNode,
67
+ 'b' : this.tagHierarchy.b,
68
+ 'strong' : this.tagHierarchy.b,
69
+ 'code' : this.tagHierarchy.b,
70
+ 'q' : this.tagHierarchy.b,
71
+ 'blockquote' : this.tagHierarchy.blockquote,
72
+ 'cite' : this.tagHierarchy.b,
73
+ 'i' : this.tagHierarchy.b,
74
+ 'em' : this.tagHierarchy.b,
75
+ 'sup' : this.tagHierarchy.b,
76
+ 'sub' : this.tagHierarchy.b,
77
+ 'span' : this.tagHierarchy.b,
78
+ 'del' : this.tagHierarchy.del,
79
+ 'ins' : this.tagHierarchy.ins,
80
+ 'u' : this.tagHierarchy.b,
81
+ 'p' : this.tagHierarchy.b,
82
+ 'pre' : this.tagHierarchy.pre,
83
+ 'a' : this.tagHierarchy.b,
84
+ 'ul' : this.tagHierarchy.ul,
85
+ 'ol' : this.tagHierarchy.ol,
86
+ 'li' : this.tagHierarchy.li,
87
+ 'td' : this.tagHierarchy.li,
88
+ 'div' : this.tagHierarchy.div,
89
+ 'h1' : this.tagHierarchy.h1,
90
+ 'h2' : this.tagHierarchy.h1,
91
+ 'h3' : this.tagHierarchy.h1,
92
+ 'h4' : this.tagHierarchy.h1,
93
+ 'h5' : this.tagHierarchy.h1,
94
+ 'h6' : this.tagHierarchy.h1,
95
+ 'table' : this.tagHierarchy.table
96
+ };
97
+
98
+ // When applying this elements to selection they will replace the assigned elements
99
+ this.replacingElements = {
100
+ 'h1' : ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6','pre', 'blockquote']
101
+ };
102
+ this.replacingElements = {
103
+ 'h1' : this.replacingElements.h1,
104
+ 'h2' : this.replacingElements.h1,
105
+ 'h3' : this.replacingElements.h1,
106
+ 'h4' : this.replacingElements.h1,
107
+ 'h5' : this.replacingElements.h1,
108
+ 'h6' : this.replacingElements.h1,
109
+ 'pre' : this.replacingElements.h1,
110
+ 'p' : this.replacingElements.h1,
111
+ 'blockquote' : this.replacingElements.h1
112
+ };
113
+ this.allowedToStealElements = {
114
+ 'h1' : ['textNode']
115
+ };
116
+ this.allowedToStealElements = {
117
+ 'h1' : this.allowedToStealElements.h1,
118
+ 'h2' : this.allowedToStealElements.h1,
119
+ 'h3' : this.allowedToStealElements.h1,
120
+ 'h4' : this.allowedToStealElements.h1,
121
+ 'h5' : this.allowedToStealElements.h1,
122
+ 'h6' : this.allowedToStealElements.h1,
123
+ 'p' : this.tagHierarchy.b
124
+ };
125
+ },
126
+
127
+ /**
128
+ * Class definition of a SelectionTree (relevant for all formatting / markup changes)
129
+ * TODO: remove this (was moved to range.js)
130
+ * Structure:
131
+ * +
132
+ * |-domobj: <reference to the DOM Object> (NOT jQuery)
133
+ * |-selection: defines if this node is marked by user [none|partial|full]
134
+ * |-children: recursive structure like this
135
+ * @hide
136
+ */
137
+ SelectionTree: function() {
138
+ this.domobj = {};
139
+ this.selection = undefined;
140
+ this.children = [];
141
+ },
142
+
143
+ /**
144
+ * INFO: Method is used for integration with Gentics Aloha, has no use otherwise
145
+ * Updates the rangeObject according to the current user selection
146
+ * Method is always called on selection change
147
+ * @param objectClicked Object that triggered the selectionChange event
148
+ * @return true when rangeObject was modified, false otherwise
149
+ * @hide
150
+ */
151
+ onChange: function(objectClicked, event) {
152
+ if (this.updateSelectionTimeout) {
153
+ window.clearTimeout(this.updateSelectionTimeout);
154
+ this.updateSelectionTimeout = undefined;
155
+ }
156
+ //we have to work around an IE bug that causes the user
157
+ //selection to be incorrectly set on the body element when
158
+ //the updateSelectionTimeout triggers. We remember the range
159
+ //from the time when this onChange is triggered and provide
160
+ //it instead of the current user selection when the timout
161
+ //is triggered. The bug is caused by selecting some text and
162
+ //then clicking once inside the selection (which collapses
163
+ //the selection). Interesting fact: when the timeout is
164
+ //increased to 500 milliseconds, the bug will not cause any
165
+ //problems since the selection will correct itself somehow.
166
+ var range = new Aloha.Selection.SelectionRange(true);
167
+ this.updateSelectionTimeout = window.setTimeout(function () {
168
+ Aloha.Selection._updateSelection(event, range);
169
+ }, 5);
170
+ },
171
+
172
+ /**
173
+ * prevents the next aloha-selection-changed event from being triggered
174
+ */
175
+ preventSelectionChanged: function () {
176
+ this.preventSelectionChangedFlag = true;
177
+ },
178
+
179
+ /**
180
+ * will return wheter selection change event was prevented or not, and reset the preventSelectionChangedFlag
181
+ * @return {Boolean} true if aloha-selection-change event was prevented
182
+ */
183
+ isSelectionChangedPrevented: function () {
184
+ var prevented = this.preventSelectionChangedFlag;
185
+ this.preventSelectionChangedFlag = false;
186
+ return prevented;
187
+ },
188
+
189
+ /**
190
+ * Checks if the current rangeObject common ancector container is edtiable
191
+ * @return {Boolean} true if current common ancestor is editable
192
+ */
193
+ isSelectionEditable: function() {
194
+ return ( this.rangeObject.commonAncestorContainer &&
195
+ jQuery( this.rangeObject.commonAncestorContainer )
196
+ .contentEditable() );
197
+ },
198
+
199
+ /**
200
+ * This method checks, if the current rangeObject common ancestor container has a 'data-aloha-floatingmenu-visible' Attribute.
201
+ * Needed in Floating Menu for exceptional display of floatingmenu.
202
+ */
203
+ isFloatingMenuVisible: function() {
204
+ var visible = jQuery(Aloha.Selection.rangeObject
205
+ .commonAncestorContainer).attr('data-aloha-floatingmenu-visible');
206
+ if(visible !== 'undefined'){
207
+ if (visible === 'true'){
208
+ return true;
209
+ } else {
210
+ return false;
211
+ }
212
+ }
213
+ return false;
214
+ },
215
+
216
+ /**
217
+ * INFO: Method is used for integration with Gentics Aloha, has no use otherwise
218
+ * Updates the rangeObject according to the current user selection
219
+ * Method is always called on selection change
220
+ * @param event jQuery browser event object
221
+ * @return true when rangeObject was modified, false otherwise
222
+ * @hide
223
+ */
224
+ updateSelection: function(event) {
225
+ return this._updateSelection(event, null);
226
+ },
227
+
228
+ /**
229
+ * Internal version of updateSelection that adds the range parameter to be
230
+ * able to work around an IE bug that caused the current user selection
231
+ * sometimes to be on the body element.
232
+ * @param {Object} event
233
+ * @param {Object} range a substitute for the current user selection. if not provided,
234
+ * the current user selection will be used.
235
+ * @hide
236
+ */
237
+ _updateSelection: function( event, range ) {
238
+ if ( event && event.originalEvent
239
+ && event.originalEvent.stopSelectionUpdate === true ) {
240
+ return false;
241
+ }
242
+
243
+ if ( typeof range === 'undefined' ) {
244
+ return false;
245
+ }
246
+
247
+ this.rangeObject = range || new Aloha.Selection.SelectionRange( true );
248
+
249
+ // Only execute the workaround when a valid rangeObject was provided
250
+ if ( typeof this.rangeObject !== "undefined" && typeof this.rangeObject.startContainer !== "undefined" && this.rangeObject.endContainer !== "undefined") {
251
+ // workaround for a nasty IE bug that allows the user to select text nodes inside areas with contenteditable "false"
252
+ if ( (this.rangeObject.startContainer.nodeType === 3 && !jQuery(this.rangeObject.startContainer.parentNode).contentEditable())
253
+ || (this.rangeObject.endContainer.nodeType === 3 && !jQuery(this.rangeObject.endContainer.parentNode).contentEditable())) {
254
+ Aloha.getSelection().removeAllRanges();
255
+ return true;
256
+ }
257
+ }
258
+
259
+ // find the CAC (Common Ancestor Container) and update the selection Tree
260
+ this.rangeObject.update();
261
+
262
+ // check if aloha-selection-changed event has been prevented
263
+ if (this.isSelectionChangedPrevented()) {
264
+ return true;
265
+ }
266
+
267
+ // Only set the specific scope if an event was provided, which means
268
+ // that somehow an editable was selected
269
+ // TODO Bind code to aloha-selection-changed event to remove coupling to floatingmenu
270
+ if (event !== undefined) {
271
+ // Initiallly set the scope to 'continuoustext'
272
+ FloatingMenu.setScope('Aloha.continuoustext');
273
+ }
274
+
275
+ // throw the event that the selection has changed. Plugins now have the
276
+ // chance to react on the chancurrentElements[childCount].children.lengthged selection
277
+ Aloha.trigger('aloha-selection-changed', [ this.rangeObject, event ]);
278
+
279
+ return true;
280
+ },
281
+
282
+ /**
283
+ * creates an object with x items containing all relevant dom objects.
284
+ * Structure:
285
+ * +
286
+ * |-domobj: <reference to the DOM Object> (NOT jQuery)
287
+ * |-selection: defines if this node is marked by user [none|partial|full]
288
+ * |-children: recursive structure like this ("x.." because it's then shown last in DOM Browsers...)
289
+ * TODO: remove this (was moved to range.js)
290
+ *
291
+ * @param rangeObject "Aloha clean" range object including a commonAncestorContainer
292
+ * @return obj selection
293
+ * @hide
294
+ */
295
+ getSelectionTree: function(rangeObject) {
296
+ if (!rangeObject) { // if called without any parameters, the method acts as getter for this.selectionTree
297
+ return this.rangeObject.getSelectionTree();
298
+ }
299
+ if (!rangeObject.commonAncestorContainer) {
300
+ Aloha.Log.error(this, 'the rangeObject is missing the commonAncestorContainer');
301
+ return false;
302
+ }
303
+
304
+ this.inselection = false;
305
+
306
+ // before getting the selection tree, we do a cleanup
307
+ if (GENTICS.Utils.Dom.doCleanup({'merge' : true}, rangeObject)) {
308
+ this.rangeObject.update();
309
+ this.rangeObject.select();
310
+ }
311
+
312
+ return this.recursiveGetSelectionTree(rangeObject, rangeObject.commonAncestorContainer);
313
+ },
314
+
315
+ /**
316
+ * Recursive inner function for generating the selection tree.
317
+ * TODO: remove this (was moved to range.js)
318
+ * @param rangeObject range object
319
+ * @param currentObject current DOM object for which the selection tree shall be generated
320
+ * @return array of SelectionTree objects for the children of the current DOM object
321
+ * @hide
322
+ */
323
+ recursiveGetSelectionTree: function (rangeObject, currentObject) {
324
+ // get all direct children of the given object
325
+ var jQueryCurrentObject = jQuery(currentObject),
326
+ childCount = 0,
327
+ that = this,
328
+ currentElements = [];
329
+
330
+ jQueryCurrentObject.contents().each(function(index) {
331
+ var selectionType = 'none',
332
+ startOffset = false,
333
+ endOffset = false,
334
+ collapsedFound = false,
335
+ i, elementsLength,
336
+ noneFound = false,
337
+ partialFound = false,
338
+ fullFound = false;
339
+
340
+ // check for collapsed selections between nodes
341
+ if (rangeObject.isCollapsed() && currentObject === rangeObject.startContainer && rangeObject.startOffset == index) {
342
+ // insert an extra selectiontree object for the collapsed selection here
343
+ currentElements[childCount] = new Aloha.Selection.SelectionTree();
344
+ currentElements[childCount].selection = 'collapsed';
345
+ currentElements[childCount].domobj = undefined;
346
+ that.inselection = false;
347
+ collapsedFound = true;
348
+ childCount++;
349
+ }
350
+
351
+ if (!that.inselection && !collapsedFound) {
352
+ // the start of the selection was not yet found, so look for it now
353
+ // check whether the start of the selection is found here
354
+
355
+ // Try to read the nodeType property and return if we do not have permission
356
+ // ie.: frame document to an external URL
357
+ var nodeType;
358
+ try {
359
+ nodeType = this.nodeType;
360
+ }
361
+ catch (e) {
362
+ return;
363
+ }
364
+
365
+ // check is dependent on the node type
366
+ switch(nodeType) {
367
+ case 3: // text node
368
+ if (this === rangeObject.startContainer) {
369
+ // the selection starts here
370
+ that.inselection = true;
371
+
372
+ // when the startoffset is > 0, the selection type is only partial
373
+ selectionType = rangeObject.startOffset > 0 ? 'partial' : 'full';
374
+ startOffset = rangeObject.startOffset;
375
+ endOffset = this.length;
376
+ }
377
+ break;
378
+ case 1: // element node
379
+ if (this === rangeObject.startContainer && rangeObject.startOffset === 0) {
380
+ // the selection starts here
381
+ that.inselection = true;
382
+ selectionType = 'full';
383
+ }
384
+ if (currentObject === rangeObject.startContainer && rangeObject.startOffset === index) {
385
+ // the selection starts here
386
+ that.inselection = true;
387
+ selectionType = 'full';
388
+ }
389
+ break;
390
+ }
391
+ }
392
+
393
+ if (that.inselection && !collapsedFound) {
394
+ if (selectionType == 'none') {
395
+ selectionType = 'full';
396
+ }
397
+ // we already found the start of the selection, so look for the end of the selection now
398
+ // check whether the end of the selection is found here
399
+
400
+ switch(this.nodeType) {
401
+ case 3: // text node
402
+ if (this === rangeObject.endContainer) {
403
+ // the selection ends here
404
+ that.inselection = false;
405
+
406
+ // check for partial selection here
407
+ if (rangeObject.endOffset < this.length) {
408
+ selectionType = 'partial';
409
+ }
410
+ if (startOffset === false) {
411
+ startOffset = 0;
412
+ }
413
+ endOffset = rangeObject.endOffset;
414
+ }
415
+ break;
416
+ case 1: // element node
417
+ if (this === rangeObject.endContainer && rangeObject.endOffset === 0) {
418
+ that.inselection = false;
419
+ }
420
+ break;
421
+ }
422
+ if (currentObject === rangeObject.endContainer && rangeObject.endOffset <= index) {
423
+ that.inselection = false;
424
+ selectionType = 'none';
425
+ }
426
+ }
427
+
428
+ // create the current selection tree entry
429
+ currentElements[childCount] = new Aloha.Selection.SelectionTree();
430
+ currentElements[childCount].domobj = this;
431
+ currentElements[childCount].selection = selectionType;
432
+ if (selectionType == 'partial') {
433
+ currentElements[childCount].startOffset = startOffset;
434
+ currentElements[childCount].endOffset = endOffset;
435
+ }
436
+
437
+ // now do the recursion step into the current object
438
+ currentElements[childCount].children = that.recursiveGetSelectionTree(rangeObject, this);
439
+ elementsLength = currentElements[childCount].children.length;
440
+
441
+ // check whether a selection was found within the children
442
+ if (elementsLength > 0) {
443
+ for ( i = 0; i < elementsLength; ++i) {
444
+ switch(currentElements[childCount].children[i].selection) {
445
+ case 'none':
446
+ noneFound = true;
447
+ break;
448
+ case 'full':
449
+ fullFound = true;
450
+ break;
451
+ case 'partial':
452
+ partialFound = true;
453
+ break;
454
+ }
455
+ }
456
+
457
+ if (partialFound || (fullFound && noneFound)) {
458
+ // found at least one 'partial' selection in the children, or both 'full' and 'none', so this element is also 'partial' selected
459
+ currentElements[childCount].selection = 'partial';
460
+ } else if (fullFound && !partialFound && !noneFound) {
461
+ // only found 'full' selected children, so this element is also 'full' selected
462
+ currentElements[childCount].selection = 'full';
463
+ }
464
+ }
465
+
466
+ childCount++;
467
+ });
468
+
469
+ // extra check for collapsed selections at the end of the current element
470
+ if (rangeObject.isCollapsed()
471
+ && currentObject === rangeObject.startContainer
472
+ && rangeObject.startOffset == currentObject.childNodes.length) {
473
+ currentElements[childCount] = new Aloha.Selection.SelectionTree();
474
+ currentElements[childCount].selection = 'collapsed';
475
+ currentElements[childCount].domobj = undefined;
476
+ }
477
+
478
+ return currentElements;
479
+ },
480
+
481
+ /**
482
+ * Get the currently selected range
483
+ * @return {Aloha.Selection.SelectionRange} currently selected range
484
+ * @method
485
+ */
486
+ getRangeObject: function() {
487
+ return this.rangeObject;
488
+ },
489
+
490
+ /**
491
+ * method finds out, if a node is within a certain markup or not
492
+ * @param rangeObj Aloha rangeObject
493
+ * @param startOrEnd boolean; defines, if start or endContainer should be used: false for start, true for end
494
+ * @param markupObject jQuery object of the markup to look for
495
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
496
+ * @param limitObject dom object which limits the search are within the dom. normally this will be the active Editable
497
+ * @return true, if the markup is effective on the range objects start or end node
498
+ * @hide
499
+ */
500
+ isRangeObjectWithinMarkup: function(rangeObject, startOrEnd, markupObject, tagComparator, limitObject) {
501
+ var
502
+ domObj = !startOrEnd?rangeObject.startContainer:rangeObject.endContainer,
503
+ that = this,
504
+ parents = jQuery(domObj).parents(),
505
+ returnVal = false,
506
+ i = -1;
507
+
508
+ // check if a comparison method was passed as parameter ...
509
+ if (typeof tagComparator !== 'undefined' && typeof tagComparator !== 'function') {
510
+ Aloha.Log.error(this,'parameter tagComparator is not a function');
511
+ }
512
+ // ... if not use this as standard tag comparison method
513
+ if (typeof tagComparator === 'undefined') {
514
+ tagComparator = function(domobj, markupObject) {
515
+ return that.standardTextLevelSemanticsComparator(domobj, markupObject); // TODO should actually be this.getStandardTagComparator(markupObject)
516
+ };
517
+ }
518
+
519
+ if (parents.length > 0) {
520
+ parents.each(function() {
521
+ // the limit object was reached (normally the Editable Element)
522
+ if (this === limitObject) {
523
+ Aloha.Log.debug(that,'reached limit dom obj');
524
+ return false; // break() of jQuery .each(); THIS IS NOT THE FUNCTION RETURN VALUE
525
+ }
526
+ if (tagComparator(this, markupObject)) {
527
+ if (returnVal === false) {
528
+ returnVal = [];
529
+ }
530
+ Aloha.Log.debug(that,'reached object equal to markup');
531
+ i++;
532
+ returnVal[i] = this;
533
+ return true; // continue() of jQuery .each(); THIS IS NOT THE FUNCTION RETURN VALUE
534
+ }
535
+ });
536
+ }
537
+ return returnVal;
538
+ },
539
+
540
+ /**
541
+ * standard method, to compare a domobj and a jquery object for sections and grouping content (e.g. p, h1, h2, ul, ....).
542
+ * is always used when no other tag comparator is passed as parameter
543
+ * @param domobj domobject to compare with markup
544
+ * @param markupObject jQuery object of the markup to compare with domobj
545
+ * @return true if objects are equal and false if not
546
+ * @hide
547
+ */
548
+ standardSectionsAndGroupingContentComparator: function(domobj, markupObject) {
549
+ if (domobj.nodeType === 1) {
550
+ if (markupObject[0].tagName && Aloha.Selection.replacingElements[ domobj.tagName.toLowerCase() ] && Aloha.Selection.replacingElements[ domobj.tagName.toLowerCase() ].indexOf(markupObject[0].tagName.toLowerCase()) != -1) {
551
+ return true;
552
+ }
553
+ } else {
554
+ Aloha.Log.debug(this,'only element nodes (nodeType == 1) can be compared');
555
+ }
556
+ return false;
557
+ },
558
+
559
+ /**
560
+ * standard method, to compare a domobj and a jquery object for their tagName (aka span elements, e.g. b, i, sup, span, ...).
561
+ * is always used when no other tag comparator is passed as parameter
562
+ * @param domobj domobject to compare with markup
563
+ * @param markupObject jQuery object of the markup to compare with domobj
564
+ * @return true if objects are equal and false if not
565
+ * @hide
566
+ */
567
+ standardTagNameComparator : function(domobj, markupObject) {
568
+ if (domobj.nodeType === 1) {
569
+ if (domobj.tagName.toLowerCase() != markupObject[0].tagName.toLowerCase()) {
570
+ // Aloha.Log.debug(this, 'tag comparison for <' + domobj.tagName.toLowerCase() + '> and <' + markupObject[0].tagName.toLowerCase() + '> failed because tags are different');
571
+ return false;
572
+ }
573
+ return true;//domobj.attributes.length
574
+ } else {
575
+ Aloha.Log.debug(this,'only element nodes (nodeType == 1) can be compared');
576
+ }
577
+ return false;
578
+ },
579
+
580
+ /**
581
+ * standard method, to compare a domobj and a jquery object for text level semantics (aka span elements, e.g. b, i, sup, span, ...).
582
+ * is always used when no other tag comparator is passed as parameter
583
+ * @param domobj domobject to compare with markup
584
+ * @param markupObject jQuery object of the markup to compare with domobj
585
+ * @return true if objects are equal and false if not
586
+ * @hide
587
+ */
588
+ standardTextLevelSemanticsComparator: function(domobj, markupObject) {
589
+ // only element nodes can be compared
590
+ if (domobj.nodeType === 1) {
591
+ if (domobj.tagName.toLowerCase() != markupObject[0].tagName.toLowerCase()) {
592
+ // Aloha.Log.debug(this, 'tag comparison for <' + domobj.tagName.toLowerCase() + '> and <' + markupObject[0].tagName.toLowerCase() + '> failed because tags are different');
593
+ return false;
594
+ }
595
+ if (!this.standardAttributesComparator(domobj, markupObject)) {
596
+ return false;
597
+ }
598
+ return true;//domobj.attributes.length
599
+ } else {
600
+ Aloha.Log.debug(this,'only element nodes (nodeType == 1) can be compared');
601
+ }
602
+ return false;
603
+ },
604
+
605
+
606
+ /**
607
+ * standard method, to compare attributes of one dom obj and one markup obj (jQuery)
608
+ * @param domobj domobject to compare with markup
609
+ * @param markupObject jQuery object of the markup to compare with domobj
610
+ * @return true if objects are equal and false if not
611
+ * @hide
612
+ */
613
+ standardAttributesComparator: function(domobj, markupObject) {
614
+ var i, attr, classString, classes, classes2, classLength, attrLength, domAttrLength;
615
+
616
+ // Cloning the domobj works around an IE7 bug that crashes
617
+ // the browser. The exact place where IE7 crashes is when
618
+ // the domobj.attribute[i] is read below.
619
+ // The bug can be reproduced with an editable that contains
620
+ // some text and and image, by clicking inside and outside the
621
+ // editable a few times.
622
+ domobj = domobj.cloneNode(false);
623
+
624
+ if (domobj.attributes && domobj.attributes.length && domobj.attributes.length > 0) {
625
+ for (i = 0, domAttrLength = domobj.attributes.length; i < domAttrLength; i++) {
626
+ // Dereferencing attributes[i] here would crash IE7 if domobj were not cloned above
627
+ attr = domobj.attributes[i];
628
+ if (attr.nodeName.toLowerCase() == 'class' && attr.nodeValue.length > 0) {
629
+ classString = attr.nodeValue;
630
+ classes = classString.split(' ');
631
+ }
632
+ }
633
+ }
634
+
635
+ if (markupObject[0].attributes && markupObject[0].attributes.length && markupObject[0].attributes.length > 0) {
636
+ for (i = 0, attrLength = markupObject[0].attributes.length; i < attrLength; i++) {
637
+ attr = markupObject[0].attributes[i];
638
+ if (attr.nodeName.toLowerCase() == 'class' && attr.nodeValue.length > 0) {
639
+ classString = attr.nodeValue;
640
+ classes2 = classString.split(' ');
641
+ }
642
+ }
643
+ }
644
+
645
+ if (classes && !classes2 || classes2 && !classes) {
646
+ Aloha.Log.debug(this, 'tag comparison for <' + domobj.tagName.toLowerCase() + '> failed because one element has classes and the other has not');
647
+ return false;
648
+ }
649
+ if (classes && classes2 && classes.length != classes2.length) {
650
+ Aloha.Log.debug(this, 'tag comparison for <' + domobj.tagName.toLowerCase() + '> failed because of a different amount of classes');
651
+ return false;
652
+ }
653
+ if (classes && classes2 && classes.length === classes2.length && classes.length !== 0) {
654
+ for (i = 0, classLength = classes.length; i < classLength; i++) {
655
+ if (!markupObject.hasClass(classes[ i ])) {
656
+ Aloha.Log.debug(this, 'tag comparison for <' + domobj.tagName.toLowerCase() + '> failed because of different classes');
657
+ return false;
658
+ }
659
+ }
660
+ }
661
+ return true;
662
+ },
663
+
664
+ /**
665
+ * method finds out, if a node is within a certain markup or not
666
+ * @param rangeObj Aloha rangeObject
667
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
668
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
669
+ * @return void; TODO: should return true if the markup applied successfully and false if not
670
+ * @hide
671
+ */
672
+ changeMarkup: function(rangeObject, markupObject, tagComparator) {
673
+ var
674
+ tagName = markupObject[0].tagName.toLowerCase(),
675
+ newCAC, limitObject,
676
+ backupRangeObject,
677
+ relevantMarkupObjectsAtSelectionStart = this.isRangeObjectWithinMarkup(rangeObject, false, markupObject, tagComparator, limitObject),
678
+ relevantMarkupObjectsAtSelectionEnd = this.isRangeObjectWithinMarkup(rangeObject, true, markupObject, tagComparator, limitObject),
679
+ nextSibling, relevantMarkupObjectAfterSelection,
680
+ prevSibling, relevantMarkupObjectBeforeSelection,
681
+ extendedRangeObject;
682
+
683
+ // if the element is a replacing element (like p/h1/h2/h3/h4/h5/h6...), which must not wrap each other
684
+ // use a clone of rangeObject
685
+ if (this.replacingElements[ tagName ]) {
686
+ // backup rangeObject for later selection;
687
+ backupRangeObject = rangeObject;
688
+
689
+ // create a new range object to not modify the orginal
690
+ rangeObject = new this.SelectionRange(rangeObject);
691
+
692
+ // either select the active Editable as new commonAncestorContainer (CAC) or use the body
693
+ if (Aloha.activeEditable) {
694
+ newCAC= Aloha.activeEditable.obj.get(0);
695
+ } else {
696
+ newCAC = jQuery('body');
697
+ }
698
+ // update rangeObject by setting the newCAC and automatically recalculating the selectionTree
699
+ rangeObject.update(newCAC);
700
+
701
+ // store the information, that the markupObject can be replaced (not must be!!) inside the jQuery markup object
702
+ markupObject.isReplacingElement = true;
703
+ }
704
+ // if the element is NOT a replacing element, then something needs to be selected, otherwise it can not be wrapped
705
+ // therefor the method can return false, if nothing is selected ( = rangeObject is collapsed)
706
+ else {
707
+ if (rangeObject.isCollapsed()) {
708
+ Aloha.Log.debug(this, 'early returning from applying markup because nothing is currently selected');
709
+ return false;
710
+ }
711
+ }
712
+
713
+ // is Start/End DOM Obj inside the markup to change
714
+ if (Aloha.activeEditable) {
715
+ limitObject = Aloha.activeEditable.obj[0];
716
+ } else {
717
+ limitObject = jQuery('body');
718
+ }
719
+
720
+ if (!markupObject.isReplacingElement && rangeObject.startOffset === 0) { // don't care about replacers, because they never extend
721
+ if (prevSibling = this.getTextNodeSibling(false, rangeObject.commonAncestorContainer.parentNode, rangeObject.startContainer)) {
722
+ relevantMarkupObjectBeforeSelection = this.isRangeObjectWithinMarkup({startContainer : prevSibling, startOffset : 0}, false, markupObject, tagComparator, limitObject);
723
+ }
724
+ }
725
+ if (!markupObject.isReplacingElement && (rangeObject.endOffset === rangeObject.endContainer.length)) { // don't care about replacers, because they never extend
726
+ if (nextSibling = this.getTextNodeSibling(true, rangeObject.commonAncestorContainer.parentNode, rangeObject.endContainer)) {
727
+ relevantMarkupObjectAfterSelection = this.isRangeObjectWithinMarkup({startContainer: nextSibling, startOffset: 0}, false, markupObject, tagComparator, limitObject);
728
+ }
729
+ }
730
+
731
+ // decide what to do (expand or reduce markup)
732
+ // Alternative A: from markup to no-markup: markup will be removed in selection;
733
+ // reapplied from original markup start to selection start
734
+ if (!markupObject.isReplacingElement && (relevantMarkupObjectsAtSelectionStart && !relevantMarkupObjectsAtSelectionEnd)) {
735
+ Aloha.Log.info(this, 'markup 2 non-markup');
736
+ this.prepareForRemoval(rangeObject.getSelectionTree(), markupObject, tagComparator);
737
+ jQuery(relevantMarkupObjectsAtSelectionStart).addClass('preparedForRemoval');
738
+ this.insertCroppedMarkups(relevantMarkupObjectsAtSelectionStart, rangeObject, false, tagComparator);
739
+ }
740
+
741
+ // Alternative B: from markup to markup:
742
+ // remove selected markup (=split existing markup if single, shrink if two different)
743
+ else if (!markupObject.isReplacingElement && relevantMarkupObjectsAtSelectionStart && relevantMarkupObjectsAtSelectionEnd) {
744
+ Aloha.Log.info(this, 'markup 2 markup');
745
+ this.prepareForRemoval(rangeObject.getSelectionTree(), markupObject, tagComparator);
746
+ this.splitRelevantMarkupObject(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd, rangeObject, tagComparator);
747
+ }
748
+
749
+ // Alternative C: from no-markup to markup OR with next2markup:
750
+ // new markup is wrapped from selection start to end of originalmarkup, original is remove afterwards
751
+ else if (!markupObject.isReplacingElement && ((!relevantMarkupObjectsAtSelectionStart && relevantMarkupObjectsAtSelectionEnd) || relevantMarkupObjectAfterSelection || relevantMarkupObjectBeforeSelection )) { //
752
+ Aloha.Log.info(this, 'non-markup 2 markup OR with next2markup');
753
+ // move end of rangeObject to end of relevant markups
754
+ if (relevantMarkupObjectBeforeSelection && relevantMarkupObjectAfterSelection) {
755
+ extendedRangeObject = new Aloha.Selection.SelectionRange(rangeObject);
756
+ extendedRangeObject.startContainer = jQuery(relevantMarkupObjectBeforeSelection[ relevantMarkupObjectBeforeSelection.length-1 ]).textNodes()[0];
757
+ extendedRangeObject.startOffset = 0;
758
+ extendedRangeObject.endContainer = jQuery(relevantMarkupObjectAfterSelection[ relevantMarkupObjectAfterSelection.length-1 ]).textNodes().last()[0];
759
+ extendedRangeObject.endOffset = extendedRangeObject.endContainer.length;
760
+ extendedRangeObject.update();
761
+ this.applyMarkup(extendedRangeObject.getSelectionTree(), rangeObject, markupObject, tagComparator);
762
+ Aloha.Log.info(this, 'double extending previous markup(previous and after selection), actually wrapping it ...');
763
+
764
+ } else if (relevantMarkupObjectBeforeSelection && !relevantMarkupObjectAfterSelection && !relevantMarkupObjectsAtSelectionEnd) {
765
+ this.extendExistingMarkupWithSelection(relevantMarkupObjectBeforeSelection, rangeObject, false, tagComparator);
766
+ Aloha.Log.info(this, 'extending previous markup');
767
+
768
+ } else if (relevantMarkupObjectBeforeSelection && !relevantMarkupObjectAfterSelection && relevantMarkupObjectsAtSelectionEnd) {
769
+ extendedRangeObject = new Aloha.Selection.SelectionRange(rangeObject);
770
+ extendedRangeObject.startContainer = jQuery(relevantMarkupObjectBeforeSelection[ relevantMarkupObjectBeforeSelection.length-1 ]).textNodes()[0];
771
+ extendedRangeObject.startOffset = 0;
772
+ extendedRangeObject.endContainer = jQuery(relevantMarkupObjectsAtSelectionEnd[ relevantMarkupObjectsAtSelectionEnd.length-1 ]).textNodes().last()[0];
773
+ extendedRangeObject.endOffset = extendedRangeObject.endContainer.length;
774
+ extendedRangeObject.update();
775
+ this.applyMarkup(extendedRangeObject.getSelectionTree(), rangeObject, markupObject, tagComparator);
776
+ Aloha.Log.info(this, 'double extending previous markup(previous and relevant at the end), actually wrapping it ...');
777
+
778
+ } else if (!relevantMarkupObjectBeforeSelection && relevantMarkupObjectAfterSelection) {
779
+ this.extendExistingMarkupWithSelection(relevantMarkupObjectAfterSelection, rangeObject, true, tagComparator);
780
+ Aloha.Log.info(this, 'extending following markup backwards');
781
+
782
+ } else {
783
+ this.extendExistingMarkupWithSelection(relevantMarkupObjectsAtSelectionEnd, rangeObject, true, tagComparator);
784
+ }
785
+ }
786
+
787
+ // Alternative D: no-markup to no-markup: easy
788
+ else if (markupObject.isReplacingElement || (!relevantMarkupObjectsAtSelectionStart && !relevantMarkupObjectsAtSelectionEnd && !relevantMarkupObjectBeforeSelection && !relevantMarkupObjectAfterSelection)) {
789
+ Aloha.Log.info(this, 'non-markup 2 non-markup');
790
+ this.applyMarkup(rangeObject.getSelectionTree(), rangeObject, markupObject, tagComparator, {setRangeObject2NewMarkup: true});
791
+ }
792
+
793
+ // remove all marked items
794
+ jQuery('.preparedForRemoval').zap();
795
+
796
+ // recalculate cac and selectionTree
797
+ rangeObject.update();
798
+
799
+ // update selection
800
+ if (markupObject.isReplacingElement) {
801
+ // this.setSelection(backupRangeObject, true);
802
+ backupRangeObject.select();
803
+ } else {
804
+ // this.setSelection(rangeObject);
805
+ rangeObject.select();
806
+ }
807
+ },
808
+
809
+ /**
810
+ * method compares a JS array of domobjects with a range object and decides, if the rangeObject spans the whole markup objects. method is used to decide if a markup2markup selection can be completely remove or if it must be splitted into 2 separate markups
811
+ * @param relevantMarkupObjectsAtSelectionStart JS Array of dom objects, which are parents to the rangeObject.startContainer
812
+ * @param relevantMarkupObjectsAtSelectionEnd JS Array of dom objects, which are parents to the rangeObject.endContainer
813
+ * @param rangeObj Aloha rangeObject
814
+ * @return true, if rangeObjects and markup objects are identical, false otherwise
815
+ * @hide
816
+ */
817
+ areMarkupObjectsAsLongAsRangeObject: function(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd, rangeObject) {
818
+ var i, el, textNode, relMarkupEnd, relMarkupStart;
819
+
820
+ if (rangeObject.startOffset !== 0) {
821
+ return false;
822
+ }
823
+
824
+ for (i = 0, relMarkupStart = relevantMarkupObjectsAtSelectionStart.length; i < relMarkupStart; i++) {
825
+ el = jQuery(relevantMarkupObjectsAtSelectionStart[i]);
826
+ if (el.textNodes().first()[0] !== rangeObject.startContainer) {
827
+ return false;
828
+ }
829
+ }
830
+
831
+ for (i = 0, relMarkupEnd = relevantMarkupObjectsAtSelectionEnd.length; i < relMarkupEnd; i++) {
832
+ el = jQuery(relevantMarkupObjectsAtSelectionEnd[i]);
833
+ textNode = el.textNodes().last()[0];
834
+ if (textNode !== rangeObject.endContainer || textNode.length != rangeObject.endOffset) {
835
+ return false;
836
+ }
837
+ }
838
+
839
+ return true;
840
+ },
841
+
842
+ /**
843
+ * method used to remove/split markup from a "markup2markup" selection
844
+ * @param relevantMarkupObjectsAtSelectionStart JS Array of dom objects, which are parents to the rangeObject.startContainer
845
+ * @param relevantMarkupObjectsAtSelectionEnd JS Array of dom objects, which are parents to the rangeObject.endContainer
846
+ * @param rangeObj Aloha rangeObject
847
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
848
+ * @return true (always, since no "false" case is currently known...but might be added)
849
+ * @hide
850
+ */
851
+ splitRelevantMarkupObject: function(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd, rangeObject, tagComparator) {
852
+ // mark them to be deleted
853
+ jQuery(relevantMarkupObjectsAtSelectionStart).addClass('preparedForRemoval');
854
+ jQuery(relevantMarkupObjectsAtSelectionEnd).addClass('preparedForRemoval');
855
+
856
+ // check if the rangeObject is identical with the relevantMarkupObjects (in this case the markup can simply be removed)
857
+ if (this.areMarkupObjectsAsLongAsRangeObject(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd, rangeObject)) {
858
+ return true;
859
+ }
860
+
861
+ // find intersection (this can always only be one dom element (namely the highest) because all others will be removed
862
+ var relevantMarkupObjectAtSelectionStartAndEnd = this.intersectRelevantMarkupObjects(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd);
863
+
864
+ if (relevantMarkupObjectAtSelectionStartAndEnd) {
865
+ this.insertCroppedMarkups([relevantMarkupObjectAtSelectionStartAndEnd], rangeObject, false, tagComparator);
866
+ this.insertCroppedMarkups([relevantMarkupObjectAtSelectionStartAndEnd], rangeObject, true, tagComparator);
867
+ } else {
868
+ this.insertCroppedMarkups(relevantMarkupObjectsAtSelectionStart, rangeObject, false, tagComparator);
869
+ this.insertCroppedMarkups(relevantMarkupObjectsAtSelectionEnd, rangeObject, true, tagComparator);
870
+ }
871
+ return true;
872
+ },
873
+
874
+ /**
875
+ * method takes two arrays of bottom up dom objects, compares them and returns either the object closest to the root or false
876
+ * @param relevantMarkupObjectsAtSelectionStart JS Array of dom objects
877
+ * @param relevantMarkupObjectsAtSelectionEnd JS Array of dom objects
878
+ * @return dom object closest to the root or false
879
+ * @hide
880
+ */
881
+ intersectRelevantMarkupObjects: function(relevantMarkupObjectsAtSelectionStart, relevantMarkupObjectsAtSelectionEnd) {
882
+ var intersection = false, i, elStart, j, elEnd, relMarkupStart, relMarkupEnd;
883
+ if (!relevantMarkupObjectsAtSelectionStart || !relevantMarkupObjectsAtSelectionEnd) {
884
+ return intersection; // we can only intersect, if we have to arrays!
885
+ }
886
+ relMarkupStart = relevantMarkupObjectsAtSelectionStart.length;
887
+ relMarkupEnd = relevantMarkupObjectsAtSelectionEnd.length;
888
+ for (i = 0; i < relMarkupStart; i++) {
889
+ elStart = relevantMarkupObjectsAtSelectionStart[i];
890
+ for (j = 0; j < relMarkupEnd; j++) {
891
+ elEnd = relevantMarkupObjectsAtSelectionEnd[j];
892
+ if (elStart === elEnd) {
893
+ intersection = elStart;
894
+ }
895
+ }
896
+ }
897
+ return intersection;
898
+ },
899
+
900
+ /**
901
+ * method used to add markup to a nonmarkup2markup selection
902
+ * @param relevantMarkupObjects JS Array of dom objects effecting either the start or endContainer of a selection (which should be extended)
903
+ * @param rangeObject Aloha rangeObject the markups should be extended to
904
+ * @param startOrEnd boolean; defines, if the existing markups should be extended forwards or backwards (is propably redundant and could be found out by comparing start or end container with the markup array dom objects)
905
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
906
+ * @return true
907
+ * @hide
908
+ */
909
+ extendExistingMarkupWithSelection: function(relevantMarkupObjects, rangeObject, startOrEnd, tagComparator) {
910
+ var extendMarkupsAtStart, extendMarkupsAtEnd, objects, i, relMarkupLength, el, textnodes, nodeNr;
911
+ if (!startOrEnd) { // = Start
912
+ // start part of rangeObject should be used, therefor existing markups are cropped at the end
913
+ extendMarkupsAtStart = true;
914
+ }
915
+ if (startOrEnd) { // = End
916
+ // end part of rangeObject should be used, therefor existing markups are cropped at start (beginning)
917
+ extendMarkupsAtEnd = true;
918
+ }
919
+ objects = [];
920
+ for( i = 0, relMarkupLength = relevantMarkupObjects.length; i < relMarkupLength; i++){
921
+ objects[i] = new this.SelectionRange();
922
+ el = relevantMarkupObjects[i];
923
+ if (extendMarkupsAtEnd && !extendMarkupsAtStart) {
924
+ objects[i].startContainer = rangeObject.startContainer; // jQuery(el).contents()[0];
925
+ objects[i].startOffset = rangeObject.startOffset;
926
+ textnodes = jQuery(el).textNodes(true);
927
+
928
+ nodeNr = textnodes.length - 1;
929
+ objects[i].endContainer = textnodes[ nodeNr ];
930
+ objects[i].endOffset = textnodes[ nodeNr ].length;
931
+ objects[i].update();
932
+ this.applyMarkup(objects[i].getSelectionTree(), rangeObject, this.getClonedMarkup4Wrapping(el), tagComparator, {setRangeObject2NewMarkup: true});
933
+ }
934
+ if (!extendMarkupsAtEnd && extendMarkupsAtStart) {
935
+ textnodes = jQuery(el).textNodes(true);
936
+ objects[i].startContainer = textnodes[0]; // jQuery(el).contents()[0];
937
+ objects[i].startOffset = 0;
938
+ objects[i].endContainer = rangeObject.endContainer;
939
+ objects[i].endOffset = rangeObject.endOffset;
940
+ objects[i].update();
941
+ this.applyMarkup(objects[i].getSelectionTree(), rangeObject, this.getClonedMarkup4Wrapping(el), tagComparator, {setRangeObject2NewMarkup: true});
942
+ }
943
+ }
944
+ return true;
945
+ },
946
+
947
+ /**
948
+ * method creates an empty markup jQuery object from a dom object passed as paramter
949
+ * @param domobj domobject to be cloned, cleaned and emptied
950
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
951
+ * @return jQuery wrapper object to be passed to e.g. this.applyMarkup(...)
952
+ * @hide
953
+ */
954
+ getClonedMarkup4Wrapping: function(domobj) {
955
+ var wrapper = jQuery(domobj.outerHTML).removeClass('preparedForRemoval').empty();
956
+ if (wrapper.attr('class').length === 0) {
957
+ wrapper.removeAttr('class');
958
+ }
959
+ return wrapper;
960
+ },
961
+
962
+ /**
963
+ * method used to subtract the range object from existing markup. in other words: certain markup is removed from the selections defined by the rangeObject
964
+ * @param relevantMarkupObjects JS Array of dom objects effecting either the start or endContainer of a selection (which should be extended)
965
+ * @param rangeObject Aloha rangeObject the markups should be removed from
966
+ * @param startOrEnd boolean; defines, if the existing markups should be reduced at the beginning of the tag or at the end (is propably redundant and could be found out by comparing start or end container with the markup array dom objects)
967
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
968
+ * @return true
969
+ * @hide
970
+ */
971
+ insertCroppedMarkups: function(relevantMarkupObjects, rangeObject, startOrEnd, tagComparator) {
972
+ var cropMarkupsAtEnd,cropMarkupsAtStart,textnodes,objects,i,el,textNodes;
973
+ if (!startOrEnd) { // = Start
974
+ // start part of rangeObject should be used, therefor existing markups are cropped at the end
975
+ cropMarkupsAtEnd = true;
976
+ } else { // = End
977
+ // end part of rangeObject should be used, therefor existing markups are cropped at start (beginning)
978
+ cropMarkupsAtStart = true;
979
+ }
980
+ objects = [];
981
+ for( i = 0; i<relevantMarkupObjects.length; i++){
982
+ objects[i] = new this.SelectionRange();
983
+ el = relevantMarkupObjects[i];
984
+ if (cropMarkupsAtEnd && !cropMarkupsAtStart) {
985
+ textNodes = jQuery(el).textNodes(true);
986
+ objects[i].startContainer = textNodes[0];
987
+ objects[i].startOffset = 0;
988
+ // if the existing markup startContainer & startOffset are equal to the rangeObject startContainer and startOffset,
989
+ // then markupobject does not have to be added again, because it would have no content (zero-length)
990
+ if (objects[i].startContainer === rangeObject.startContainer && objects[i].startOffset === rangeObject.startOffset) {
991
+ continue;
992
+ }
993
+ if (rangeObject.startOffset === 0) {
994
+ objects[i].endContainer = this.getTextNodeSibling(false, el, rangeObject.startContainer);
995
+ objects[i].endOffset = objects[i].endContainer.length;
996
+ } else {
997
+ objects[i].endContainer = rangeObject.startContainer;
998
+ objects[i].endOffset = rangeObject.startOffset;
999
+ }
1000
+
1001
+ objects[i].update();
1002
+
1003
+ this.applyMarkup(objects[i].getSelectionTree(), rangeObject, this.getClonedMarkup4Wrapping(el), tagComparator, {setRangeObject2NextSibling: true});
1004
+ }
1005
+
1006
+ if (!cropMarkupsAtEnd && cropMarkupsAtStart) {
1007
+ objects[i].startContainer = rangeObject.endContainer; // jQuery(el).contents()[0];
1008
+ objects[i].startOffset = rangeObject.endOffset;
1009
+ textnodes = jQuery(el).textNodes(true);
1010
+ objects[i].endContainer = textnodes[ textnodes.length-1 ];
1011
+ objects[i].endOffset = textnodes[ textnodes.length-1 ].length;
1012
+ objects[i].update();
1013
+ this.applyMarkup(objects[i].getSelectionTree(), rangeObject, this.getClonedMarkup4Wrapping(el), tagComparator, {setRangeObject2PreviousSibling: true});
1014
+ }
1015
+ }
1016
+ return true;
1017
+ },
1018
+
1019
+ /**
1020
+ * apply a certain markup to the current selection
1021
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1022
+ * @return void
1023
+ * @hide
1024
+ */
1025
+ changeMarkupOnSelection: function(markupObject) {
1026
+ // change the markup
1027
+ this.changeMarkup(this.getRangeObject(), markupObject, this.getStandardTagComparator(markupObject));
1028
+
1029
+ // merge text nodes
1030
+
1031
+ GENTICS.Utils.Dom.doCleanup({'merge' : true}, this.rangeObject);
1032
+ // update the range and select it
1033
+ this.rangeObject.update();
1034
+ this.rangeObject.select();
1035
+ },
1036
+
1037
+ /**
1038
+ * apply a certain markup to the selection Tree
1039
+ * @param selectionTree SelectionTree Object markup should be applied to
1040
+ * @param rangeObject Aloha rangeObject which will be modified to reflect the dom changes, after the markup was applied (only if activated via options)
1041
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1042
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
1043
+ * @param options JS object, with the following boolean properties: setRangeObject2NewMarkup, setRangeObject2NextSibling, setRangeObject2PreviousSibling
1044
+ * @return void
1045
+ * @hide
1046
+ */
1047
+ applyMarkup: function(selectionTree, rangeObject, markupObject, tagComparator, options) {
1048
+ var optimizedSelectionTree, i, el, breakpoint;
1049
+
1050
+ options = options ? options : {};
1051
+ // first same tags from within fully selected nodes for removal
1052
+ this.prepareForRemoval(selectionTree, markupObject, tagComparator);
1053
+
1054
+ // first let's optimize the selection Tree in useful groups which can be wrapped together
1055
+ optimizedSelectionTree = this.optimizeSelectionTree4Markup(selectionTree, markupObject, tagComparator);
1056
+ breakpoint = true;
1057
+
1058
+ // now iterate over grouped elements and either recursively dive into object or wrap it as a whole
1059
+ for ( i = 0; i < optimizedSelectionTree.length; i++) {
1060
+ el = optimizedSelectionTree[i];
1061
+ if (el.wrappable) {
1062
+ this.wrapMarkupAroundSelectionTree(el.elements, rangeObject, markupObject, tagComparator, options);
1063
+ } else {
1064
+ Aloha.Log.debug(this,'dive further into non-wrappable object');
1065
+ this.applyMarkup(el.element.children, rangeObject, markupObject, tagComparator, options);
1066
+ }
1067
+ }
1068
+ },
1069
+
1070
+ /**
1071
+ * returns the type of the given markup (trying to match HTML5)
1072
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1073
+ * @return string name of the markup type
1074
+ * @hide
1075
+ */
1076
+ getMarkupType: function(markupObject) {
1077
+ var nn = jQuery(markupObject)[0].nodeName.toLowerCase();
1078
+ if (markupObject.outerHtml) {
1079
+ Aloha.Log.debug(this, 'Node name detected: ' + nn + ' for: ' + markupObject.outerHtml());
1080
+ }
1081
+ if (nn == '#text') {return 'textNode';}
1082
+ if (this.replacingElements[ nn ]) {return 'sectionOrGroupingContent';}
1083
+ if (this.tagHierarchy [ nn ]) {return 'textLevelSemantics';}
1084
+ Aloha.Log.warn(this, 'unknown markup passed to this.getMarkupType(...): ' + markupObject.outerHtml());
1085
+ },
1086
+
1087
+ /**
1088
+ * returns the standard tag comparator for the given markup object
1089
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1090
+ * @return function tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
1091
+ * @hide
1092
+ */
1093
+ getStandardTagComparator: function(markupObject) {
1094
+ var that = this, result;
1095
+ switch(this.getMarkupType(markupObject)) {
1096
+ case 'textNode':
1097
+ result = function(p1, p2) {
1098
+ return false;
1099
+ };
1100
+ break;
1101
+
1102
+ case 'sectionOrGroupingContent':
1103
+ result = function(domobj, markupObject) {
1104
+ return that.standardSectionsAndGroupingContentComparator(domobj, markupObject);
1105
+ };
1106
+ break;
1107
+
1108
+ case 'textLevelSemantics':
1109
+ /* falls through */
1110
+ default:
1111
+ result = function(domobj, markupObject) {
1112
+ return that.standardTextLevelSemanticsComparator(domobj, markupObject);
1113
+ };
1114
+ break;
1115
+ }
1116
+ return result;
1117
+ },
1118
+
1119
+ /**
1120
+ * searches for fully selected equal markup tags
1121
+ * @param selectionTree SelectionTree Object markup should be applied to
1122
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1123
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
1124
+ * @return void
1125
+ * @hide
1126
+ */
1127
+ prepareForRemoval: function(selectionTree, markupObject, tagComparator) {
1128
+ var that = this, i, el;
1129
+
1130
+ // check if a comparison method was passed as parameter ...
1131
+ if (typeof tagComparator !== 'undefined' && typeof tagComparator !== 'function') {
1132
+ Aloha.Log.error(this,'parameter tagComparator is not a function');
1133
+ }
1134
+ // ... if not use this as standard tag comparison method
1135
+ if (typeof tagComparator === 'undefined') {
1136
+ tagComparator = this.getStandardTagComparator(markupObject);
1137
+ }
1138
+ for ( i = 0; i<selectionTree.length; i++) {
1139
+ el = selectionTree[i];
1140
+ if (el.domobj && (el.selection == 'full' || (el.selection == 'partial' && markupObject.isReplacingElement))) {
1141
+ // mark for removal
1142
+ if (el.domobj.nodeType === 1 && tagComparator(el.domobj, markupObject)) {
1143
+ Aloha.Log.debug(this, 'Marking for removal: ' + el.domobj.nodeName);
1144
+ jQuery(el.domobj).addClass('preparedForRemoval');
1145
+ }
1146
+ }
1147
+ if (el.selection != 'none' && el.children.length > 0) {
1148
+ this.prepareForRemoval(el.children, markupObject, tagComparator);
1149
+ }
1150
+
1151
+ }
1152
+ },
1153
+
1154
+ /**
1155
+ * searches for fully selected equal markup tags
1156
+ * @param selectionTree SelectionTree Object markup should be applied to
1157
+ * @param rangeObject Aloha rangeObject the markup will be applied to
1158
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1159
+ * @param tagComparator method, which is used to compare the dom object and the jQuery markup object. the method must accept 2 parameters, the first is the domobj, the second is the jquery object. if no method is specified, the method this.standardTextLevelSemanticsComparator is used
1160
+ * @param options JS object, with the following boolean properties: setRangeObject2NewMarkup, setRangeObject2NextSibling, setRangeObject2PreviousSibling
1161
+ * @return void
1162
+ * @hide
1163
+ */
1164
+ wrapMarkupAroundSelectionTree: function(selectionTree, rangeObject, markupObject, tagComparator, options) {
1165
+ // first let's find out if theoretically the whole selection can be wrapped with one tag and save it for later use
1166
+ var objects2wrap = [], // // this will be used later to collect objects
1167
+ j = -1, // internal counter,
1168
+ breakpoint = true,
1169
+ preText = '',
1170
+ postText = '',
1171
+ prevOrNext,
1172
+ textNode2Start,
1173
+ textnodes,
1174
+ newMarkup,
1175
+ i, el, middleText;
1176
+
1177
+
1178
+
1179
+ Aloha.Log.debug(this,'The formatting <' + markupObject[0].tagName + '> will be wrapped around the selection');
1180
+
1181
+ // now lets iterate over the elements
1182
+ for (i = 0; i < selectionTree.length; i++) {
1183
+ el = selectionTree[i];
1184
+
1185
+ // check if markup is allowed inside the elements parent
1186
+ if (el.domobj && !this.canTag1WrapTag2(el.domobj.parentNode.tagName.toLowerCase(), markupObject[0].tagName.toLowerCase())) {
1187
+ Aloha.Log.info(this,'Skipping the wrapping of <' + markupObject[0].tagName.toLowerCase() + '> because this tag is not allowed inside <' + el.domobj.parentNode.tagName.toLowerCase() + '>');
1188
+ continue;
1189
+ }
1190
+
1191
+ // skip empty text nodes
1192
+ if (el.domobj && el.domobj.nodeType === 3 && jQuery.trim(el.domobj.nodeValue).length === 0) {
1193
+ continue;
1194
+ }
1195
+
1196
+ // partial element, can either be a textnode and therefore be wrapped (at least partially)
1197
+ // or can be a nodeType == 1 (tag) which must be dived into
1198
+ if (el.domobj && el.selection == 'partial' && !markupObject.isReplacingElement) {
1199
+ if (el.startOffset !== undefined && el.endOffset === undefined) {
1200
+ j++;
1201
+ preText += el.domobj.data.substr(0,el.startOffset);
1202
+ el.domobj.data = el.domobj.data.substr(el.startOffset, el.domobj.data.length-el.startOffset);
1203
+ objects2wrap[j] = el.domobj;
1204
+ } else if (el.endOffset !== undefined && el.startOffset === undefined) {
1205
+ j++;
1206
+ postText += el.domobj.data.substr(el.endOffset, el.domobj.data.length-el.endOffset);
1207
+ el.domobj.data = el.domobj.data.substr(0, el.endOffset);
1208
+ objects2wrap[j] = el.domobj;
1209
+ } else if (el.endOffset !== undefined && el.startOffset !== undefined) {
1210
+ if (el.startOffset == el.endOffset) { // do not wrap empty selections
1211
+ Aloha.Log.debug(this, 'skipping empty selection');
1212
+ continue;
1213
+ }
1214
+ j++;
1215
+ preText += el.domobj.data.substr(0,el.startOffset);
1216
+ middleText = el.domobj.data.substr(el.startOffset,el.endOffset-el.startOffset);
1217
+ postText += el.domobj.data.substr(el.endOffset, el.domobj.data.length-el.endOffset);
1218
+ el.domobj.data = middleText;
1219
+ objects2wrap[j] = el.domobj;
1220
+ } else {
1221
+ // a partially selected item without selectionStart/EndOffset is a nodeType 1 Element on the way to the textnode
1222
+ Aloha.Log.debug(this, 'diving into object');
1223
+ this.applyMarkup(el.children, rangeObject, markupObject, tagComparator, options);
1224
+ }
1225
+ }
1226
+ // fully selected dom elements can be wrapped as whole element
1227
+ if (el.domobj && (el.selection == 'full' || (el.selection == 'partial' && markupObject.isReplacingElement))) {
1228
+ j++;
1229
+ objects2wrap[j] = el.domobj;
1230
+ }
1231
+ }
1232
+
1233
+ if (objects2wrap.length > 0) {
1234
+ // wrap collected DOM object with markupObject
1235
+ objects2wrap = jQuery(objects2wrap);
1236
+
1237
+ // make a fix for text nodes in <li>'s in ie
1238
+ jQuery.each(objects2wrap, function(index, element) {
1239
+ if (jQuery.browser.msie && element.nodeType == 3
1240
+ && !element.nextSibling && !element.previousSibling
1241
+ && element.parentNode
1242
+ && element.parentNode.nodeName.toLowerCase() == 'li') {
1243
+ element.data = jQuery.trim(element.data);
1244
+ }
1245
+ });
1246
+
1247
+ newMarkup = objects2wrap.wrapAll(markupObject).parent();
1248
+ newMarkup.before(preText).after(postText);
1249
+
1250
+ if (options.setRangeObject2NewMarkup) { // this is used, when markup is added to normal/normal Text
1251
+ textnodes = objects2wrap.textNodes();
1252
+
1253
+ if (textnodes.index(rangeObject.startContainer) != -1) {
1254
+ rangeObject.startOffset = 0;
1255
+ }
1256
+ if (textnodes.index(rangeObject.endContainer) != -1) {
1257
+ rangeObject.endOffset = rangeObject.endContainer.length;
1258
+ }
1259
+ breakpoint=true;
1260
+ }
1261
+ if (options.setRangeObject2NextSibling){
1262
+ prevOrNext = true;
1263
+ textNode2Start = newMarkup.textNodes(true).last()[0];
1264
+ if (objects2wrap.index(rangeObject.startContainer) != -1) {
1265
+ rangeObject.startContainer = this.getTextNodeSibling(prevOrNext, newMarkup.parent(), textNode2Start);
1266
+ rangeObject.startOffset = 0;
1267
+ }
1268
+ if (objects2wrap.index(rangeObject.endContainer) != -1) {
1269
+ rangeObject.endContainer = this.getTextNodeSibling(prevOrNext, newMarkup.parent(), textNode2Start);
1270
+ rangeObject.endOffset = rangeObject.endOffset - textNode2Start.length;
1271
+ }
1272
+ }
1273
+ if (options.setRangeObject2PreviousSibling){
1274
+ prevOrNext = false;
1275
+ textNode2Start = newMarkup.textNodes(true).first()[0];
1276
+ if (objects2wrap.index(rangeObject.startContainer) != -1) {
1277
+ rangeObject.startContainer = this.getTextNodeSibling(prevOrNext, newMarkup.parent(), textNode2Start);
1278
+ rangeObject.startOffset = 0;
1279
+ }
1280
+ if (objects2wrap.index(rangeObject.endContainer) != -1) {
1281
+ rangeObject.endContainer = this.getTextNodeSibling(prevOrNext, newMarkup.parent(), textNode2Start);
1282
+ rangeObject.endOffset = rangeObject.endContainer.length;
1283
+ }
1284
+ }
1285
+ }
1286
+ },
1287
+
1288
+ /**
1289
+ * takes a text node and return either the next recursive text node sibling or the previous
1290
+ * @param previousOrNext boolean, false for previous, true for next sibling
1291
+ * @param commonAncestorContainer dom object to be used as root for the sibling search
1292
+ * @param currentTextNode dom object of the originating text node
1293
+ * @return dom object of the sibling text node
1294
+ * @hide
1295
+ */
1296
+ getTextNodeSibling: function(previousOrNext, commonAncestorContainer, currentTextNode) {
1297
+ var textNodes = jQuery(commonAncestorContainer).textNodes(true),
1298
+ newIndex, index;
1299
+
1300
+ index = textNodes.index(currentTextNode);
1301
+ if (index == -1) { // currentTextNode was not found
1302
+ return false;
1303
+ }
1304
+ newIndex = index + (!previousOrNext ? -1 : 1);
1305
+ return textNodes[newIndex] ? textNodes[newIndex] : false;
1306
+ },
1307
+
1308
+ /**
1309
+ * takes a selection tree and groups it into markup wrappable selection trees
1310
+ * @param selectionTree rangeObject selection tree
1311
+ * @param markupObject jQuery object of the markup to be applied (e.g. created with obj = jQuery('<b></b>'); )
1312
+ * @return JS array of wrappable selection trees
1313
+ * @hide
1314
+ */
1315
+ optimizeSelectionTree4Markup: function(selectionTree, markupObject, tagComparator) {
1316
+ var groupMap = [],
1317
+ outerGroupIndex = 0,
1318
+ innerGroupIndex = 0,
1319
+ that = this,
1320
+ i,j,
1321
+ endPosition, startPosition;
1322
+
1323
+ if (typeof tagComparator === 'undefined') {
1324
+ tagComparator = function(domobj, markupObject) {
1325
+ return that.standardTextLevelSemanticsComparator(markupObject);
1326
+ };
1327
+ }
1328
+ for( i = 0; i<selectionTree.length; i++) {
1329
+ // we are just interested in selected item, but not in non-selected items
1330
+ if (selectionTree[i].domobj && selectionTree[i].selection != 'none') {
1331
+ if (markupObject.isReplacingElement && tagComparator(markupObject[0], jQuery(selectionTree[i].domobj))) {
1332
+ if (groupMap[outerGroupIndex] !== undefined) {
1333
+ outerGroupIndex++;
1334
+ }
1335
+ groupMap[outerGroupIndex] = {};
1336
+ groupMap[outerGroupIndex].wrappable = true;
1337
+ groupMap[outerGroupIndex].elements = [];
1338
+ groupMap[outerGroupIndex].elements[innerGroupIndex] = selectionTree[i];
1339
+ outerGroupIndex++;
1340
+
1341
+ } else
1342
+ // now check, if the children of our item could be wrapped all together by the markup object
1343
+ if (this.canMarkupBeApplied2ElementAsWhole([ selectionTree[i] ], markupObject)) {
1344
+ // if yes, add it to the current group
1345
+ if (groupMap[outerGroupIndex] === undefined) {
1346
+ groupMap[outerGroupIndex] = {};
1347
+ groupMap[outerGroupIndex].wrappable = true;
1348
+ groupMap[outerGroupIndex].elements = [];
1349
+ }
1350
+ if (markupObject.isReplacingElement) { // && selectionTree[i].domobj.nodeType === 3
1351
+ /* we found the node to wrap for a replacing element. however there might
1352
+ * be siblings which should be included as well
1353
+ * although they are actually not selected. example:
1354
+ * li
1355
+ * |-textNode ( .selection = 'none')
1356
+ * |-textNode (cursor inside, therefor .selection = 'partial')
1357
+ * |-textNode ( .selection = 'none')
1358
+ *
1359
+ * in this case it would be useful to select the previous and following textNodes as well (they might result from a previous DOM manipulation)
1360
+ * Think about other cases, where the parent is the Editable. In this case we propably only want to select from and until the next <br /> ??
1361
+ * .... many possibilities, here I realize the two described cases
1362
+ */
1363
+
1364
+ // first find start element starting from the current element going backwards until sibling 0
1365
+ startPosition = i;
1366
+ for (j = i-1; j >= 0; j--) {
1367
+ if (this.canMarkupBeApplied2ElementAsWhole([ selectionTree[ j ] ], markupObject) && this.isMarkupAllowedToStealSelectionTreeElement(selectionTree[ j ], markupObject)) {
1368
+ startPosition = j;
1369
+ } else {
1370
+ break;
1371
+ }
1372
+ }
1373
+
1374
+ // now find the end element starting from the current element going forward until the last sibling
1375
+ endPosition = i;
1376
+ for (j = i+1; j < selectionTree.length; j++) {
1377
+ if (this.canMarkupBeApplied2ElementAsWhole([ selectionTree[ j ] ], markupObject) && this.isMarkupAllowedToStealSelectionTreeElement(selectionTree[ j ], markupObject)) {
1378
+ endPosition = j;
1379
+ } else {
1380
+ break;
1381
+ }
1382
+ }
1383
+
1384
+ // now add the elements to the groupMap
1385
+ innerGroupIndex = 0;
1386
+ for (j = startPosition; j <= endPosition; j++) {
1387
+ groupMap[outerGroupIndex].elements[innerGroupIndex] = selectionTree[j];
1388
+ groupMap[outerGroupIndex].elements[innerGroupIndex].selection = 'full';
1389
+ innerGroupIndex++;
1390
+ }
1391
+ innerGroupIndex = 0;
1392
+ } else {
1393
+ // normal text level semantics object, no siblings need to be selected
1394
+ groupMap[outerGroupIndex].elements[innerGroupIndex] = selectionTree[i];
1395
+ innerGroupIndex++;
1396
+ }
1397
+ } else {
1398
+ // if no, isolate it in its own group
1399
+ if (groupMap[outerGroupIndex] !== undefined) {
1400
+ outerGroupIndex++;
1401
+ }
1402
+ groupMap[outerGroupIndex] = {};
1403
+ groupMap[outerGroupIndex].wrappable = false;
1404
+ groupMap[outerGroupIndex].element = selectionTree[i];
1405
+ innerGroupIndex = 0;
1406
+ outerGroupIndex++;
1407
+ }
1408
+ }
1409
+ }
1410
+ return groupMap;
1411
+ },
1412
+
1413
+ /**
1414
+ * very tricky method, which decides, if a certain markup (normally a replacing markup element like p, h1, blockquote)
1415
+ * is allowed to extend the user selection to other dom objects (represented as selectionTreeElement)
1416
+ * to understand the purpose: if the user selection is collapsed inside e.g. some text, which is currently not
1417
+ * wrapped by the markup to be applied, and therefor the markup does not have an equal markup to replace, then the DOM
1418
+ * manipulator has to decide which objects to wrap. real example:
1419
+ * <div>
1420
+ * <h1>headline</h1>
1421
+ * some text blabla bla<br>
1422
+ * more text HERE THE | CURSOR BLINKING and <b>even more bold text</b>
1423
+ * </div>
1424
+ * when the user now wants to apply e.g. a <p> tag, what will be wrapped? it could be useful if the manipulator would actually
1425
+ * wrap everything inside the div except the <h1>. but for this purpose someone has to decide, if the markup is
1426
+ * allowed to wrap certain dom elements in this case the question would be, if the <p> is allowed to wrap
1427
+ * textNodes, <br> and <b> and <h1>. therefore this tricky method should answer the question for those 3 elements
1428
+ * with true, but for for the <h1> it should return false. and since the method does not know this, there is a configuration
1429
+ * for this
1430
+ *
1431
+ * @param selectionTree rangeObject selection tree element (only one, not an array of)
1432
+ * @param markupObject lowercase string of the tag to be verified (e.g. "b")
1433
+ * @return true if the markup is allowed to wrap the selection tree element, false otherwise
1434
+ * @hide
1435
+ */
1436
+ isMarkupAllowedToStealSelectionTreeElement: function(selectionTreeElement, markupObject) {
1437
+ if (!selectionTreeElement.domobj) {
1438
+ return false;
1439
+ }
1440
+ var nodeName = selectionTreeElement.domobj.nodeName.toLowerCase(),
1441
+ markupName;
1442
+
1443
+ nodeName = (nodeName == '#text') ? 'textNode' : nodeName;
1444
+ markupName = markupObject[0].nodeName.toLowerCase();
1445
+ // if nothing is defined for the markup, it's now allowed
1446
+ if (!this.allowedToStealElements[ markupName ]) {
1447
+ return false;
1448
+ }
1449
+ // if something is defined, but the specifig tag is not in the list
1450
+ if (this.allowedToStealElements[ markupName ].indexOf(nodeName) == -1) {
1451
+ return false;
1452
+ }
1453
+ return true;
1454
+ },
1455
+
1456
+ /**
1457
+ * checks if a selection can be completey wrapped by a certain html tags (helper method for this.optimizeSelectionTree4Markup
1458
+ * @param selectionTree rangeObject selection tree
1459
+ * @param markupObject lowercase string of the tag to be verified (e.g. "b")
1460
+ * @return true if selection can be applied as whole, false otherwise
1461
+ * @hide
1462
+ */
1463
+ canMarkupBeApplied2ElementAsWhole: function(selectionTree, markupObject) {
1464
+ var htmlTag, i, el, returnVal;
1465
+
1466
+ if (markupObject.jquery) {
1467
+ htmlTag = markupObject[0].tagName;
1468
+ }
1469
+ if (markupObject.tagName) {
1470
+ htmlTag = markupObject.tagName;
1471
+ }
1472
+
1473
+ returnVal = true;
1474
+ for ( i = 0; i < selectionTree.length; i++) {
1475
+ el = selectionTree[i];
1476
+ if (el.domobj && (el.selection != "none" || markupObject.isReplacingElement)) {
1477
+ // Aloha.Log.debug(this, 'Checking, if <' + htmlTag + '> can be applied to ' + el.domobj.nodeName);
1478
+ if (!this.canTag1WrapTag2(htmlTag, el.domobj.nodeName)) {
1479
+ return false;
1480
+ }
1481
+ if (el.children.length > 0 && !this.canMarkupBeApplied2ElementAsWhole(el.children, markupObject)) {
1482
+ return false;
1483
+ }
1484
+ }
1485
+ }
1486
+ return returnVal;
1487
+ },
1488
+
1489
+ /**
1490
+ * checks if a tag 1 (first parameter) can wrap tag 2 (second parameter).
1491
+ * IMPORTANT: the method does not verify, if there have to be other tags in between
1492
+ * Example: this.canTag1WrapTag2("table", "td") will return true, because the method does not take into account, that there has to be a "tr" in between
1493
+ * @param t1 string: tagname of outer tag to verify, e.g. "b"
1494
+ * @param t2 string: tagname of inner tag to verify, e.g. "b"
1495
+ * @return true if tag 1 can wrap tag 2, false otherwise
1496
+ * @hide
1497
+ */
1498
+ canTag1WrapTag2: function(t1, t2) {
1499
+ t1 = (t1 == '#text')?'textNode':t1.toLowerCase();
1500
+ t2 = (t2 == '#text')?'textNode':t2.toLowerCase();
1501
+ if (!this.tagHierarchy[ t1 ]) {
1502
+ // Aloha.Log.warn(this, t1 + ' is an unknown tag to the method canTag1WrapTag2 (paramter 1). Sadfully allowing the wrapping...');
1503
+ return true;
1504
+ }
1505
+ if (!this.tagHierarchy[ t2 ]) {
1506
+ // Aloha.Log.warn(this, t2 + ' is an unknown tag to the method canTag1WrapTag2 (paramter 2). Sadfully allowing the wrapping...');
1507
+ return true;
1508
+ }
1509
+ var t1Array = this.tagHierarchy[ t1 ],
1510
+ returnVal = (t1Array.indexOf( t2 ) != -1) ? true : false;
1511
+ return returnVal;
1512
+ },
1513
+
1514
+ /**
1515
+ * Check whether it is allowed to insert the given tag at the start of the
1516
+ * current selection. This method will check whether the markup effective for
1517
+ * the start and outside of the editable part (starting with the editable tag
1518
+ * itself) may wrap the given tag.
1519
+ * @param tagName {String} name of the tag which shall be inserted
1520
+ * @return true when it is allowed to insert that tag, false if not
1521
+ * @hide
1522
+ */
1523
+ mayInsertTag: function (tagName) {
1524
+ if (typeof this.rangeObject.unmodifiableMarkupAtStart == 'object') {
1525
+ // iterate over all DOM elements outside of the editable part
1526
+ for (var i = 0; i < this.rangeObject.unmodifiableMarkupAtStart.length; ++i) {
1527
+ // check whether an element may not wrap the given
1528
+ if (!this.canTag1WrapTag2(this.rangeObject.unmodifiableMarkupAtStart[i].nodeName, tagName)) {
1529
+ // found a DOM element which forbids to insert the given tag, we are done
1530
+ return false;
1531
+ }
1532
+ }
1533
+
1534
+ // all of the found DOM elements allow inserting the given tag
1535
+ return true;
1536
+ } else {
1537
+ Aloha.Log.warn(this, 'Unable to determine whether tag ' + tagName + ' may be inserted');
1538
+ return true;
1539
+ }
1540
+ },
1541
+
1542
+ /**
1543
+ * String representation
1544
+ * @return "Aloha.Selection"
1545
+ * @hide
1546
+ */
1547
+ toString: function() {
1548
+ return 'Aloha.Selection';
1549
+ },
1550
+
1551
+ /**
1552
+ * @namespace Aloha.Selection
1553
+ * @class SelectionRange
1554
+ * @extends GENTICS.Utils.RangeObject
1555
+ * Constructor for a range object.
1556
+ * Optionally you can pass in a range object that's properties will be assigned to the new range object.
1557
+ * @param rangeObject A range object thats properties will be assigned to the new range object.
1558
+ * @constructor
1559
+ */
1560
+ SelectionRange: GENTICS.Utils.RangeObject.extend({
1561
+ _constructor: function(rangeObject){
1562
+ this._super(rangeObject);
1563
+ // If a range object was passed in we apply the values to the new range object
1564
+ if (rangeObject) {
1565
+ if (rangeObject.commonAncestorContainer) {
1566
+ this.commonAncestorContainer = rangeObject.commonAncestorContainer;
1567
+ }
1568
+ if (rangeObject.selectionTree) {
1569
+ this.selectionTree = rangeObject.selectionTree;
1570
+ }
1571
+ if (rangeObject.limitObject) {
1572
+ this.limitObject = rangeObject.limitObject;
1573
+ }
1574
+ if (rangeObject.markupEffectiveAtStart) {
1575
+ this.markupEffectiveAtStart = rangeObject.markupEffectiveAtStart;
1576
+ }
1577
+ if (rangeObject.unmodifiableMarkupAtStart) {
1578
+ this.unmodifiableMarkupAtStart = rangeObject.unmodifiableMarkupAtStart;
1579
+ }
1580
+ if (rangeObject.splitObject) {
1581
+ this.splitObject = rangeObject.splitObject;
1582
+ }
1583
+ }
1584
+ },
1585
+
1586
+ /**
1587
+ * DOM object of the common ancestor from startContainer and endContainer
1588
+ * @hide
1589
+ */
1590
+ commonAncestorContainer: undefined,
1591
+
1592
+ /**
1593
+ * The selection tree
1594
+ * @hide
1595
+ */
1596
+ selectionTree: undefined,
1597
+
1598
+ /**
1599
+ * Array of DOM objects effective for the start container and inside the
1600
+ * editable part (inside the limit object). relevant for the button status
1601
+ * @hide
1602
+ */
1603
+ markupEffectiveAtStart: [],
1604
+
1605
+ /**
1606
+ * Array of DOM objects effective for the start container, which lies
1607
+ * outside of the editable portion (starting with the limit object)
1608
+ * @hide
1609
+ */
1610
+ unmodifiableMarkupAtStart: [],
1611
+
1612
+ /**
1613
+ * DOM object being the limit for all markup relevant activities
1614
+ * @hide
1615
+ */
1616
+ limitObject: undefined,
1617
+
1618
+ /**
1619
+ * DOM object being split when enter key gets hit
1620
+ * @hide
1621
+ */
1622
+ splitObject: undefined,
1623
+
1624
+ /**
1625
+ * Sets the visible selection in the Browser based on the range object.
1626
+ * If the selection is collapsed, this will result in a blinking cursor,
1627
+ * otherwise in a text selection.
1628
+ * @method
1629
+ */
1630
+ select: function() {
1631
+ // Call Utils' select()
1632
+ this._super();
1633
+
1634
+ // update the selection
1635
+ Aloha.Selection.updateSelection();
1636
+ },
1637
+
1638
+ /**
1639
+ * Method to update a range object internally
1640
+ * @param commonAncestorContainer (DOM Object); optional Parameter; if set, the parameter
1641
+ * will be used instead of the automatically calculated CAC
1642
+ * @return void
1643
+ * @hide
1644
+ */
1645
+ update: function(commonAncestorContainer) {
1646
+ this.updatelimitObject();
1647
+ this.updateMarkupEffectiveAtStart();
1648
+ this.updateCommonAncestorContainer(commonAncestorContainer);
1649
+
1650
+ // reset the selectiontree (must be recalculated)
1651
+ this.selectionTree = undefined;
1652
+ },
1653
+
1654
+ /**
1655
+ * Get the selection tree for this range
1656
+ * TODO: remove this (was moved to range.js)
1657
+ * @return selection tree
1658
+ * @hide
1659
+ */
1660
+ getSelectionTree: function () {
1661
+ // if not yet calculated, do this now
1662
+ if (!this.selectionTree) {
1663
+ this.selectionTree = Aloha.Selection.getSelectionTree(this);
1664
+ }
1665
+
1666
+ return this.selectionTree;
1667
+ },
1668
+
1669
+ /**
1670
+ * TODO: move this to range.js
1671
+ * Get an array of domobj (in dom tree order) of siblings of the given domobj, which are contained in the selection
1672
+ * @param domobj dom object to start with
1673
+ * @return array of siblings of the given domobj, which are also selected
1674
+ * @hide
1675
+ */
1676
+ getSelectedSiblings: function (domobj) {
1677
+ var selectionTree = this.getSelectionTree();
1678
+
1679
+ return this.recursionGetSelectedSiblings(domobj, selectionTree);
1680
+ },
1681
+
1682
+ /**
1683
+ * TODO: move this to range.js
1684
+ * Recursive method to find the selected siblings of the given domobj (which should be selected as well)
1685
+ * @param domobj dom object for which the selected siblings shall be found
1686
+ * @param selectionTree current level of the selection tree
1687
+ * @return array of selected siblings of dom objects or false if none found
1688
+ * @hide
1689
+ */
1690
+ recursionGetSelectedSiblings: function (domobj, selectionTree) {
1691
+ var selectedSiblings = false,
1692
+ foundObj = false,
1693
+ i;
1694
+
1695
+ for ( i = 0; i < selectionTree.length; ++i) {
1696
+ if (selectionTree[i].domobj === domobj) {
1697
+ foundObj = true;
1698
+ selectedSiblings = [];
1699
+ } else if (!foundObj && selectionTree[i].children) {
1700
+ // do the recursion
1701
+ selectedSiblings = this.recursionGetSelectedSiblings(domobj, selectionTree[i].children);
1702
+ if (selectedSiblings !== false) {
1703
+ break;
1704
+ }
1705
+ } else if (foundObj && selectionTree[i].domobj && selectionTree[i].selection != 'collapsed' && selectionTree[i].selection != 'none') {
1706
+ selectedSiblings.push(selectionTree[i].domobj);
1707
+ } else if (foundObj && selectionTree[i].selection == 'none') {
1708
+ break;
1709
+ }
1710
+ }
1711
+
1712
+ return selectedSiblings;
1713
+ },
1714
+
1715
+ /**
1716
+ * TODO: move this to range.js
1717
+ * Method updates member var markupEffectiveAtStart and splitObject, which is relevant primarily for button status and enter key behaviour
1718
+ * @return void
1719
+ * @hide
1720
+ */
1721
+ updateMarkupEffectiveAtStart: function() {
1722
+ // reset the current markup
1723
+ this.markupEffectiveAtStart = [];
1724
+ this.unmodifiableMarkupAtStart = [];
1725
+
1726
+ var
1727
+ parents = this.getStartContainerParents(),
1728
+ limitFound = false,
1729
+ splitObjectWasSet,
1730
+ i, el;
1731
+
1732
+ for ( i = 0; i < parents.length; i++) {
1733
+ el = parents[i];
1734
+ if (!limitFound && (el !== this.limitObject)) {
1735
+ this.markupEffectiveAtStart[ i ] = el;
1736
+ if (!splitObjectWasSet && GENTICS.Utils.Dom.isSplitObject(el)) {
1737
+ splitObjectWasSet = true;
1738
+ this.splitObject = el;
1739
+ }
1740
+ } else {
1741
+ limitFound = true;
1742
+ this.unmodifiableMarkupAtStart.push(el);
1743
+ }
1744
+ }
1745
+ if (!splitObjectWasSet) {
1746
+ this.splitObject = false;
1747
+ }
1748
+ return;
1749
+ },
1750
+
1751
+ /**
1752
+ * TODO: remove this
1753
+ * Method updates member var markupEffectiveAtStart, which is relevant primarily for button status
1754
+ * @return void
1755
+ * @hide
1756
+ */
1757
+ updatelimitObject: function() {
1758
+ if (Aloha.editables && Aloha.editables.length > 0) {
1759
+ var parents = this.getStartContainerParents(),
1760
+ editables = Aloha.editables,
1761
+ i, el, j, editable;
1762
+ for ( i = 0; i < parents.length; i++) {
1763
+ el = parents[i];
1764
+ for ( j = 0; j < editables.length; j++) {
1765
+ editable = editables[j].obj[0];
1766
+ if (el === editable) {
1767
+ this.limitObject = el;
1768
+ return true;
1769
+ }
1770
+ }
1771
+ }
1772
+ }
1773
+ this.limitObject = jQuery('body');
1774
+ return true;
1775
+ },
1776
+
1777
+ /**
1778
+ * string representation of the range object
1779
+ * @param verbose set to true for verbose output
1780
+ * @return string representation of the range object
1781
+ * @hide
1782
+ */
1783
+ toString: function(verbose) {
1784
+ if (!verbose) {
1785
+ return 'Aloha.Selection.SelectionRange';
1786
+ }
1787
+ return 'Aloha.Selection.SelectionRange {start [' + this.startContainer.nodeValue + '] offset '
1788
+ + this.startOffset + ', end [' + this.endContainer.nodeValue + '] offset ' + this.endOffset + '}';
1789
+ }
1790
+
1791
+ }) // SelectionRange
1792
+
1793
+ }); // Selection
1794
+
1795
+
1796
+ /**
1797
+ * This method implements an ugly workaround for a selection problem in ie:
1798
+ * when the cursor shall be placed at the end of a text node in a li element, that is followed by a nested list,
1799
+ * the selection would always snap into the first li of the nested list
1800
+ * therefore, we make sure that the text node ends with a space and place the cursor right before it
1801
+ */
1802
+ function nestedListInIEWorkaround ( range ) {
1803
+ if (jQuery.browser.msie
1804
+ && range.startContainer === range.endContainer
1805
+ && range.startOffset === range.endOffset
1806
+ && range.startContainer.nodeType == 3
1807
+ && range.startOffset == range.startContainer.data.length
1808
+ && range.startContainer.nextSibling
1809
+ && ["OL", "UL"].indexOf(range.startContainer.nextSibling.nodeName) !== -1) {
1810
+ if (range.startContainer.data[range.startContainer.data.length-1] == ' ') {
1811
+ range.startOffset = range.endOffset = range.startOffset-1;
1812
+ } else {
1813
+ range.startContainer.data = range.startContainer.data + ' ';
1814
+ }
1815
+ }
1816
+ }
1817
+
1818
+ function correctRange ( range ) {
1819
+ nestedListInIEWorkaround(range);
1820
+ return range;
1821
+ }
1822
+
1823
+ /**
1824
+ * Implements Selection http://html5.org/specs/dom-range.html#selection
1825
+ * @namespace Aloha
1826
+ * @class Selection This singleton class always represents the
1827
+ * current user selection
1828
+ * @singleton
1829
+ */
1830
+ var AlohaSelection = Class.extend({
1831
+
1832
+ _constructor : function( nativeSelection ) {
1833
+
1834
+ this._nativeSelection = nativeSelection;
1835
+ this.ranges = [];
1836
+
1837
+ // will remember if urged to not change the selection
1838
+ this.preventChange = false;
1839
+
1840
+ },
1841
+
1842
+ /**
1843
+ * Returns the element that contains the start of the selection. Returns null if there's no selection.
1844
+ * @readonly
1845
+ * @type Node
1846
+ */
1847
+ anchorNode: null,
1848
+
1849
+ /**
1850
+ * Returns the offset of the start of the selection relative to the element that contains the start
1851
+ * of the selection. Returns 0 if there's no selection.
1852
+ * @readonly
1853
+ * @type int
1854
+ */
1855
+ anchorOffset: 0,
1856
+
1857
+ /**
1858
+ * Returns the element that contains the end of the selection.
1859
+ * Returns null if there's no selection.
1860
+ * @readonly
1861
+ * @type Node
1862
+ */
1863
+ focusNode: null,
1864
+
1865
+ /**
1866
+ * Returns the offset of the end of the selection relative to the element that contains the end
1867
+ * of the selection. Returns 0 if there's no selection.
1868
+ * @readonly
1869
+ * @type int
1870
+ */
1871
+ focusOffset: 0,
1872
+
1873
+ /**
1874
+ * Returns true if there's no selection or if the selection is empty. Otherwise, returns false.
1875
+ * @readonly
1876
+ * @type boolean
1877
+ */
1878
+ isCollapsed: false,
1879
+
1880
+ /**
1881
+ * Returns the number of ranges in the selection.
1882
+ * @readonly
1883
+ * @type int
1884
+ */
1885
+ rangeCount: 0,
1886
+
1887
+ /**
1888
+ * Replaces the selection with an empty one at the given position.
1889
+ * @throws a WRONG_DOCUMENT_ERR exception if the given node is in a different document.
1890
+ * @param parentNode Node of new selection
1891
+ * @param offest offest of new Selection in parentNode
1892
+ * @void
1893
+ */
1894
+ collapse: function ( parentNode, offset ) {
1895
+ this._nativeSelection.collapse( parentNode, offset );
1896
+ },
1897
+
1898
+ /**
1899
+ * Replaces the selection with an empty one at the position of the start of the current selection.
1900
+ * @throws an INVALID_STATE_ERR exception if there is no selection.
1901
+ * @void
1902
+ */
1903
+ collapseToStart: function() {
1904
+ throw "NOT_IMPLEMENTED";
1905
+ },
1906
+
1907
+ /**
1908
+ * @void
1909
+ */
1910
+ extend: function ( parentNode, offset) {
1911
+
1912
+ },
1913
+
1914
+ /**
1915
+ * @param alter DOMString
1916
+ * @param direction DOMString
1917
+ * @param granularity DOMString
1918
+ * @void
1919
+ */
1920
+ modify: function ( alter, direction, granularity ) {
1921
+
1922
+ },
1923
+
1924
+ /**
1925
+ * Replaces the selection with an empty one at the position of the end of the current selection.
1926
+ * @throws an INVALID_STATE_ERR exception if there is no selection.
1927
+ * @void
1928
+ */
1929
+ collapseToEnd: function() {
1930
+ throw "NOT_IMPLEMENTED";
1931
+ },
1932
+
1933
+ /**
1934
+ * Replaces the selection with one that contains all the contents of the given element.
1935
+ * @throws a WRONG_DOCUMENT_ERR exception if the given node is in a different document.
1936
+ * @param parentNode Node the Node fully select
1937
+ * @void
1938
+ */
1939
+ selectAllChildren: function( parentNode ) {
1940
+ throw "NOT_IMPLEMENTED";
1941
+ },
1942
+
1943
+ /**
1944
+ * Deletes the contents of the selection
1945
+ */
1946
+ deleteFromDocument: function() {
1947
+ throw "NOT_IMPLEMENTED";
1948
+ },
1949
+
1950
+ /**
1951
+ * NB!
1952
+ * We have serious problem in IE.
1953
+ * The range that we get in IE is not the same as the range we had set,
1954
+ * so even if we normalize it during getRangeAt, in IE, we will be
1955
+ * correcting the range to the "correct" place, but still not the place
1956
+ * where it was originally set.
1957
+ *
1958
+ * Returns the given range.
1959
+ * The getRangeAt(index) method returns the indexth range in the list.
1960
+ * NOTE: Aloha Editor only support 1 range! index can only be 0
1961
+ * @throws INDEX_SIZE_ERR DOM exception if index is less than zero or
1962
+ * greater or equal to the value returned by the rangeCount.
1963
+ * @param index int
1964
+ * @return Range return the selected range from index
1965
+ */
1966
+ getRangeAt: function ( index ) {
1967
+ return correctRange( this._nativeSelection.getRangeAt( index ) );
1968
+ //if ( index < 0 || this.rangeCount ) {
1969
+ // throw "INDEX_SIZE_ERR DOM";
1970
+ //}
1971
+ //return this._ranges[index];
1972
+ },
1973
+
1974
+ /**
1975
+ * Adds the given range to the selection.
1976
+ * The addRange(range) method adds the given range Range object to the list of
1977
+ * selections, at the end (so the newly added range is the new last range).
1978
+ * NOTE: Aloha Editor only support 1 range! The added range will replace the
1979
+ * range at index 0
1980
+ * see http://html5.org/specs/dom-range.html#selection note about addRange
1981
+ * @throws an INVALID_NODE_TYPE_ERR exception if the given Range has a boundary point
1982
+ * node that's not a Text or Element node, and an INVALID_MODIFICATION_ERR exception
1983
+ * if it has a boundary point node that doesn't descend from a Document.
1984
+ * @param range Range adds the range to the selection
1985
+ * @void
1986
+ */
1987
+ addRange: function( range ) {
1988
+ // set readonly attributes
1989
+ this._nativeSelection.addRange( range );
1990
+ // We will correct the range after rangy has processed the native
1991
+ // selection range, so that our correction will be the final fix on
1992
+ // the range according to the guarentee's that Aloha wants to make
1993
+ this._nativeSelection._ranges[ 0 ] = correctRange( range );
1994
+
1995
+ // make sure, the old Aloha selection will be updated (until all implementations use the new AlohaSelection)
1996
+ Aloha.Selection.updateSelection();
1997
+ },
1998
+
1999
+ /**
2000
+ * Removes the given range from the selection, if the range was one of the ones in the selection.
2001
+ * NOTE: Aloha Editor only support 1 range! The added range will replace the
2002
+ * range at with index 0
2003
+ * @param range Range removes the range from the selection
2004
+ * @void
2005
+ */
2006
+ removeRange: function( range ) {
2007
+ this._nativeSelection.removeRange();
2008
+ },
2009
+
2010
+ /**
2011
+ * Removes all the ranges in the selection.
2012
+ * @viod
2013
+ */
2014
+ removeAllRanges: function() {
2015
+ this._nativeSelection.removeAllRanges();
2016
+ },
2017
+
2018
+ /**
2019
+ * prevents the next aloha-selection-changed event from
2020
+ * being triggered
2021
+ * @param flag boolean defines weather to update the selection on change or not
2022
+ */
2023
+ preventedChange: function( flag ) {
2024
+ // this.preventChange = typeof flag === 'undefined' ? false : flag;
2025
+ },
2026
+
2027
+ /**
2028
+ * will return wheter selection change event was prevented or not, and reset the
2029
+ * preventSelectionChangedFlag
2030
+ * @return boolean true if aloha-selection-change event
2031
+ * was prevented
2032
+ */
2033
+ isChangedPrevented: function() {
2034
+ // return this.preventSelectionChangedFlag;
2035
+ },
2036
+
2037
+ /**
2038
+ * INFO: Method is used for integration with Gentics
2039
+ * Aloha, has no use otherwise Updates the rangeObject
2040
+ * according to the current user selection Method is
2041
+ * always called on selection change
2042
+ *
2043
+ * @param event
2044
+ * jQuery browser event object
2045
+ * @return true when rangeObject was modified, false
2046
+ * otherwise
2047
+ * @hide
2048
+ */
2049
+ refresh: function(event) {
2050
+
2051
+ },
2052
+
2053
+ /**
2054
+ * String representation
2055
+ *
2056
+ * @return "Aloha.Selection"
2057
+ * @hide
2058
+ */
2059
+ toString: function() {
2060
+ return 'Aloha.Selection';
2061
+ },
2062
+
2063
+ getRangeCount: function() {
2064
+ return this._nativeSelection.rangeCount;
2065
+ }
2066
+
2067
+ });
2068
+
2069
+ /**
2070
+ * A wrapper for the function of the same name in the rangy core-depdency.
2071
+ * This function should be preferred as it hides the global rangy object.
2072
+ * For more information look at the following sites:
2073
+ * http://html5.org/specs/dom-range.html
2074
+ * @param window optional - specifices the window to get the selection of
2075
+ */
2076
+ Aloha.getSelection = function( target ) {
2077
+ var target = ( target !== document || target !== window ) ? window : target;
2078
+ // Aloha.Selection.refresh()
2079
+ // implement Aloha Selection
2080
+ // TODO cache
2081
+ return new AlohaSelection( window.rangy.getSelection( target ) );
2082
+ };
2083
+
2084
+ /**
2085
+ * A wrapper for the function of the same name in the rangy core-depdency.
2086
+ * This function should be preferred as it hides the global rangy object.
2087
+ * Please note: when the range object is not needed anymore,
2088
+ * invoke the detach method on it. It is currently unknown to me why
2089
+ * this is required, but that's what it says in the rangy specification.
2090
+ * For more information look at the following sites:
2091
+ * http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html
2092
+ * @param document optional - specifies which document to create the range for
2093
+ */
2094
+ Aloha.createRange = function(givenWindow) {
2095
+ return window.rangy.createRange(givenWindow);
2096
+ };
2097
+
2098
+ var selection = new Selection();
2099
+ Aloha.Selection = selection;
2100
+
2101
+ return selection;
2102
+ });