adva 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1756) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +21 -0
  3. data/CHANGELOG +263 -0
  4. data/Gemfile +4 -0
  5. data/LICENSE +22 -0
  6. data/README +245 -0
  7. data/Rakefile +2 -0
  8. data/adva.gemspec +17 -0
  9. data/adva_activity/Gemfile +4 -0
  10. data/adva_activity/LICENSE +22 -0
  11. data/adva_activity/README.md +29 -0
  12. data/adva_activity/Rakefile +2 -0
  13. data/adva_activity/adva_activity.gemspec +19 -0
  14. data/adva_activity/app/assets/stylesheets/adva_activity/admin/activities.css +81 -0
  15. data/adva_activity/app/helpers/activities_helper.rb +73 -0
  16. data/adva_activity/app/models/activity.rb +87 -0
  17. data/adva_activity/app/models/activity_notifier.rb +11 -0
  18. data/adva_activity/app/observers/activities/activity_observer.rb +25 -0
  19. data/adva_activity/app/observers/activities/article_observer.rb +20 -0
  20. data/adva_activity/app/observers/activities/comment_observer.rb +29 -0
  21. data/adva_activity/app/observers/activities/logger.rb +94 -0
  22. data/adva_activity/app/observers/activities/section_observer.rb +9 -0
  23. data/adva_activity/app/views/activity_notifier/new_content_notification.html.erb +5 -0
  24. data/adva_activity/app/views/admin/activities/_activities.html.erb +10 -0
  25. data/adva_activity/app/views/admin/activities/_comment.html.erb +35 -0
  26. data/adva_activity/app/views/admin/activities/_content.html.erb +15 -0
  27. data/adva_activity/app/views/admin/activities/_topic.html.erb +16 -0
  28. data/adva_activity/config/locales/en.yml +22 -0
  29. data/adva_activity/db/migrate/20080401000000_create_activities_table.rb +23 -0
  30. data/adva_activity/lib/adva_activity.rb +33 -0
  31. data/adva_activity/lib/adva_activity/version.rb +3 -0
  32. data/adva_activity/test/test_helper.rb +3 -0
  33. data/adva_activity/test/unit/activities_notifier_test.rb +75 -0
  34. data/adva_activity/test/unit/activity_observer_test.rb +65 -0
  35. data/adva_activity/test/unit/activity_test.rb +84 -0
  36. data/adva_blog/.gitignore +17 -0
  37. data/adva_blog/Gemfile +4 -0
  38. data/adva_blog/LICENSE +22 -0
  39. data/adva_blog/README.md +29 -0
  40. data/adva_blog/Rakefile +2 -0
  41. data/adva_blog/adva_blog.gemspec +17 -0
  42. data/adva_blog/app/controllers/admin/blog/articles_controller.rb +5 -0
  43. data/adva_blog/app/controllers/admin/blog/categories_controller.rb +1 -0
  44. data/adva_blog/app/controllers/admin/blog/contents_controller.rb +5 -0
  45. data/adva_blog/app/controllers/admin/blogs_controller.rb +1 -0
  46. data/adva_blog/app/controllers/blog_articles_controller.rb +23 -0
  47. data/adva_blog/app/helpers/blog_helper.rb +49 -0
  48. data/adva_blog/app/models/blog.rb +34 -0
  49. data/adva_blog/app/views/admin/blog/articles/index.html.erb +40 -0
  50. data/adva_blog/app/views/admin/sections/settings/_blog.html.erb +11 -0
  51. data/adva_blog/app/views/blogs/articles/_article.html.erb +28 -0
  52. data/adva_blog/app/views/blogs/articles/_footer.html.erb +40 -0
  53. data/adva_blog/app/views/blogs/articles/index.atom.builder +21 -0
  54. data/adva_blog/app/views/blogs/articles/index.html.erb +4 -0
  55. data/adva_blog/app/views/blogs/articles/show.html.erb +14 -0
  56. data/adva_blog/config/initializers/base_controller.rb +3 -0
  57. data/adva_blog/config/routes.rb +49 -0
  58. data/adva_blog/lib/adva_blog.rb +10 -0
  59. data/adva_blog/lib/adva_blog/version.rb +3 -0
  60. data/adva_blog/test/contexts.rb +9 -0
  61. data/adva_blog/test/fixtures.rb +50 -0
  62. data/adva_blog/test/functional/blog_articles_controller_test.rb +139 -0
  63. data/adva_blog/test/functional/blog_articles_routes_test.rb +159 -0
  64. data/adva_blog/test/integration/admin/blog_article_test.rb +54 -0
  65. data/adva_blog/test/integration/admin/blog_ping_test.rb +68 -0
  66. data/adva_blog/test/integration/admin/blog_test.rb +43 -0
  67. data/adva_blog/test/integration/blog_article_test.rb +40 -0
  68. data/adva_blog/test/integration/blog_categories_test.rb +55 -0
  69. data/adva_blog/test/integration/blog_comment_test.rb +51 -0
  70. data/adva_blog/test/integration/blog_index_test.rb +104 -0
  71. data/adva_blog/test/test_helper.rb +2 -0
  72. data/adva_blog/test/unit/cells/blog_cell_test.rb +29 -0
  73. data/adva_blog/test/unit/helpers/blog_helper_test.rb +50 -0
  74. data/adva_blog/test/unit/helpers/content_helper_test.rb +19 -0
  75. data/adva_blog/test/unit/models/blog_test.rb +37 -0
  76. data/adva_blog/test/unit/models/counter_test.rb +44 -0
  77. data/adva_cells/.gitignore +17 -0
  78. data/adva_cells/Gemfile +4 -0
  79. data/adva_cells/LICENSE +22 -0
  80. data/adva_cells/README.md +29 -0
  81. data/adva_cells/Rakefile +2 -0
  82. data/adva_cells/adva_cells.gemspec +20 -0
  83. data/adva_cells/app/cells/base_cell.rb +83 -0
  84. data/adva_cells/app/controllers/admin/cells_controller.rb +10 -0
  85. data/adva_cells/app/helpers/contact_mailer_helper.rb +7 -0
  86. data/adva_cells/config/routes.rb +6 -0
  87. data/adva_cells/lib/adva_cells.rb +13 -0
  88. data/adva_cells/lib/adva_cells/version.rb +3 -0
  89. data/adva_cells/lib/cells_ext.rb +18 -0
  90. data/adva_cells/lib/contact_mail_form_builder.rb +178 -0
  91. data/adva_cells/lib/output_filter/cells.rb +48 -0
  92. data/adva_cells/test/integration/article_with_contact_mailer_test.rb +81 -0
  93. data/adva_cells/test/test_helper.rb +11 -0
  94. data/adva_cells/test/unit/album_cell_test.rb +48 -0
  95. data/adva_cells/test/unit/base_cell_test.rb +83 -0
  96. data/adva_cells/test/unit/blog_cell_test.rb +27 -0
  97. data/adva_cells/test/unit/contact_mailer_cell_test.rb +43 -0
  98. data/adva_cells/test/unit/content_cell_test.rb +33 -0
  99. data/adva_cells/test/unit/helpers/contact_mail_helper_test.rb +84 -0
  100. data/adva_cells/test/unit/lib/contact_mail_form_builder_test.rb +288 -0
  101. data/adva_cells/test/unit/lib/output_filter/cells_test.rb +46 -0
  102. data/adva_cells/test/unit/section_cell_test.rb +30 -0
  103. data/adva_cells/test/unit/user_cell_test.rb +27 -0
  104. data/adva_cms/.gitignore +17 -0
  105. data/adva_cms/Gemfile +4 -0
  106. data/adva_cms/LICENSE +22 -0
  107. data/adva_cms/NOTES +132 -0
  108. data/adva_cms/README.md +29 -0
  109. data/adva_cms/Rakefile +2 -0
  110. data/adva_cms/adva_cms.gemspec +22 -0
  111. data/adva_cms/app/assets/images/adva_cms/admin/header_bg.png +0 -0
  112. data/adva_cms/app/assets/images/adva_cms/admin/section_menu_bg.png +0 -0
  113. data/adva_cms/app/assets/images/adva_cms/admin/tab_action_active.png +0 -0
  114. data/adva_cms/app/assets/images/adva_cms/admin/tab_main_active.png +0 -0
  115. data/adva_cms/app/assets/images/adva_cms/admin/tab_sidebar_active.png +0 -0
  116. data/adva_cms/app/assets/images/adva_cms/admin/tab_top_active.png +0 -0
  117. data/adva_cms/app/assets/images/adva_cms/asset_selected.png +0 -0
  118. data/adva_cms/app/assets/images/adva_cms/avatar.gif +0 -0
  119. data/adva_cms/app/assets/images/adva_cms/filter-bg.png +0 -0
  120. data/adva_cms/app/assets/images/adva_cms/icons/accept.png +0 -0
  121. data/adva_cms/app/assets/images/adva_cms/icons/add.png +0 -0
  122. data/adva_cms/app/assets/images/adva_cms/icons/arrow_cross.png +0 -0
  123. data/adva_cms/app/assets/images/adva_cms/icons/arrow_cross_2.png +0 -0
  124. data/adva_cms/app/assets/images/adva_cms/icons/arrow_cross_3.png +0 -0
  125. data/adva_cms/app/assets/images/adva_cms/icons/arrow_up_down.png +0 -0
  126. data/adva_cms/app/assets/images/adva_cms/icons/assets/audio.png +0 -0
  127. data/adva_cms/app/assets/images/adva_cms/icons/assets/doc.png +0 -0
  128. data/adva_cms/app/assets/images/adva_cms/icons/assets/pdf.png +0 -0
  129. data/adva_cms/app/assets/images/adva_cms/icons/assets/video.png +0 -0
  130. data/adva_cms/app/assets/images/adva_cms/icons/attach.png +0 -0
  131. data/adva_cms/app/assets/images/adva_cms/icons/bin.png +0 -0
  132. data/adva_cms/app/assets/images/adva_cms/icons/bin_closed.png +0 -0
  133. data/adva_cms/app/assets/images/adva_cms/icons/bin_empty.png +0 -0
  134. data/adva_cms/app/assets/images/adva_cms/icons/bullet_black.png +0 -0
  135. data/adva_cms/app/assets/images/adva_cms/icons/bullet_delete.png +0 -0
  136. data/adva_cms/app/assets/images/adva_cms/icons/bullet_error.png +0 -0
  137. data/adva_cms/app/assets/images/adva_cms/icons/bullet_go.png +0 -0
  138. data/adva_cms/app/assets/images/adva_cms/icons/bullet_red.png +0 -0
  139. data/adva_cms/app/assets/images/adva_cms/icons/bullet_white.png +0 -0
  140. data/adva_cms/app/assets/images/adva_cms/icons/bullet_yellow.png +0 -0
  141. data/adva_cms/app/assets/images/adva_cms/icons/cancel.png +0 -0
  142. data/adva_cms/app/assets/images/adva_cms/icons/comment.gif +0 -0
  143. data/adva_cms/app/assets/images/adva_cms/icons/comment.png +0 -0
  144. data/adva_cms/app/assets/images/adva_cms/icons/comment_add.png +0 -0
  145. data/adva_cms/app/assets/images/adva_cms/icons/comment_blue.gif +0 -0
  146. data/adva_cms/app/assets/images/adva_cms/icons/comment_delete.png +0 -0
  147. data/adva_cms/app/assets/images/adva_cms/icons/comment_edit.png +0 -0
  148. data/adva_cms/app/assets/images/adva_cms/icons/comment_yellow.gif +0 -0
  149. data/adva_cms/app/assets/images/adva_cms/icons/cross.png +0 -0
  150. data/adva_cms/app/assets/images/adva_cms/icons/delete.png +0 -0
  151. data/adva_cms/app/assets/images/adva_cms/icons/eye.png +0 -0
  152. data/adva_cms/app/assets/images/adva_cms/icons/favorites.png +0 -0
  153. data/adva_cms/app/assets/images/adva_cms/icons/help.png +0 -0
  154. data/adva_cms/app/assets/images/adva_cms/icons/hourglass.png +0 -0
  155. data/adva_cms/app/assets/images/adva_cms/icons/icon_attachment.gif +0 -0
  156. data/adva_cms/app/assets/images/adva_cms/icons/icon_padlock.gif +0 -0
  157. data/adva_cms/app/assets/images/adva_cms/icons/link.png +0 -0
  158. data/adva_cms/app/assets/images/adva_cms/icons/lock.png +0 -0
  159. data/adva_cms/app/assets/images/adva_cms/icons/magnifier.png +0 -0
  160. data/adva_cms/app/assets/images/adva_cms/icons/minus.gif +0 -0
  161. data/adva_cms/app/assets/images/adva_cms/icons/page_add.png +0 -0
  162. data/adva_cms/app/assets/images/adva_cms/icons/page_delete.png +0 -0
  163. data/adva_cms/app/assets/images/adva_cms/icons/page_edit.png +0 -0
  164. data/adva_cms/app/assets/images/adva_cms/icons/page_favorites.png +0 -0
  165. data/adva_cms/app/assets/images/adva_cms/icons/page_go.png +0 -0
  166. data/adva_cms/app/assets/images/adva_cms/icons/page_green.png +0 -0
  167. data/adva_cms/app/assets/images/adva_cms/icons/page_red.png +0 -0
  168. data/adva_cms/app/assets/images/adva_cms/icons/page_white_add.png +0 -0
  169. data/adva_cms/app/assets/images/adva_cms/icons/page_white_delete.png +0 -0
  170. data/adva_cms/app/assets/images/adva_cms/icons/page_white_edit.png +0 -0
  171. data/adva_cms/app/assets/images/adva_cms/icons/page_white_go.png +0 -0
  172. data/adva_cms/app/assets/images/adva_cms/icons/page_white_link.png +0 -0
  173. data/adva_cms/app/assets/images/adva_cms/icons/page_white_magnify.png +0 -0
  174. data/adva_cms/app/assets/images/adva_cms/icons/pencil.png +0 -0
  175. data/adva_cms/app/assets/images/adva_cms/icons/star.png +0 -0
  176. data/adva_cms/app/assets/images/adva_cms/icons/stop.png +0 -0
  177. data/adva_cms/app/assets/images/adva_cms/icons/tag_green.png +0 -0
  178. data/adva_cms/app/assets/images/adva_cms/icons/tick.png +0 -0
  179. data/adva_cms/app/assets/images/adva_cms/icons/zoom.png +0 -0
  180. data/adva_cms/app/assets/images/adva_cms/indicator.gif +0 -0
  181. data/adva_cms/app/assets/images/adva_cms/preview.png +0 -0
  182. data/adva_cms/app/assets/images/adva_cms/rails.png +0 -0
  183. data/adva_cms/app/assets/images/adva_cms/sortable_tree/drag.png +0 -0
  184. data/adva_cms/app/assets/images/adva_cms/theme_selected.png +0 -0
  185. data/adva_cms/app/assets/javascripts/admin.js +1 -0
  186. data/adva_cms/app/assets/javascripts/adva_cms/admin/jquery.admin.js +23 -0
  187. data/adva_cms/app/assets/javascripts/adva_cms/admin/jquery.article.js +22 -0
  188. data/adva_cms/app/assets/javascripts/adva_cms/admin/jquery.cached_pages.js +14 -0
  189. data/adva_cms/app/assets/javascripts/adva_cms/admin/jquery.table_tree.js +7 -0
  190. data/adva_cms/app/assets/javascripts/adva_cms/application.js +14 -0
  191. data/adva_cms/app/assets/javascripts/adva_cms/base.js +4 -0
  192. data/adva_cms/app/assets/javascripts/adva_cms/cookie.js +49 -0
  193. data/adva_cms/app/assets/javascripts/adva_cms/jquery.common.js +41 -0
  194. data/adva_cms/app/assets/javascripts/adva_cms/jquery.dates.js +51 -0
  195. data/adva_cms/app/assets/javascripts/adva_cms/jquery.flash.js +57 -0
  196. data/adva_cms/app/assets/javascripts/adva_cms/jquery.roles.js +25 -0
  197. data/adva_cms/app/assets/javascripts/adva_cms/jquery/jquery-lowpro.js +224 -0
  198. data/adva_cms/app/assets/javascripts/adva_cms/jquery/jquery.qtip.js +2085 -0
  199. data/adva_cms/app/assets/javascripts/adva_cms/jquery/jquery.table_tree.js +307 -0
  200. data/adva_cms/app/assets/javascripts/adva_cms/jquery/jquery.tablednd_0_5.js +386 -0
  201. data/adva_cms/app/assets/javascripts/adva_cms/json.js +139 -0
  202. data/adva_cms/app/assets/stylesheets/admin.css +1 -0
  203. data/adva_cms/app/assets/stylesheets/adva_cms/admin.css +16 -0
  204. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/common.css +76 -0
  205. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/forms.css +121 -0
  206. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/header.css +125 -0
  207. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/layout.css +103 -0
  208. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/lists.css +153 -0
  209. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/sidebar.css +65 -0
  210. data/adva_cms/app/assets/stylesheets/adva_cms/admin/alternate/top.css +123 -0
  211. data/adva_cms/app/assets/stylesheets/adva_cms/admin/common.css +76 -0
  212. data/adva_cms/app/assets/stylesheets/adva_cms/admin/content.css +11 -0
  213. data/adva_cms/app/assets/stylesheets/adva_cms/admin/forms.css +116 -0
  214. data/adva_cms/app/assets/stylesheets/adva_cms/admin/header.css +114 -0
  215. data/adva_cms/app/assets/stylesheets/adva_cms/admin/helptip.css +35 -0
  216. data/adva_cms/app/assets/stylesheets/adva_cms/admin/layout.css +56 -0
  217. data/adva_cms/app/assets/stylesheets/adva_cms/admin/lists.css +152 -0
  218. data/adva_cms/app/assets/stylesheets/adva_cms/admin/projection.css +118 -0
  219. data/adva_cms/app/assets/stylesheets/adva_cms/admin/reset.css +25 -0
  220. data/adva_cms/app/assets/stylesheets/adva_cms/admin/screen/top.css +8 -0
  221. data/adva_cms/app/assets/stylesheets/adva_cms/admin/sidebar.css +67 -0
  222. data/adva_cms/app/assets/stylesheets/adva_cms/admin/themes.css +49 -0
  223. data/adva_cms/app/assets/stylesheets/adva_cms/admin/top.css +83 -0
  224. data/adva_cms/app/assets/stylesheets/adva_cms/admin/users.css +40 -0
  225. data/adva_cms/app/assets/stylesheets/adva_cms/common.css +49 -0
  226. data/adva_cms/app/assets/stylesheets/adva_cms/default.css +201 -0
  227. data/adva_cms/app/assets/stylesheets/adva_cms/forms.css +60 -0
  228. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/alternate/jquery.tooltip.css +13 -0
  229. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  230. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
  231. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
  232. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  233. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_75_dadada_1x400.png +0 -0
  234. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
  235. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
  236. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
  237. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_222222_256x240.png +0 -0
  238. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_2e83ff_256x240.png +0 -0
  239. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_454545_256x240.png +0 -0
  240. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_888888_256x240.png +0 -0
  241. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/images/ui-icons_cd0a0a_256x240.png +0 -0
  242. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/jquery-ui.css +406 -0
  243. data/adva_cms/app/assets/stylesheets/adva_cms/jquery/jquery.tooltip.css +10 -0
  244. data/adva_cms/app/assets/stylesheets/adva_cms/layout/login.css +8 -0
  245. data/adva_cms/app/assets/stylesheets/adva_cms/layout/simple.css +8 -0
  246. data/adva_cms/app/assets/stylesheets/adva_cms/menu.css +129 -0
  247. data/adva_cms/app/assets/stylesheets/adva_cms/reset.css +25 -0
  248. data/adva_cms/app/controllers/admin/base_controller.rb +101 -0
  249. data/adva_cms/app/controllers/admin/categories_controller.rb +3 -0
  250. data/adva_cms/app/controllers/admin/install_controller.rb +61 -0
  251. data/adva_cms/app/controllers/admin/page/articles_controller.rb +150 -0
  252. data/adva_cms/app/controllers/admin/page/categories_controller.rb +62 -0
  253. data/adva_cms/app/controllers/admin/page/contents_controller.rb +52 -0
  254. data/adva_cms/app/controllers/admin/page/links_controller.rb +69 -0
  255. data/adva_cms/app/controllers/admin/pages_controller.rb +2 -0
  256. data/adva_cms/app/controllers/admin/plugins_controller.rb +40 -0
  257. data/adva_cms/app/controllers/admin/sections_controller.rb +91 -0
  258. data/adva_cms/app/controllers/admin/sites_controller.rb +99 -0
  259. data/adva_cms/app/controllers/articles_controller.rb +81 -0
  260. data/adva_cms/app/controllers/base_controller.rb +82 -0
  261. data/adva_cms/app/helpers/admin/base_helper.rb +106 -0
  262. data/adva_cms/app/helpers/base_helper.rb +56 -0
  263. data/adva_cms/app/helpers/content_helper.rb +90 -0
  264. data/adva_cms/app/helpers/resource_helper.rb +127 -0
  265. data/adva_cms/app/models/article.rb +40 -0
  266. data/adva_cms/app/models/categorization.rb +4 -0
  267. data/adva_cms/app/models/category.rb +60 -0
  268. data/adva_cms/app/models/content.rb +155 -0
  269. data/adva_cms/app/models/event.rb +34 -0
  270. data/adva_cms/app/models/link.rb +4 -0
  271. data/adva_cms/app/models/page.rb +36 -0
  272. data/adva_cms/app/models/section.rb +126 -0
  273. data/adva_cms/app/models/site.rb +104 -0
  274. data/adva_cms/app/views/admin/cached_pages/_filter.html.erb +8 -0
  275. data/adva_cms/app/views/admin/cached_pages/destroy.js.erb +18 -0
  276. data/adva_cms/app/views/admin/cached_pages/index.html.erb +26 -0
  277. data/adva_cms/app/views/admin/install/confirmation.html.erb +10 -0
  278. data/adva_cms/app/views/admin/install/index.html.erb +38 -0
  279. data/adva_cms/app/views/admin/page/articles/_form.html.erb +40 -0
  280. data/adva_cms/app/views/admin/page/articles/_options.html.erb +20 -0
  281. data/adva_cms/app/views/admin/page/articles/edit.html.erb +15 -0
  282. data/adva_cms/app/views/admin/page/articles/new.html.erb +12 -0
  283. data/adva_cms/app/views/admin/page/categories/edit.html.erb +22 -0
  284. data/adva_cms/app/views/admin/page/categories/index.html.erb +23 -0
  285. data/adva_cms/app/views/admin/page/categories/new.html.erb +19 -0
  286. data/adva_cms/app/views/admin/page/contents/index.html.erb +40 -0
  287. data/adva_cms/app/views/admin/page/links/_form.html.erb +26 -0
  288. data/adva_cms/app/views/admin/page/links/_options.html.erb +23 -0
  289. data/adva_cms/app/views/admin/page/links/edit.html.erb +12 -0
  290. data/adva_cms/app/views/admin/page/links/new.html.erb +12 -0
  291. data/adva_cms/app/views/admin/plugins/_form.html.erb +11 -0
  292. data/adva_cms/app/views/admin/plugins/index.html.erb +16 -0
  293. data/adva_cms/app/views/admin/plugins/show.html.erb +43 -0
  294. data/adva_cms/app/views/admin/sections/_form.html.haml +20 -0
  295. data/adva_cms/app/views/admin/sections/edit.html.haml +6 -0
  296. data/adva_cms/app/views/admin/sections/index.html.erb +27 -0
  297. data/adva_cms/app/views/admin/sections/new.html.erb +29 -0
  298. data/adva_cms/app/views/admin/sections/settings/_page.html.haml +10 -0
  299. data/adva_cms/app/views/admin/shared/_header.html.erb +18 -0
  300. data/adva_cms/app/views/admin/shared/_language_select.html.erb +6 -0
  301. data/adva_cms/app/views/admin/shared/_section.html.erb +8 -0
  302. data/adva_cms/app/views/admin/shared/_section_summary.html.erb +23 -0
  303. data/adva_cms/app/views/admin/shared/_section_tree.html.erb +23 -0
  304. data/adva_cms/app/views/admin/sites/_email_notifications.html.erb +9 -0
  305. data/adva_cms/app/views/admin/sites/_form.html.erb +15 -0
  306. data/adva_cms/app/views/admin/sites/_recent_users.html.erb +11 -0
  307. data/adva_cms/app/views/admin/sites/_sections.html.erb +10 -0
  308. data/adva_cms/app/views/admin/sites/_unapproved_comments.html.erb +10 -0
  309. data/adva_cms/app/views/admin/sites/edit.html.erb +4 -0
  310. data/adva_cms/app/views/admin/sites/index.html.erb +21 -0
  311. data/adva_cms/app/views/admin/sites/multi_sites_disabled.html.erb +11 -0
  312. data/adva_cms/app/views/admin/sites/new.html.erb +21 -0
  313. data/adva_cms/app/views/admin/sites/show.html.erb +16 -0
  314. data/adva_cms/app/views/categories/_checkboxes.html.erb +12 -0
  315. data/adva_cms/app/views/layouts/admin.html.haml +50 -0
  316. data/adva_cms/app/views/layouts/default.html.erb +38 -0
  317. data/adva_cms/app/views/layouts/simple.html.erb +22 -0
  318. data/adva_cms/app/views/pages/articles/index.html.erb +10 -0
  319. data/adva_cms/app/views/pages/articles/show.html.erb +17 -0
  320. data/adva_cms/app/views/shared/_flash.html.erb +3 -0
  321. data/adva_cms/app/views/shared/_footer.html.erb +4 -0
  322. data/adva_cms/app/views/shared/_menu.html.erb +10 -0
  323. data/adva_cms/app/views/shared/_sidebar.html.erb +19 -0
  324. data/adva_cms/app/views/shared/messages/insufficient_permissions.html.erb +4 -0
  325. data/adva_cms/config/environment.rb +21 -0
  326. data/adva_cms/config/initializers/has_options.rb +2 -0
  327. data/adva_cms/config/initializers/has_permalink.rb +27 -0
  328. data/adva_cms/config/initializers/mailer.rb +12 -0
  329. data/adva_cms/config/initializers/menus.rb +184 -0
  330. data/adva_cms/config/initializers/roles.rb +91 -0
  331. data/adva_cms/config/initializers/settings.rb +26 -0
  332. data/adva_cms/config/initializers/site.rb +5 -0
  333. data/adva_cms/config/initializers/translations_are_a_pain.rb +9 -0
  334. data/adva_cms/config/locales/en.yml +1295 -0
  335. data/adva_cms/config/routes.rb +47 -0
  336. data/adva_cms/db/migrate/20080401000001_create_sites_table.rb +28 -0
  337. data/adva_cms/db/migrate/20080401000002_create_sections_table.rb +25 -0
  338. data/adva_cms/db/migrate/20080401000003_create_contents_table.rb +35 -0
  339. data/adva_cms/db/migrate/20080401000004_create_categories_table.rb +17 -0
  340. data/adva_cms/db/migrate/20080401000005_create_category_assignments.rb +12 -0
  341. data/adva_cms/db/migrate/20080401000006_create_taggable_tables.rb +26 -0
  342. data/adva_cms/db/migrate/20080710000000_create_plugin_configs.rb +13 -0
  343. data/adva_cms/db/migrate/20080715131051_plugin_owner_column.rb +13 -0
  344. data/adva_cms/db/migrate/20081208161500_add_content_type_to_join_tables.rb +10 -0
  345. data/adva_cms/db/migrate/20090216114034_rename_category_assignment_to_categorization.rb +13 -0
  346. data/adva_cms/db/migrate/20090305123429_move_sections_to_pages.rb +9 -0
  347. data/adva_cms/db/migrate/20090519132700_add_published_at_to_sections.rb +10 -0
  348. data/adva_cms/db/migrate/20090702085459_create_section_translations.rb +9 -0
  349. data/adva_cms/db/migrate/20090702200226_create_category_translations.rb +9 -0
  350. data/adva_cms/db/migrate/20090707171100_upgrade_paperclip_paths.rb +31 -0
  351. data/adva_cms/db/migrate/20090709111934_add_email_notification_to_site.rb +12 -0
  352. data/adva_cms/db/migrate/20091026000906_add_nesting_to_articles.rb +26 -0
  353. data/adva_cms/db/migrate/20140721000000_add_title_to_contents.rb +7 -0
  354. data/adva_cms/lib/adva_cms.rb +50 -0
  355. data/adva_cms/lib/adva_cms/version.rb +3 -0
  356. data/adva_cms/lib/core_ext.rb +7 -0
  357. data/adva_cms/lib/extensible_forms.rb +283 -0
  358. data/adva_cms/lib/has_options.rb +46 -0
  359. data/adva_cms/lib/html_diff.rb +48 -0
  360. data/adva_cms/lib/rails_ext.rb +15 -0
  361. data/adva_cms/lib/rails_ext/action_controller/cacheable_flash.rb +30 -0
  362. data/adva_cms/lib/rails_ext/action_controller/content_for_assignments.rb +105 -0
  363. data/adva_cms/lib/rails_ext/action_controller/default_params.rb +19 -0
  364. data/adva_cms/lib/rails_ext/action_controller/event_helper.rb +18 -0
  365. data/adva_cms/lib/rails_ext/action_controller/page_caching.rb +23 -0
  366. data/adva_cms/lib/rails_ext/action_controller/render_with_error_proc.rb +46 -0
  367. data/adva_cms/lib/rails_ext/action_controller/responds_to_parent.rb +46 -0
  368. data/adva_cms/lib/rails_ext/action_controller/url_for_returning.rb +12 -0
  369. data/adva_cms/lib/rails_ext/active_record/exists.rb +5 -0
  370. data/adva_cms/lib/rails_ext/active_record/sti_instantiation.rb +35 -0
  371. data/adva_cms/lib/rails_ext/active_record/sticky_changes.rb +30 -0
  372. data/adva_cms/lib/rails_ext/railties/plugin.rb +58 -0
  373. data/adva_cms/lib/rails_ext/railties/plugin_configuration.rb +72 -0
  374. data/adva_cms/lib/rails_ext/railties/plugin_initializers.rb +25 -0
  375. data/adva_cms/lib/registry.rb +49 -0
  376. data/adva_cms/lib/tasks/adva_cms.rake +178 -0
  377. data/adva_cms/lib/tasks/translation.rake +69 -0
  378. data/adva_cms/lib/time_hacks.rb +57 -0
  379. data/adva_cms/lib/webrat_patch.rb +11 -0
  380. data/adva_cms/locale/rails/fr.yml +123 -0
  381. data/adva_cms/test/NOTES +56 -0
  382. data/adva_cms/test/contexts.rb +365 -0
  383. data/adva_cms/test/fixtures.rb +190 -0
  384. data/adva_cms/test/fixtures/templates/alternative_templates/index.html.erb +1 -0
  385. data/adva_cms/test/fixtures/templates/context_templates_test/index.html.erb +1 -0
  386. data/adva_cms/test/fixtures/templates/context_templates_test/show.html.erb +0 -0
  387. data/adva_cms/test/fixtures/templates/layouts/alternative.html.erb +0 -0
  388. data/adva_cms/test/fixtures/templates/layouts/default.html.erb +0 -0
  389. data/adva_cms/test/fixtures/templates/menu/shared/_menu.html.erb +8 -0
  390. data/adva_cms/test/functional/admin/articles_controller_test.rb +329 -0
  391. data/adva_cms/test/functional/admin/base_controller_test.rb +68 -0
  392. data/adva_cms/test/functional/admin/cached_pages_controller_test.rb +66 -0
  393. data/adva_cms/test/functional/admin/categories_controller_test.rb +164 -0
  394. data/adva_cms/test/functional/admin/cells_controller_spec.rb +32 -0
  395. data/adva_cms/test/functional/admin/install_controller_test.rb +89 -0
  396. data/adva_cms/test/functional/admin/plugins_controller_test.rb +93 -0
  397. data/adva_cms/test/functional/admin/sections_controller_test.rb +201 -0
  398. data/adva_cms/test/functional/admin/sites_controller_test.rb +240 -0
  399. data/adva_cms/test/functional/asset_tag_expansions_test.rb +82 -0
  400. data/adva_cms/test/functional/base_controller_test.rb +73 -0
  401. data/adva_cms/test/functional/page_articles_controller_test.rb +168 -0
  402. data/adva_cms/test/functional/page_articles_routes_test.rb +73 -0
  403. data/adva_cms/test/integration/admin/cached_pages_test.rb +43 -0
  404. data/adva_cms/test/integration/admin/categories_test.rb +66 -0
  405. data/adva_cms/test/integration/admin/custom_templates_test.rb +42 -0
  406. data/adva_cms/test/integration/admin/filtering_articles_test.rb +32 -0
  407. data/adva_cms/test/integration/admin/plugins.rb +32 -0
  408. data/adva_cms/test/integration/admin/section_article_test.rb +150 -0
  409. data/adva_cms/test/integration/admin/section_test.rb +88 -0
  410. data/adva_cms/test/integration/admin/sites_test.rb +48 -0
  411. data/adva_cms/test/integration/installation_test.rb +109 -0
  412. data/adva_cms/test/integration/page_article_comment_test.rb +51 -0
  413. data/adva_cms/test/integration/page_article_test.rb +87 -0
  414. data/adva_cms/test/integration/section_index_test.rb +37 -0
  415. data/adva_cms/test/javascript/assets/jquery-lowpro.js +224 -0
  416. data/adva_cms/test/javascript/assets/jquery-ui.js +298 -0
  417. data/adva_cms/test/javascript/assets/jquery.js +4376 -0
  418. data/adva_cms/test/javascript/assets/testrunner.js +815 -0
  419. data/adva_cms/test/javascript/assets/testsuite.css +120 -0
  420. data/adva_cms/test/javascript/lib/jstest.rb +588 -0
  421. data/adva_cms/test/javascript/templates/test_case.erb +33 -0
  422. data/adva_cms/test/plugins/adva_context_templates/context_templates_test.rb +138 -0
  423. data/adva_cms/test/plugins/adva_post_ping/controller/integration_test.rb +78 -0
  424. data/adva_cms/test/plugins/adva_post_ping/post_ping_test.rb +94 -0
  425. data/adva_cms/test/plugins/adva_url_history/article_test.rb +94 -0
  426. data/adva_cms/test/plugins/adva_url_history/init_url_history.rb +18 -0
  427. data/adva_cms/test/plugins/adva_url_history/section_test.rb +49 -0
  428. data/adva_cms/test/test_helper.rb +75 -0
  429. data/adva_cms/test/test_helper/clear_directories.rb +16 -0
  430. data/adva_cms/test/test_helper/ensure_single_site_mode.rb +10 -0
  431. data/adva_cms/test/test_helper/extensions/cacheable_flash.rb +14 -0
  432. data/adva_cms/test/test_helper/extensions/cronjob.rb +11 -0
  433. data/adva_cms/test/test_helper/extensions/even_test_log.rb +21 -0
  434. data/adva_cms/test/test_helper/extensions/integration_test.rb +78 -0
  435. data/adva_cms/test/test_helper/extensions/matchy.rb +365 -0
  436. data/adva_cms/test/test_helper/extensions/matchy_adva_cms.rb +441 -0
  437. data/adva_cms/test/test_helper/extensions/rails_patch.rb +40 -0
  438. data/adva_cms/test/test_helper/extensions/rr.rb +7 -0
  439. data/adva_cms/test/test_helper/extensions/test_unit.rb +35 -0
  440. data/adva_cms/test/test_helper/extensions/with_sugar.rb +166 -0
  441. data/adva_cms/test/test_helper/parse_options.rb +18 -0
  442. data/adva_cms/test/test_helper/setup_db_transaction.rb +15 -0
  443. data/adva_cms/test/test_helper/setup_webrat.rb +9 -0
  444. data/adva_cms/test/test_helper/test_server/init.rb +15 -0
  445. data/adva_cms/test/unit/helpers/admin/base_helper_test.rb +139 -0
  446. data/adva_cms/test/unit/helpers/base_helper_spec.rb +54 -0
  447. data/adva_cms/test/unit/helpers/base_helper_test.rb +165 -0
  448. data/adva_cms/test/unit/helpers/content_helper_test.rb +127 -0
  449. data/adva_cms/test/unit/helpers/resource_helper_test.rb +180 -0
  450. data/adva_cms/test/unit/i18n_test.rb +22 -0
  451. data/adva_cms/test/unit/lib/cells_ext_spec.rb +96 -0
  452. data/adva_cms/test/unit/lib/extensible_forms_test.rb +362 -0
  453. data/adva_cms/test/unit/lib/menu_test.rb +119 -0
  454. data/adva_cms/test/unit/lib/rails_ext/content_for_assignments_test.rb +75 -0
  455. data/adva_cms/test/unit/lib/rails_ext/plugin_configuration_test.rb +40 -0
  456. data/adva_cms/test/unit/lib/rails_ext/sticky_changes_test.rb +33 -0
  457. data/adva_cms/test/unit/lib/registry_test.rb +91 -0
  458. data/adva_cms/test/unit/lib/routing_filter/routing_filter_categories_spec.rb +63 -0
  459. data/adva_cms/test/unit/lib/routing_filter/routing_filter_categories_test.rb +159 -0
  460. data/adva_cms/test/unit/lib/routing_filter/routing_filter_locale_spec.rb +73 -0
  461. data/adva_cms/test/unit/lib/routing_filter/routing_filter_root_blog_archive_spec.rb +40 -0
  462. data/adva_cms/test/unit/lib/routing_filter/routing_filter_root_section_articles_spec.rb +48 -0
  463. data/adva_cms/test/unit/lib/routing_filter/routing_filter_root_wikipages_spec.rb +40 -0
  464. data/adva_cms/test/unit/lib/routing_filter/routing_filter_sections_spec.rb +143 -0
  465. data/adva_cms/test/unit/lib/routing_filter/routing_filter_sections_test.rb +32 -0
  466. data/adva_cms/test/unit/lib/routing_filter/routing_filter_sets_test.rb +86 -0
  467. data/adva_cms/test/unit/models/article_test.rb +191 -0
  468. data/adva_cms/test/unit/models/category_test.rb +68 -0
  469. data/adva_cms/test/unit/models/content_test.rb +409 -0
  470. data/adva_cms/test/unit/models/counter_test.rb +43 -0
  471. data/adva_cms/test/unit/models/event_test.rb +41 -0
  472. data/adva_cms/test/unit/models/nested_categories_test.rb +34 -0
  473. data/adva_cms/test/unit/models/page_test.rb +63 -0
  474. data/adva_cms/test/unit/models/section_test.rb +315 -0
  475. data/adva_cms/test/unit/models/site_test.rb +199 -0
  476. data/adva_cms/test/unit/observers/activities_article_observer_test.rb +42 -0
  477. data/adva_cms/vendor/gems/belongs_to_cacheable/.gitignore +17 -0
  478. data/adva_cms/vendor/gems/belongs_to_cacheable/Gemfile +4 -0
  479. data/adva_cms/vendor/gems/belongs_to_cacheable/LICENSE +22 -0
  480. data/adva_cms/vendor/gems/belongs_to_cacheable/README.md +29 -0
  481. data/adva_cms/vendor/gems/belongs_to_cacheable/Rakefile +2 -0
  482. data/adva_cms/vendor/gems/belongs_to_cacheable/belongs_to_cacheable.gemspec +22 -0
  483. data/adva_cms/vendor/gems/belongs_to_cacheable/init.rb +1 -0
  484. data/adva_cms/vendor/gems/belongs_to_cacheable/lib/active_record/belongs_to_cacheable.rb +77 -0
  485. data/adva_cms/vendor/gems/belongs_to_cacheable/lib/belongs_to_cacheable.rb +3 -0
  486. data/adva_cms/vendor/gems/belongs_to_cacheable/lib/belongs_to_cacheable/version.rb +3 -0
  487. data/adva_cms/vendor/gems/belongs_to_cacheable/spec/belongs_to_cacheable_spec.rb +52 -0
  488. data/adva_cms/vendor/gems/belongs_to_cacheable/spec/spec_helper.rb +50 -0
  489. data/adva_cms/vendor/gems/filtered_column/.gitignore +17 -0
  490. data/adva_cms/vendor/gems/filtered_column/Gemfile +4 -0
  491. data/adva_cms/vendor/gems/filtered_column/LICENSE +22 -0
  492. data/adva_cms/vendor/gems/filtered_column/README +4 -0
  493. data/adva_cms/vendor/gems/filtered_column/README.md +29 -0
  494. data/adva_cms/vendor/gems/filtered_column/Rakefile +23 -0
  495. data/adva_cms/vendor/gems/filtered_column/filtered_column.gemspec +17 -0
  496. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column.rb +17 -0
  497. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/filters/base.rb +28 -0
  498. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/filters/smartypants_filter.rb +14 -0
  499. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/filters/textile_filter.rb +13 -0
  500. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/macros/base.rb +25 -0
  501. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/mixin.rb +46 -0
  502. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/processor.rb +52 -0
  503. data/adva_cms/vendor/gems/filtered_column/lib/filtered_column/version.rb +3 -0
  504. data/adva_cms/vendor/gems/filtered_column/tasks/filtered_column_tasks.rake +4 -0
  505. data/adva_cms/vendor/gems/filtered_column/test/abstract_unit.rb +73 -0
  506. data/adva_cms/vendor/gems/filtered_column/test/filtered_column_test.rb +53 -0
  507. data/adva_cms/vendor/gems/filtered_column/test/macro_filter_test.rb +23 -0
  508. data/adva_cms/vendor/gems/has_counter/.gitignore +17 -0
  509. data/adva_cms/vendor/gems/has_counter/Gemfile +4 -0
  510. data/adva_cms/vendor/gems/has_counter/LICENSE +22 -0
  511. data/adva_cms/vendor/gems/has_counter/MIT-LICENSE +20 -0
  512. data/adva_cms/vendor/gems/has_counter/README.markdown +64 -0
  513. data/adva_cms/vendor/gems/has_counter/README.md +29 -0
  514. data/adva_cms/vendor/gems/has_counter/Rakefile +2 -0
  515. data/adva_cms/vendor/gems/has_counter/db/migrate/20080601194338_create_counters_table.rb.rb +13 -0
  516. data/adva_cms/vendor/gems/has_counter/has_counter.gemspec +17 -0
  517. data/adva_cms/vendor/gems/has_counter/lib/active_record/has_counter.rb +64 -0
  518. data/adva_cms/vendor/gems/has_counter/lib/counter.rb +23 -0
  519. data/adva_cms/vendor/gems/has_counter/lib/has_counter.rb +4 -0
  520. data/adva_cms/vendor/gems/has_counter/lib/has_counter/version.rb +3 -0
  521. data/adva_cms/vendor/gems/has_counter/spec/has_counter.sqlite3.db +0 -0
  522. data/adva_cms/vendor/gems/has_counter/spec/has_counter_spec.rb +55 -0
  523. data/adva_cms/vendor/gems/has_counter/spec/spec_helper.rb +117 -0
  524. data/adva_cms/vendor/gems/has_filter/.gitignore +17 -0
  525. data/adva_cms/vendor/gems/has_filter/Gemfile +4 -0
  526. data/adva_cms/vendor/gems/has_filter/LICENSE +22 -0
  527. data/adva_cms/vendor/gems/has_filter/README.md +29 -0
  528. data/adva_cms/vendor/gems/has_filter/Rakefile +2 -0
  529. data/adva_cms/vendor/gems/has_filter/app/assets/images/has_filter/filter_add.png +0 -0
  530. data/adva_cms/vendor/gems/has_filter/app/assets/images/has_filter/filter_button_left.png +0 -0
  531. data/adva_cms/vendor/gems/has_filter/app/assets/images/has_filter/filter_button_right.png +0 -0
  532. data/adva_cms/vendor/gems/has_filter/app/assets/images/has_filter/filter_remove.png +0 -0
  533. data/adva_cms/vendor/gems/has_filter/app/assets/javascripts/has_filter/filter.js +35 -0
  534. data/adva_cms/vendor/gems/has_filter/app/assets/javascripts/has_filter/jquery.filter.js +23 -0
  535. data/adva_cms/vendor/gems/has_filter/app/assets/stylesheets/has_filter/alternate/filter.css +102 -0
  536. data/adva_cms/vendor/gems/has_filter/app/assets/stylesheets/has_filter/filter.css +100 -0
  537. data/adva_cms/vendor/gems/has_filter/app/helpers/filter_helper.rb +3 -0
  538. data/adva_cms/vendor/gems/has_filter/has_filter.gemspec +17 -0
  539. data/adva_cms/vendor/gems/has_filter/init.rb +3 -0
  540. data/adva_cms/vendor/gems/has_filter/lib/has_filter.rb +22 -0
  541. data/adva_cms/vendor/gems/has_filter/lib/has_filter/active_record/act_macro.rb +102 -0
  542. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter.rb +17 -0
  543. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/base.rb +67 -0
  544. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/categorized.rb +24 -0
  545. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/chain.rb +45 -0
  546. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/set.rb +80 -0
  547. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/state.rb +25 -0
  548. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/tagged.rb +22 -0
  549. data/adva_cms/vendor/gems/has_filter/lib/has_filter/filter/text.rb +55 -0
  550. data/adva_cms/vendor/gems/has_filter/lib/has_filter/version.rb +3 -0
  551. data/adva_cms/vendor/gems/has_filter/test/db/setup.rb +45 -0
  552. data/adva_cms/vendor/gems/has_filter/test/db/test.sqlite3.db +0 -0
  553. data/adva_cms/vendor/gems/has_filter/test/fixtures.rb +15 -0
  554. data/adva_cms/vendor/gems/has_filter/test/has_filter/filter_chain_test.rb +41 -0
  555. data/adva_cms/vendor/gems/has_filter/test/has_filter/filter_scopes_test.rb +102 -0
  556. data/adva_cms/vendor/gems/has_filter/test/has_filter/filter_tags_test.rb +113 -0
  557. data/adva_cms/vendor/gems/has_filter/test/has_filter/integration.rb +15 -0
  558. data/adva_cms/vendor/gems/has_filter/test/has_filter/scopes_test.rb +48 -0
  559. data/adva_cms/vendor/gems/has_filter/test/log/test.log +34346 -0
  560. data/adva_cms/vendor/gems/has_filter/test/models.rb +23 -0
  561. data/adva_cms/vendor/gems/has_filter/test/templates/has_filter/test/index.html.erb +5 -0
  562. data/adva_cms/vendor/gems/has_filter/test/test_helper.rb +66 -0
  563. data/adva_cms/vendor/gems/simple_taggable/.gitignore +17 -0
  564. data/adva_cms/vendor/gems/simple_taggable/Gemfile +4 -0
  565. data/adva_cms/vendor/gems/simple_taggable/LICENSE +22 -0
  566. data/adva_cms/vendor/gems/simple_taggable/README +24 -0
  567. data/adva_cms/vendor/gems/simple_taggable/README.md +29 -0
  568. data/adva_cms/vendor/gems/simple_taggable/Rakefile +2 -0
  569. data/adva_cms/vendor/gems/simple_taggable/lib/simple_taggable.rb +153 -0
  570. data/adva_cms/vendor/gems/simple_taggable/lib/simple_taggable/version.rb +3 -0
  571. data/adva_cms/vendor/gems/simple_taggable/lib/tag.rb +31 -0
  572. data/adva_cms/vendor/gems/simple_taggable/lib/tag_list.rb +90 -0
  573. data/adva_cms/vendor/gems/simple_taggable/lib/tagging.rb +8 -0
  574. data/adva_cms/vendor/gems/simple_taggable/simple_taggable.gemspec +17 -0
  575. data/adva_cms/vendor/gems/simple_taggable/test/db/schema.rb +41 -0
  576. data/adva_cms/vendor/gems/simple_taggable/test/db/simple_taggable.sqlite3.db +0 -0
  577. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/magazine.rb +3 -0
  578. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/magazines.yml +2 -0
  579. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/photo.rb +8 -0
  580. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/photos.yml +19 -0
  581. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/post.rb +5 -0
  582. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/posts.yml +27 -0
  583. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/subscription.rb +4 -0
  584. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/subscriptions.yml +3 -0
  585. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/taggings.yml +112 -0
  586. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/tags.yml +14 -0
  587. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/user.rb +6 -0
  588. data/adva_cms/vendor/gems/simple_taggable/test/fixtures/users.yml +5 -0
  589. data/adva_cms/vendor/gems/simple_taggable/test/log/simple_taggable.log +1614 -0
  590. data/adva_cms/vendor/gems/simple_taggable/test/simple_taggable_test.rb +226 -0
  591. data/adva_cms/vendor/gems/simple_taggable/test/tag_list_test.rb +105 -0
  592. data/adva_cms/vendor/gems/simple_taggable/test/test_helper.rb +80 -0
  593. data/adva_cms/vendor/gems/table_builder/.gitignore +17 -0
  594. data/adva_cms/vendor/gems/table_builder/Gemfile +4 -0
  595. data/adva_cms/vendor/gems/table_builder/LICENSE +22 -0
  596. data/adva_cms/vendor/gems/table_builder/README.md +29 -0
  597. data/adva_cms/vendor/gems/table_builder/Rakefile +2 -0
  598. data/adva_cms/vendor/gems/table_builder/lib/table_builder.rb +27 -0
  599. data/adva_cms/vendor/gems/table_builder/lib/table_builder/body.rb +28 -0
  600. data/adva_cms/vendor/gems/table_builder/lib/table_builder/cell.rb +21 -0
  601. data/adva_cms/vendor/gems/table_builder/lib/table_builder/column.rb +26 -0
  602. data/adva_cms/vendor/gems/table_builder/lib/table_builder/foot.rb +6 -0
  603. data/adva_cms/vendor/gems/table_builder/lib/table_builder/head.rb +16 -0
  604. data/adva_cms/vendor/gems/table_builder/lib/table_builder/row.rb +40 -0
  605. data/adva_cms/vendor/gems/table_builder/lib/table_builder/rows.rb +26 -0
  606. data/adva_cms/vendor/gems/table_builder/lib/table_builder/table.rb +75 -0
  607. data/adva_cms/vendor/gems/table_builder/lib/table_builder/tag.rb +58 -0
  608. data/adva_cms/vendor/gems/table_builder/lib/table_builder/version.rb +3 -0
  609. data/adva_cms/vendor/gems/table_builder/table_builder.gemspec +17 -0
  610. data/adva_cms/vendor/gems/table_builder/test/fixtures/templates/table_all.html.erb +20 -0
  611. data/adva_cms/vendor/gems/table_builder/test/fixtures/templates/table_auto_body.html.erb +3 -0
  612. data/adva_cms/vendor/gems/table_builder/test/fixtures/templates/table_auto_columns.html.erb +1 -0
  613. data/adva_cms/vendor/gems/table_builder/test/fixtures/templates/table_simple.html.erb +7 -0
  614. data/adva_cms/vendor/gems/table_builder/test/table_builder/table_test.rb +230 -0
  615. data/adva_cms/vendor/gems/table_builder/test/test_helper.rb +49 -0
  616. data/adva_cms/vendor/gems/tags/.gitignore +17 -0
  617. data/adva_cms/vendor/gems/tags/Gemfile +4 -0
  618. data/adva_cms/vendor/gems/tags/LICENSE +22 -0
  619. data/adva_cms/vendor/gems/tags/README.md +29 -0
  620. data/adva_cms/vendor/gems/tags/Rakefile +2 -0
  621. data/adva_cms/vendor/gems/tags/lib/breadcrumbs.rb +13 -0
  622. data/adva_cms/vendor/gems/tags/lib/menu.rb +179 -0
  623. data/adva_cms/vendor/gems/tags/lib/menu/builder.rb +74 -0
  624. data/adva_cms/vendor/gems/tags/lib/tags.rb +7 -0
  625. data/adva_cms/vendor/gems/tags/lib/tags/tag.rb +125 -0
  626. data/adva_cms/vendor/gems/tags/lib/tags/version.rb +3 -0
  627. data/adva_cms/vendor/gems/tags/tags.gemspec +17 -0
  628. data/adva_cms/vendor/gems/tags/test/tags/menu_test.rb +173 -0
  629. data/adva_cms/vendor/gems/tags/test/tags/tag_test.rb +13 -0
  630. data/adva_cms/vendor/gems/tags/test/test_helper.rb +18 -0
  631. data/adva_cms/vendor/gems/xss_terminate/.gitignore +17 -0
  632. data/adva_cms/vendor/gems/xss_terminate/Gemfile +4 -0
  633. data/adva_cms/vendor/gems/xss_terminate/LICENSE +22 -0
  634. data/adva_cms/vendor/gems/xss_terminate/MIT-LICENSE +20 -0
  635. data/adva_cms/vendor/gems/xss_terminate/README +94 -0
  636. data/adva_cms/vendor/gems/xss_terminate/README.md +29 -0
  637. data/adva_cms/vendor/gems/xss_terminate/Rakefile +23 -0
  638. data/adva_cms/vendor/gems/xss_terminate/lib/html5lib_sanitize.rb +2453 -0
  639. data/adva_cms/vendor/gems/xss_terminate/lib/rails_sanitize.rb +8 -0
  640. data/adva_cms/vendor/gems/xss_terminate/lib/xss_terminate.rb +141 -0
  641. data/adva_cms/vendor/gems/xss_terminate/lib/xss_terminate/version.rb +3 -0
  642. data/adva_cms/vendor/gems/xss_terminate/tasks/xss_terminate_tasks.rake +7 -0
  643. data/adva_cms/vendor/gems/xss_terminate/test/models/comment.rb +5 -0
  644. data/adva_cms/vendor/gems/xss_terminate/test/models/entry.rb +7 -0
  645. data/adva_cms/vendor/gems/xss_terminate/test/models/message.rb +3 -0
  646. data/adva_cms/vendor/gems/xss_terminate/test/models/person.rb +5 -0
  647. data/adva_cms/vendor/gems/xss_terminate/test/models/review.rb +5 -0
  648. data/adva_cms/vendor/gems/xss_terminate/test/schema.rb +34 -0
  649. data/adva_cms/vendor/gems/xss_terminate/test/setup_test.rb +16 -0
  650. data/adva_cms/vendor/gems/xss_terminate/test/xss_terminate_test.rb +50 -0
  651. data/adva_cms/vendor/gems/xss_terminate/xss_terminate.gemspec +17 -0
  652. data/adva_comments/.gitignore +17 -0
  653. data/adva_comments/Gemfile +4 -0
  654. data/adva_comments/LICENSE +22 -0
  655. data/adva_comments/README.md +29 -0
  656. data/adva_comments/Rakefile +2 -0
  657. data/adva_comments/adva_comments.gemspec +19 -0
  658. data/adva_comments/app/assets/javascripts/adva_comments/jquery.comments.js +41 -0
  659. data/adva_comments/app/assets/javascripts/antispam.js +11 -0
  660. data/adva_comments/app/assets/stylesheets/adva_comments/admin/comments.css +34 -0
  661. data/adva_comments/app/assets/stylesheets/adva_comments/comments.css +50 -0
  662. data/adva_comments/app/controllers/admin/comments_controller.rb +88 -0
  663. data/adva_comments/app/controllers/comments_controller.rb +106 -0
  664. data/adva_comments/app/helpers/admin/comments_helper.rb +32 -0
  665. data/adva_comments/app/helpers/comments_helper.rb +73 -0
  666. data/adva_comments/app/mailers/comment_mailer.rb +8 -0
  667. data/adva_comments/app/models/comment.rb +93 -0
  668. data/adva_comments/app/views/admin/articles/_comments_settings.html.erb +1 -0
  669. data/adva_comments/app/views/admin/comments/_form.html.erb +12 -0
  670. data/adva_comments/app/views/admin/comments/edit.html.erb +9 -0
  671. data/adva_comments/app/views/admin/comments/index.html.erb +43 -0
  672. data/adva_comments/app/views/admin/sections/_comments_settings.html.erb +7 -0
  673. data/adva_comments/app/views/admin/sites/_comments_settings.html.erb +7 -0
  674. data/adva_comments/app/views/comment_mailer/comment_notification.html.erb +12 -0
  675. data/adva_comments/app/views/comments/_comment.html.erb +13 -0
  676. data/adva_comments/app/views/comments/_form.html.erb +43 -0
  677. data/adva_comments/app/views/comments/_list.html.erb +8 -0
  678. data/adva_comments/app/views/comments/comments.atom.builder +16 -0
  679. data/adva_comments/app/views/comments/preview.html.erb +3 -0
  680. data/adva_comments/app/views/comments/show.html.erb +12 -0
  681. data/adva_comments/config/initializers/article.rb +13 -0
  682. data/adva_comments/config/initializers/content.rb +17 -0
  683. data/adva_comments/config/initializers/controllers.rb +43 -0
  684. data/adva_comments/config/initializers/menus.rb +24 -0
  685. data/adva_comments/config/initializers/role_contexts.rb +3 -0
  686. data/adva_comments/config/initializers/section.rb +15 -0
  687. data/adva_comments/config/initializers/site.rb +11 -0
  688. data/adva_comments/config/initializers/wikipage.rb +4 -0
  689. data/adva_comments/config/routes.rb +11 -0
  690. data/adva_comments/db/migrate/20080401000007_create_comments_table.rb +22 -0
  691. data/adva_comments/db/migrate/20080721141112_add_comment_board_id.rb +9 -0
  692. data/adva_comments/lib/action_controller/acts_as_commentable.rb +43 -0
  693. data/adva_comments/lib/active_record/has_many_comments.rb +49 -0
  694. data/adva_comments/lib/adva_comments.rb +19 -0
  695. data/adva_comments/lib/adva_comments/version.rb +3 -0
  696. data/adva_comments/lib/format.rb +3 -0
  697. data/adva_comments/test/contexts.rb +29 -0
  698. data/adva_comments/test/functional/admin/comments_controller_test.rb +200 -0
  699. data/adva_comments/test/functional/comments_controller_test.rb +133 -0
  700. data/adva_comments/test/functional/comments_routes_test.rb +17 -0
  701. data/adva_comments/test/test_helper.rb +4 -0
  702. data/adva_comments/test/unit/helpers/admin/comments_helper_test.rb +23 -0
  703. data/adva_comments/test/unit/helpers/comments_helper_test.rb +147 -0
  704. data/adva_comments/test/unit/models/comment_test.rb +150 -0
  705. data/adva_comments/test/unit/models/commentable_test.rb +30 -0
  706. data/adva_comments/test/unit/observers/activities_comment_observer_test.rb +45 -0
  707. data/adva_fckeditor/.gitignore +17 -0
  708. data/adva_fckeditor/Gemfile +4 -0
  709. data/adva_fckeditor/LICENSE +22 -0
  710. data/adva_fckeditor/README +21 -0
  711. data/adva_fckeditor/README.md +29 -0
  712. data/adva_fckeditor/Rakefile +2 -0
  713. data/adva_fckeditor/adva_fckeditor.gemspec +19 -0
  714. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/config.js +58 -0
  715. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckcontextmenu.js +223 -0
  716. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdataprocessor.js +119 -0
  717. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +53 -0
  718. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
  719. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange.js +935 -0
  720. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange_gecko.js +104 -0
  721. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange_ie.js +199 -0
  722. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrangeiterator.js +327 -0
  723. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckeditingarea.js +368 -0
  724. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckelementpath.js +89 -0
  725. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckenterkey.js +708 -0
  726. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckevents.js +71 -0
  727. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckhtmliterator.js +142 -0
  728. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckicon.js +103 -0
  729. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
  730. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckimagepreloader.js +64 -0
  731. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckkeystrokehandler.js +141 -0
  732. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenublock.js +153 -0
  733. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
  734. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenuitem.js +161 -0
  735. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckpanel.js +463 -0
  736. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckplugin.js +56 -0
  737. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckspecialcombo.js +376 -0
  738. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckstyle.js +1500 -0
  739. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbar.js +103 -0
  740. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
  741. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
  742. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbutton.js +81 -0
  743. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +198 -0
  744. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +139 -0
  745. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +98 -0
  746. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +76 -0
  747. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +103 -0
  748. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +146 -0
  749. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +200 -0
  750. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckw3crange.js +451 -0
  751. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml.js +108 -0
  752. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml_gecko.js +106 -0
  753. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml_ie.js +93 -0
  754. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fck_othercommands.js +634 -0
  755. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js +281 -0
  756. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js +61 -0
  757. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckfitwindow.js +213 -0
  758. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckindentcommands.js +282 -0
  759. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckjustifycommands.js +173 -0
  760. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcklistcommands.js +382 -0
  761. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +39 -0
  762. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +40 -0
  763. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
  764. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js +45 -0
  765. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckshowblocks.js +94 -0
  766. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +49 -0
  767. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +72 -0
  768. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckstylecommand.js +60 -0
  769. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcktablecommand.js +106 -0
  770. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +201 -0
  771. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckconstants.js +56 -0
  772. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckeditorapi.js +179 -0
  773. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckjscoreextensions.js +159 -0
  774. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckscriptloader.js +122 -0
  775. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck.js +1256 -0
  776. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_contextmenu.js +345 -0
  777. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_gecko.js +497 -0
  778. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_ie.js +456 -0
  779. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckbrowserinfo.js +61 -0
  780. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
  781. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckcommands.js +172 -0
  782. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckconfig.js +237 -0
  783. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdebug.js +59 -0
  784. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdebug_empty.js +31 -0
  785. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdialog.js +239 -0
  786. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdocumentprocessor.js +270 -0
  787. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdomtools.js +1057 -0
  788. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklanguagemanager.js +165 -0
  789. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
  790. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklistslib.js +63 -0
  791. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckplugins.js +46 -0
  792. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckregexlib.js +100 -0
  793. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection.js +42 -0
  794. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection_gecko.js +228 -0
  795. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection_ie.js +287 -0
  796. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckstyles.js +381 -0
  797. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler.js +863 -0
  798. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +56 -0
  799. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler_ie.js +64 -0
  800. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktoolbaritems.js +124 -0
  801. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktoolbarset.js +399 -0
  802. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools.js +749 -0
  803. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools_gecko.js +282 -0
  804. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools_ie.js +234 -0
  805. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckundo.js +223 -0
  806. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
  807. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml.js +534 -0
  808. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml_gecko.js +114 -0
  809. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml_ie.js +213 -0
  810. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtmlentities.js +357 -0
  811. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
  812. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
  813. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_editorarea.css +110 -0
  814. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_internal.css +199 -0
  815. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css +49 -0
  816. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_address.png +0 -0
  817. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_blockquote.png +0 -0
  818. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_div.png +0 -0
  819. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h1.png +0 -0
  820. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h2.png +0 -0
  821. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h3.png +0 -0
  822. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h4.png +0 -0
  823. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h5.png +0 -0
  824. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h6.png +0 -0
  825. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_p.png +0 -0
  826. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_pre.png +0 -0
  827. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  828. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  829. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  830. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
  831. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  832. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css +85 -0
  833. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js +347 -0
  834. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  835. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  836. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  837. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about.html +161 -0
  838. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  839. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  840. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  841. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_anchor.html +220 -0
  842. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_button.html +104 -0
  843. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_checkbox.html +104 -0
  844. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_colorselector.html +172 -0
  845. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_div.html +396 -0
  846. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_docprops.html +600 -0
  847. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
  848. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash.html +152 -0
  849. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js +300 -0
  850. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +50 -0
  851. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_form.html +109 -0
  852. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html +115 -0
  853. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image.html +258 -0
  854. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js +512 -0
  855. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html +72 -0
  856. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_link.html +295 -0
  857. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js +893 -0
  858. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_listprop.html +120 -0
  859. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_paste.html +347 -0
  860. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_radiobutton.html +104 -0
  861. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_replace.html +650 -0
  862. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_select.html +180 -0
  863. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js +194 -0
  864. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_smiley.html +111 -0
  865. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_source.html +68 -0
  866. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_specialchar.html +121 -0
  867. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages.html +70 -0
  868. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  869. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
  870. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
  871. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +148 -0
  872. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +199 -0
  873. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +181 -0
  874. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +461 -0
  875. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
  876. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
  877. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
  878. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_table.html +439 -0
  879. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_tablecell.html +293 -0
  880. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template.html +242 -0
  881. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
  882. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
  883. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
  884. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_textarea.html +94 -0
  885. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_textfield.html +136 -0
  886. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_dtd_test.html +41 -0
  887. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js +116 -0
  888. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js +140 -0
  889. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckdebug.html +153 -0
  890. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckdialog.html +819 -0
  891. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckeditor.html +317 -0
  892. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckeditor.original.html +424 -0
  893. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/browser.css +87 -0
  894. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/browser.html +200 -0
  895. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +95 -0
  896. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +114 -0
  897. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html +198 -0
  898. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +185 -0
  899. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +69 -0
  900. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html +115 -0
  901. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  902. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  903. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  904. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  905. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  906. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  907. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  908. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  909. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  910. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  911. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  912. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  913. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  914. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  915. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  916. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  917. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  918. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  919. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  920. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  921. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  922. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  923. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  924. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  925. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  926. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  927. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  928. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  929. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  930. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  931. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  932. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  933. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  934. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  935. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  936. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  937. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  938. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  939. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  940. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  941. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  942. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  943. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  944. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  945. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  946. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  947. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  948. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  949. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  950. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  951. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  952. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  953. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  954. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  955. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  956. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  957. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  958. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  959. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  960. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  961. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  962. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js +88 -0
  963. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js +147 -0
  964. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/basexml.asp +63 -0
  965. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/class_upload.asp +353 -0
  966. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/commands.asp +198 -0
  967. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/config.asp +128 -0
  968. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/connector.asp +88 -0
  969. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/io.asp +237 -0
  970. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/upload.asp +65 -0
  971. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/util.asp +55 -0
  972. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/config.ascx +98 -0
  973. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/connector.aspx +32 -0
  974. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/upload.aspx +32 -0
  975. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc +273 -0
  976. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm +315 -0
  977. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm +299 -0
  978. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm +68 -0
  979. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm +230 -0
  980. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm +89 -0
  981. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm +291 -0
  982. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm +72 -0
  983. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm +131 -0
  984. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/config.cfm +189 -0
  985. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/connector.cfm +32 -0
  986. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/image.cfc +1324 -0
  987. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/upload.cfm +31 -0
  988. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/config.lasso +65 -0
  989. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/connector.lasso +322 -0
  990. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/upload.lasso +168 -0
  991. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/basexml.pl +63 -0
  992. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/commands.pl +187 -0
  993. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/connector.cgi +136 -0
  994. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/io.pl +141 -0
  995. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/upload.cgi +117 -0
  996. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl +686 -0
  997. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/util.pl +68 -0
  998. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php +93 -0
  999. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php +302 -0
  1000. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/config.php +151 -0
  1001. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php +90 -0
  1002. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/io.php +296 -0
  1003. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php +17 -0
  1004. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php +59 -0
  1005. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/util.php +220 -0
  1006. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/config.py +146 -0
  1007. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/connector.py +118 -0
  1008. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckcommands.py +198 -0
  1009. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckconnector.py +90 -0
  1010. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckoutput.py +116 -0
  1011. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckutil.py +126 -0
  1012. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/htaccess.txt +23 -0
  1013. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/upload.py +88 -0
  1014. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/wsgi.py +58 -0
  1015. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/zope.py +188 -0
  1016. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/test.html +210 -0
  1017. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html +192 -0
  1018. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/anchor.gif +0 -0
  1019. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/arrow_ltr.gif +0 -0
  1020. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/arrow_rtl.gif +0 -0
  1021. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  1022. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  1023. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  1024. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  1025. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  1026. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  1027. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  1028. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  1029. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  1030. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  1031. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  1032. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  1033. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  1034. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  1035. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  1036. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  1037. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  1038. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  1039. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  1040. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  1041. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  1042. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  1043. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/spacer.gif +0 -0
  1044. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckadobeair.js +176 -0
  1045. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js +108 -0
  1046. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckeditorcode_ie.js +109 -0
  1047. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/_translationstatus.txt +79 -0
  1048. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/af.js +534 -0
  1049. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ar.js +534 -0
  1050. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bg.js +534 -0
  1051. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bn.js +534 -0
  1052. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bs.js +534 -0
  1053. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ca.js +534 -0
  1054. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/cs.js +534 -0
  1055. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/da.js +534 -0
  1056. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/de.js +534 -0
  1057. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/el.js +534 -0
  1058. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-au.js +534 -0
  1059. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-ca.js +534 -0
  1060. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-uk.js +534 -0
  1061. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en.js +534 -0
  1062. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/eo.js +534 -0
  1063. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/es.js +534 -0
  1064. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/et.js +534 -0
  1065. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/eu.js +535 -0
  1066. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fa.js +534 -0
  1067. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fi.js +534 -0
  1068. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fo.js +534 -0
  1069. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fr-ca.js +534 -0
  1070. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fr.js +534 -0
  1071. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/gl.js +534 -0
  1072. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/gu.js +534 -0
  1073. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/he.js +534 -0
  1074. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hi.js +534 -0
  1075. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hr.js +534 -0
  1076. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hu.js +534 -0
  1077. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/is.js +534 -0
  1078. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/it.js +534 -0
  1079. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ja.js +534 -0
  1080. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/km.js +534 -0
  1081. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ko.js +534 -0
  1082. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/lt.js +534 -0
  1083. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/lv.js +534 -0
  1084. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/mn.js +534 -0
  1085. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ms.js +534 -0
  1086. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/nb.js +534 -0
  1087. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/nl.js +534 -0
  1088. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/no.js +534 -0
  1089. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pl.js +534 -0
  1090. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pt-br.js +534 -0
  1091. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pt.js +534 -0
  1092. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ro.js +534 -0
  1093. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ru.js +534 -0
  1094. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sk.js +534 -0
  1095. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sl.js +534 -0
  1096. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sr-latn.js +534 -0
  1097. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sr.js +534 -0
  1098. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sv.js +534 -0
  1099. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/th.js +534 -0
  1100. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/tr.js +534 -0
  1101. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/uk.js +534 -0
  1102. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/vi.js +534 -0
  1103. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/zh-cn.js +534 -0
  1104. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/zh.js +534 -0
  1105. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js +111 -0
  1106. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +26 -0
  1107. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/_sample/sample.html +67 -0
  1108. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js +123 -0
  1109. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js +529 -0
  1110. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html +105 -0
  1111. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
  1112. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
  1113. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
  1114. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js +27 -0
  1115. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
  1116. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
  1117. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
  1118. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  1119. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
  1120. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js +33 -0
  1121. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/_fckviewstrips.html +121 -0
  1122. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_dialog.css +402 -0
  1123. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js +110 -0
  1124. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_editor.css +464 -0
  1125. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  1126. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.gif +0 -0
  1127. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.png +0 -0
  1128. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.rtl.png +0 -0
  1129. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  1130. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/sprites.png +0 -0
  1131. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  1132. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  1133. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  1134. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  1135. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  1136. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  1137. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
  1138. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/toolbar/configurecell.gif +0 -0
  1139. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css +402 -0
  1140. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +110 -0
  1141. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
  1142. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  1143. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  1144. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  1145. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  1146. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  1147. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  1148. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  1149. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  1150. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  1151. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  1152. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  1153. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  1154. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  1155. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  1156. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_dialog.css +402 -0
  1157. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js +110 -0
  1158. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_editor.css +473 -0
  1159. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  1160. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  1161. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  1162. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  1163. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  1164. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  1165. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  1166. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  1167. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  1168. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  1169. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  1170. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  1171. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  1172. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
  1173. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/ciframe.html +65 -0
  1174. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/tmpFrameset.html +67 -0
  1175. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/w.html +227 -0
  1176. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/fckconfig.js +325 -0
  1177. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/fckeditor.js +330 -0
  1178. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/fckpackager.xml +262 -0
  1179. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/fckstyles.xml +111 -0
  1180. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/fcktemplates.xml +103 -0
  1181. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor/license.txt +1246 -0
  1182. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/cell.html +259 -0
  1183. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/fckplugin.js +21 -0
  1184. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/lang/de.js +4 -0
  1185. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/lang/en.js +4 -0
  1186. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/fckplugin.js +8 -0
  1187. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/de.js +21 -0
  1188. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/en.js +21 -0
  1189. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/it.js +22 -0
  1190. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/ja.js +21 -0
  1191. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/lt.js +21 -0
  1192. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/no.js +21 -0
  1193. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/pt.js +21 -0
  1194. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/zh-cn.js +21 -0
  1195. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/zh.js +21 -0
  1196. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/license.txt +286 -0
  1197. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/readme.txt +54 -0
  1198. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.gif +0 -0
  1199. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.html +47 -0
  1200. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.js +121 -0
  1201. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/setup_fckeditor.js +49 -0
  1202. data/adva_fckeditor/app/assets/javascripts/adva_fckeditor/setup_fckeditor.prototype.js +38 -0
  1203. data/adva_fckeditor/lib/adva_fckeditor.rb +13 -0
  1204. data/adva_fckeditor/lib/adva_fckeditor/version.rb +3 -0
  1205. data/adva_fckeditor/lib/fckeditor.rb +6 -0
  1206. data/adva_meta_tags/.gitignore +17 -0
  1207. data/adva_meta_tags/Gemfile +4 -0
  1208. data/adva_meta_tags/LICENSE +22 -0
  1209. data/adva_meta_tags/README +3 -0
  1210. data/adva_meta_tags/README.md +29 -0
  1211. data/adva_meta_tags/Rakefile +2 -0
  1212. data/adva_meta_tags/adva_meta_tags.gemspec +17 -0
  1213. data/adva_meta_tags/app/helpers/meta_tags_helper.rb +30 -0
  1214. data/adva_meta_tags/app/views/admin/articles/_meta_tags.html.erb +7 -0
  1215. data/adva_meta_tags/app/views/admin/sites/_meta_tags.html.erb +15 -0
  1216. data/adva_meta_tags/config/initializers/article.rb +19 -0
  1217. data/adva_meta_tags/config/initializers/site.rb +14 -0
  1218. data/adva_meta_tags/config/locales/de.yml +6 -0
  1219. data/adva_meta_tags/config/locales/en.yml +6 -0
  1220. data/adva_meta_tags/db/migrate/20090218083515_add_metatags_to_contents.rb +17 -0
  1221. data/adva_meta_tags/db/migrate/20090522082000_add_metatags_to_sites.rb +17 -0
  1222. data/adva_meta_tags/lib/adva_meta_tags.rb +11 -0
  1223. data/adva_meta_tags/lib/adva_meta_tags/version.rb +3 -0
  1224. data/adva_meta_tags/test/meta_tags_test.rb +42 -0
  1225. data/adva_rbac/.gitignore +17 -0
  1226. data/adva_rbac/Gemfile +4 -0
  1227. data/adva_rbac/LICENSE +22 -0
  1228. data/adva_rbac/NOTES +98 -0
  1229. data/adva_rbac/README.md +29 -0
  1230. data/adva_rbac/Rakefile +2 -0
  1231. data/adva_rbac/adva_rbac.gemspec +17 -0
  1232. data/adva_rbac/app/controllers/roles_controller.rb +28 -0
  1233. data/adva_rbac/app/helpers/roles_helper.rb +64 -0
  1234. data/adva_rbac/app/views/admin/sections/settings/_permissions.html.erb +16 -0
  1235. data/adva_rbac/app/views/roles/index.js.erb +3 -0
  1236. data/adva_rbac/config/initializers/base_controller.rb +4 -0
  1237. data/adva_rbac/config/initializers/rbac.rb +60 -0
  1238. data/adva_rbac/config/initializers/user.rb +80 -0
  1239. data/adva_rbac/db/migrate/20080402000006_create_role_tables.rb +13 -0
  1240. data/adva_rbac/db/migrate/20090720132900_migrate_roles_table_to_new_rbac.rb +15 -0
  1241. data/adva_rbac/lib/action_controller/guards_permissions.rb +77 -0
  1242. data/adva_rbac/lib/adva_rbac.rb +18 -0
  1243. data/adva_rbac/lib/adva_rbac/version.rb +3 -0
  1244. data/adva_rbac/lib/permission_map.rb +70 -0
  1245. data/adva_rbac/lib/rbac.rb +26 -0
  1246. data/adva_rbac/lib/rbac/acts_as_role_context.rb +44 -0
  1247. data/adva_rbac/lib/rbac/acts_as_role_subject.rb +65 -0
  1248. data/adva_rbac/lib/rbac/context.rb +85 -0
  1249. data/adva_rbac/lib/rbac/role.rb +10 -0
  1250. data/adva_rbac/lib/rbac/role_type.rb +73 -0
  1251. data/adva_rbac/lib/rbac/role_type/active_record.rb +47 -0
  1252. data/adva_rbac/lib/rbac/role_type/static.rb +144 -0
  1253. data/adva_rbac/lib/rbac/subject.rb +52 -0
  1254. data/adva_rbac/test/functional/roles_controller_test.rb +21 -0
  1255. data/adva_rbac/test/integration/user_rbac_test.rb +34 -0
  1256. data/adva_rbac/test/rbac/all.rb +3 -0
  1257. data/adva_rbac/test/rbac/database.rb +155 -0
  1258. data/adva_rbac/test/rbac/database.yml +3 -0
  1259. data/adva_rbac/test/rbac/implementation/active_record_test.rb +17 -0
  1260. data/adva_rbac/test/rbac/implementation/static_test.rb +14 -0
  1261. data/adva_rbac/test/rbac/static.rb +25 -0
  1262. data/adva_rbac/test/rbac/test_helper.rb +62 -0
  1263. data/adva_rbac/test/rbac/tests/acts_as_role_context.rb +37 -0
  1264. data/adva_rbac/test/rbac/tests/context.rb +35 -0
  1265. data/adva_rbac/test/rbac/tests/group.rb +40 -0
  1266. data/adva_rbac/test/rbac/tests/has_role.rb +126 -0
  1267. data/adva_rbac/test/rbac/tests/role_type.rb +110 -0
  1268. data/adva_rbac/test/test_helper.rb +1 -0
  1269. data/adva_rbac/test/unit/helpers/roles_helper_test.rb +69 -0
  1270. data/adva_rbac/test/unit/models/rbac_context_test.rb +37 -0
  1271. data/adva_rbac/test/unit/models/rbac_user_test.rb +100 -0
  1272. data/adva_rbac/test/unit/models/role_test.rb +185 -0
  1273. data/adva_user/.gitignore +17 -0
  1274. data/adva_user/Gemfile +4 -0
  1275. data/adva_user/LICENSE +22 -0
  1276. data/adva_user/README +114 -0
  1277. data/adva_user/README.md +29 -0
  1278. data/adva_user/Rakefile +2 -0
  1279. data/adva_user/adva_user.gemspec +17 -0
  1280. data/adva_user/app/controllers/admin/base_account_controller.rb +13 -0
  1281. data/adva_user/app/controllers/admin/users_controller.rb +95 -0
  1282. data/adva_user/app/controllers/password_controller.rb +36 -0
  1283. data/adva_user/app/controllers/session_controller.rb +30 -0
  1284. data/adva_user/app/helpers/users_helper.rb +27 -0
  1285. data/adva_user/app/models/account.rb +7 -0
  1286. data/adva_user/app/models/membership.rb +16 -0
  1287. data/adva_user/app/models/password_mailer.rb +43 -0
  1288. data/adva_user/app/models/user.rb +106 -0
  1289. data/adva_user/app/views/admin/users/_form.html.erb +29 -0
  1290. data/adva_user/app/views/admin/users/_sidebar.html.erb +8 -0
  1291. data/adva_user/app/views/admin/users/edit.html.erb +7 -0
  1292. data/adva_user/app/views/admin/users/index.html.erb +13 -0
  1293. data/adva_user/app/views/admin/users/new.html.erb +5 -0
  1294. data/adva_user/app/views/admin/users/show.html.erb +27 -0
  1295. data/adva_user/app/views/layouts/login.html.erb +24 -0
  1296. data/adva_user/app/views/password/edit.html.erb +14 -0
  1297. data/adva_user/app/views/password/new.html.erb +13 -0
  1298. data/adva_user/app/views/password_mailer/reset_password_email.html.erb +3 -0
  1299. data/adva_user/app/views/password_mailer/updated_password_email.html.erb +1 -0
  1300. data/adva_user/app/views/session/new.html.erb +17 -0
  1301. data/adva_user/config/initializers/menus.rb +25 -0
  1302. data/adva_user/config/routes.rb +14 -0
  1303. data/adva_user/db/migrate/20080402000001_create_users_table.rb +33 -0
  1304. data/adva_user/db/migrate/20080402000005_create_memberships_table.rb +13 -0
  1305. data/adva_user/db/migrate/20090625124502_create_accounts.rb +13 -0
  1306. data/adva_user/db/migrate/20090625133231_add_account_to_user.rb +10 -0
  1307. data/adva_user/lib/action_controller/authenticate_anonymous.rb +70 -0
  1308. data/adva_user/lib/action_controller/authenticate_user.rb +201 -0
  1309. data/adva_user/lib/active_record/belongs_to_author.rb +37 -0
  1310. data/adva_user/lib/adva_user.rb +28 -0
  1311. data/adva_user/lib/adva_user/version.rb +3 -0
  1312. data/adva_user/lib/login/helper_integration.rb +11 -0
  1313. data/adva_user/lib/login/mail_config.rb +39 -0
  1314. data/adva_user/test/contexts.rb +42 -0
  1315. data/adva_user/test/fixtures.rb +18 -0
  1316. data/adva_user/test/functional/admin/users_controller_test.rb +176 -0
  1317. data/adva_user/test/functional/password_controller_test.rb +96 -0
  1318. data/adva_user/test/functional/session_controller_test.rb +1 -0
  1319. data/adva_user/test/functional/user_controller_test.rb +95 -0
  1320. data/adva_user/test/integration/anonymous_login_test.rb +39 -0
  1321. data/adva_user/test/integration/edit_user_test.rb +44 -0
  1322. data/adva_user/test/integration/memberships_test.rb +52 -0
  1323. data/adva_user/test/integration/user_deletion_test.rb +27 -0
  1324. data/adva_user/test/integration/user_login_test.rb +53 -0
  1325. data/adva_user/test/integration/user_login_with_remember_me_test.rb +20 -0
  1326. data/adva_user/test/integration/user_registration_test.rb +64 -0
  1327. data/adva_user/test/test_helper.rb +1 -0
  1328. data/adva_user/test/unit/cells/user_cell_test.rb +13 -0
  1329. data/adva_user/test/unit/helpers/users_helper_test.rb +52 -0
  1330. data/adva_user/test/unit/models/account_test.rb +21 -0
  1331. data/adva_user/test/unit/models/anonymous_test.rb +54 -0
  1332. data/adva_user/test/unit/models/password_mailer_test.rb +26 -0
  1333. data/adva_user/test/unit/models/user_mailer_test.rb +16 -0
  1334. data/adva_user/test/unit/models/user_test.rb +173 -0
  1335. data/adva_user/vendor/gems/authentication/.gitignore +17 -0
  1336. data/adva_user/vendor/gems/authentication/Gemfile +4 -0
  1337. data/adva_user/vendor/gems/authentication/LICENSE +22 -0
  1338. data/adva_user/vendor/gems/authentication/MIT-LICENSE +38 -0
  1339. data/adva_user/vendor/gems/authentication/README +39 -0
  1340. data/adva_user/vendor/gems/authentication/README.md +29 -0
  1341. data/adva_user/vendor/gems/authentication/RUNNING_UNIT_TESTS +13 -0
  1342. data/adva_user/vendor/gems/authentication/Rakefile +61 -0
  1343. data/adva_user/vendor/gems/authentication/authentication.gemspec +17 -0
  1344. data/adva_user/vendor/gems/authentication/lib/authentication.rb +270 -0
  1345. data/adva_user/vendor/gems/authentication/lib/authentication/active_record_extensions.rb +11 -0
  1346. data/adva_user/vendor/gems/authentication/lib/authentication/bogus.rb +13 -0
  1347. data/adva_user/vendor/gems/authentication/lib/authentication/hash_helper.rb +26 -0
  1348. data/adva_user/vendor/gems/authentication/lib/authentication/ldap.rb +49 -0
  1349. data/adva_user/vendor/gems/authentication/lib/authentication/remember_me.rb +52 -0
  1350. data/adva_user/vendor/gems/authentication/lib/authentication/salted_hash.rb +53 -0
  1351. data/adva_user/vendor/gems/authentication/lib/authentication/single_token.rb +53 -0
  1352. data/adva_user/vendor/gems/authentication/lib/authentication/version.rb +3 -0
  1353. data/adva_user/vendor/gems/authentication/lib/radius/dictionary +207 -0
  1354. data/adva_user/vendor/gems/authentication/test_backup/abstract_unit.rb +30 -0
  1355. data/adva_user/vendor/gems/authentication/test_backup/active_record_extension_test.rb +17 -0
  1356. data/adva_user/vendor/gems/authentication/test_backup/authentication_test.rb +231 -0
  1357. data/adva_user/vendor/gems/authentication/test_backup/database.yml +12 -0
  1358. data/adva_user/vendor/gems/authentication/test_backup/fixtures/user.rb +3 -0
  1359. data/adva_user/vendor/gems/authentication/test_backup/fixtures/users.yml +3 -0
  1360. data/adva_user/vendor/gems/authentication/test_backup/options_test.rb +100 -0
  1361. data/adva_user/vendor/gems/authentication/test_backup/remember_me_test.rb +41 -0
  1362. data/adva_user/vendor/gems/authentication/test_backup/salted_hash_test.rb +38 -0
  1363. data/adva_user/vendor/gems/authentication/test_backup/schema.rb +10 -0
  1364. data/adva_user/vendor/gems/authentication/test_backup/single_token_test.rb +44 -0
  1365. data/adva_user/vendor/gems/authentication/test_backup/test_helper.rb +8 -0
  1366. data/doc/NOTES +332 -0
  1367. data/doc/doc_outline.txt +67 -0
  1368. data/doc/form_builder.txt +45 -0
  1369. data/doc/git_tips.txt +51 -0
  1370. data/doc/js_rbac.txt +54 -0
  1371. data/doc/notes.txt +137 -0
  1372. data/doc/testing.txt +52 -0
  1373. data/lib/adva.rb +5 -0
  1374. data/lib/adva/version.rb +3 -0
  1375. data/test/matchy/History.txt +4 -0
  1376. data/test/matchy/License.txt +20 -0
  1377. data/test/matchy/Manifest.txt +22 -0
  1378. data/test/matchy/PostInstall.txt +7 -0
  1379. data/test/matchy/README.rdoc +68 -0
  1380. data/test/matchy/Rakefile +4 -0
  1381. data/test/matchy/config/hoe.rb +73 -0
  1382. data/test/matchy/config/requirements.rb +15 -0
  1383. data/test/matchy/lib/matchy.rb +16 -0
  1384. data/test/matchy/lib/matchy/built_in/enumerable_expectations.rb +69 -0
  1385. data/test/matchy/lib/matchy/built_in/error_expectations.rb +90 -0
  1386. data/test/matchy/lib/matchy/built_in/operator_expectations.rb +97 -0
  1387. data/test/matchy/lib/matchy/built_in/truth_expectations.rb +231 -0
  1388. data/test/matchy/lib/matchy/expectation.rb +47 -0
  1389. data/test/matchy/lib/matchy/modals.rb +51 -0
  1390. data/test/matchy/lib/matchy/version.rb +9 -0
  1391. data/test/matchy/matchy.gemspec +47 -0
  1392. data/test/matchy/setup.rb +1585 -0
  1393. data/test/matchy/tasks/deployment.rake +34 -0
  1394. data/test/matchy/tasks/environment.rake +7 -0
  1395. data/test/matchy/test/test_enumerable_expectations.rb +91 -0
  1396. data/test/matchy/test/test_error_expectations.rb +109 -0
  1397. data/test/matchy/test/test_expectation_base.rb +35 -0
  1398. data/test/matchy/test/test_helper.rb +2 -0
  1399. data/test/matchy/test/test_modals.rb +39 -0
  1400. data/test/matchy/test/test_operator_expectations.rb +157 -0
  1401. data/test/matchy/test/test_truth_expectations.rb +258 -0
  1402. data/test/no_peeping_toms/README +40 -0
  1403. data/test/no_peeping_toms/init.rb +12 -0
  1404. data/test/no_peeping_toms/install.rb +1 -0
  1405. data/test/no_peeping_toms/lib/no_peeping_toms.rb +10 -0
  1406. data/test/no_peeping_toms/spec/db/database.yml +3 -0
  1407. data/test/no_peeping_toms/spec/db/schema.rb +5 -0
  1408. data/test/no_peeping_toms/spec/no_peeping_toms_spec.rb +56 -0
  1409. data/test/no_peeping_toms/spec/spec_helper.rb +8 -0
  1410. data/test/no_peeping_toms/tasks/no_peeping_toms_tasks.rake +4 -0
  1411. data/test/no_peeping_toms/uninstall.rb +1 -0
  1412. data/test/rr/.gitignore +6 -0
  1413. data/test/rr/CHANGES +192 -0
  1414. data/test/rr/README.rdoc +309 -0
  1415. data/test/rr/Rakefile +70 -0
  1416. data/test/rr/doc/0.6.0.release.markdown +81 -0
  1417. data/test/rr/introducting_rr.txt +206 -0
  1418. data/test/rr/lib/rr.rb +83 -0
  1419. data/test/rr/lib/rr/adapters/rr_methods.rb +131 -0
  1420. data/test/rr/lib/rr/adapters/rspec.rb +23 -0
  1421. data/test/rr/lib/rr/adapters/test_unit.rb +25 -0
  1422. data/test/rr/lib/rr/double.rb +212 -0
  1423. data/test/rr/lib/rr/double_definitions/child_double_definition_creator.rb +27 -0
  1424. data/test/rr/lib/rr/double_definitions/double_definition.rb +346 -0
  1425. data/test/rr/lib/rr/double_definitions/double_definition_creator.rb +167 -0
  1426. data/test/rr/lib/rr/double_definitions/double_definition_creator_proxy.rb +57 -0
  1427. data/test/rr/lib/rr/double_definitions/strategies/implementation/implementation_strategy.rb +15 -0
  1428. data/test/rr/lib/rr/double_definitions/strategies/implementation/proxy.rb +62 -0
  1429. data/test/rr/lib/rr/double_definitions/strategies/implementation/reimplementation.rb +14 -0
  1430. data/test/rr/lib/rr/double_definitions/strategies/implementation/strongly_typed_reimplementation.rb +17 -0
  1431. data/test/rr/lib/rr/double_definitions/strategies/scope/instance.rb +15 -0
  1432. data/test/rr/lib/rr/double_definitions/strategies/scope/instance_of_class.rb +46 -0
  1433. data/test/rr/lib/rr/double_definitions/strategies/scope/scope_strategy.rb +15 -0
  1434. data/test/rr/lib/rr/double_definitions/strategies/strategy.rb +70 -0
  1435. data/test/rr/lib/rr/double_definitions/strategies/verification/dont_allow.rb +34 -0
  1436. data/test/rr/lib/rr/double_definitions/strategies/verification/mock.rb +44 -0
  1437. data/test/rr/lib/rr/double_definitions/strategies/verification/stub.rb +45 -0
  1438. data/test/rr/lib/rr/double_definitions/strategies/verification/verification_strategy.rb +15 -0
  1439. data/test/rr/lib/rr/double_injection.rb +141 -0
  1440. data/test/rr/lib/rr/double_matches.rb +51 -0
  1441. data/test/rr/lib/rr/errors/argument_equality_error.rb +6 -0
  1442. data/test/rr/lib/rr/errors/double_definition_error.rb +6 -0
  1443. data/test/rr/lib/rr/errors/double_not_found_error.rb +6 -0
  1444. data/test/rr/lib/rr/errors/double_order_error.rb +6 -0
  1445. data/test/rr/lib/rr/errors/rr_error.rb +20 -0
  1446. data/test/rr/lib/rr/errors/spy_verification_error.rb +6 -0
  1447. data/test/rr/lib/rr/errors/subject_does_not_implement_method_error.rb +6 -0
  1448. data/test/rr/lib/rr/errors/subject_has_different_arity_error.rb +6 -0
  1449. data/test/rr/lib/rr/errors/times_called_error.rb +6 -0
  1450. data/test/rr/lib/rr/expectations/any_argument_expectation.rb +21 -0
  1451. data/test/rr/lib/rr/expectations/argument_equality_expectation.rb +41 -0
  1452. data/test/rr/lib/rr/expectations/times_called_expectation.rb +57 -0
  1453. data/test/rr/lib/rr/hash_with_object_id_key.rb +41 -0
  1454. data/test/rr/lib/rr/invocation_matcher.rb +27 -0
  1455. data/test/rr/lib/rr/recorded_calls.rb +72 -0
  1456. data/test/rr/lib/rr/space.rb +123 -0
  1457. data/test/rr/lib/rr/spy_verification.rb +38 -0
  1458. data/test/rr/lib/rr/spy_verification_proxy.rb +18 -0
  1459. data/test/rr/lib/rr/times_called_matchers/any_times_matcher.rb +19 -0
  1460. data/test/rr/lib/rr/times_called_matchers/at_least_matcher.rb +16 -0
  1461. data/test/rr/lib/rr/times_called_matchers/at_most_matcher.rb +24 -0
  1462. data/test/rr/lib/rr/times_called_matchers/integer_matcher.rb +19 -0
  1463. data/test/rr/lib/rr/times_called_matchers/non_terminal.rb +27 -0
  1464. data/test/rr/lib/rr/times_called_matchers/proc_matcher.rb +11 -0
  1465. data/test/rr/lib/rr/times_called_matchers/range_matcher.rb +21 -0
  1466. data/test/rr/lib/rr/times_called_matchers/terminal.rb +20 -0
  1467. data/test/rr/lib/rr/times_called_matchers/times_called_matcher.rb +44 -0
  1468. data/test/rr/lib/rr/wildcard_matchers/anything.rb +18 -0
  1469. data/test/rr/lib/rr/wildcard_matchers/boolean.rb +23 -0
  1470. data/test/rr/lib/rr/wildcard_matchers/duck_type.rb +32 -0
  1471. data/test/rr/lib/rr/wildcard_matchers/hash_including.rb +29 -0
  1472. data/test/rr/lib/rr/wildcard_matchers/is_a.rb +25 -0
  1473. data/test/rr/lib/rr/wildcard_matchers/numeric.rb +13 -0
  1474. data/test/rr/lib/rr/wildcard_matchers/range.rb +7 -0
  1475. data/test/rr/lib/rr/wildcard_matchers/regexp.rb +7 -0
  1476. data/test/rr/lib/rr/wildcard_matchers/satisfy.rb +26 -0
  1477. data/test/rr/spec/core_spec_suite.rb +19 -0
  1478. data/test/rr/spec/environment_fixture_setup.rb +6 -0
  1479. data/test/rr/spec/high_level_spec.rb +350 -0
  1480. data/test/rr/spec/recorded_calls_spec.rb +119 -0
  1481. data/test/rr/spec/rr/adapters/rr_methods_argument_matcher_spec.rb +67 -0
  1482. data/test/rr/spec/rr/adapters/rr_methods_creator_spec.rb +149 -0
  1483. data/test/rr/spec/rr/adapters/rr_methods_space_spec.rb +115 -0
  1484. data/test/rr/spec/rr/adapters/rr_methods_spec_helper.rb +11 -0
  1485. data/test/rr/spec/rr/adapters/rr_methods_times_matcher_spec.rb +17 -0
  1486. data/test/rr/spec/rr/double_definitions/child_double_definition_creator_spec.rb +112 -0
  1487. data/test/rr/spec/rr/double_definitions/double_definition_creator_proxy_spec.rb +155 -0
  1488. data/test/rr/spec/rr/double_definitions/double_definition_creator_spec.rb +502 -0
  1489. data/test/rr/spec/rr/double_definitions/double_definition_spec.rb +1159 -0
  1490. data/test/rr/spec/rr/double_injection/double_injection_bind_spec.rb +111 -0
  1491. data/test/rr/spec/rr/double_injection/double_injection_dispatching_spec.rb +244 -0
  1492. data/test/rr/spec/rr/double_injection/double_injection_has_original_method_spec.rb +55 -0
  1493. data/test/rr/spec/rr/double_injection/double_injection_reset_spec.rb +90 -0
  1494. data/test/rr/spec/rr/double_injection/double_injection_spec.rb +77 -0
  1495. data/test/rr/spec/rr/double_injection/double_injection_verify_spec.rb +29 -0
  1496. data/test/rr/spec/rr/double_spec.rb +352 -0
  1497. data/test/rr/spec/rr/errors/rr_error_spec.rb +67 -0
  1498. data/test/rr/spec/rr/expectations/any_argument_expectation_spec.rb +47 -0
  1499. data/test/rr/spec/rr/expectations/anything_argument_equality_expectation_spec.rb +14 -0
  1500. data/test/rr/spec/rr/expectations/argument_equality_expectation_spec.rb +135 -0
  1501. data/test/rr/spec/rr/expectations/boolean_argument_equality_expectation_spec.rb +34 -0
  1502. data/test/rr/spec/rr/expectations/hash_including_argument_equality_expectation_spec.rb +82 -0
  1503. data/test/rr/spec/rr/expectations/hash_including_spec.rb +17 -0
  1504. data/test/rr/spec/rr/expectations/satisfy_argument_equality_expectation_spec.rb +59 -0
  1505. data/test/rr/spec/rr/expectations/satisfy_spec.rb +14 -0
  1506. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_any_times_spec.rb +46 -0
  1507. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_at_least_spec.rb +69 -0
  1508. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_at_most_spec.rb +71 -0
  1509. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_helper.rb +23 -0
  1510. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_integer_spec.rb +104 -0
  1511. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_proc_spec.rb +81 -0
  1512. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_range_spec.rb +83 -0
  1513. data/test/rr/spec/rr/expectations/times_called_expectation/times_called_expectation_spec.rb +38 -0
  1514. data/test/rr/spec/rr/invocation_matcher_spec.rb +255 -0
  1515. data/test/rr/spec/rr/rspec/rspec_adapter_spec.rb +66 -0
  1516. data/test/rr/spec/rr/rspec/rspec_backtrace_tweaking_spec.rb +54 -0
  1517. data/test/rr/spec/rr/rspec/rspec_usage_spec.rb +86 -0
  1518. data/test/rr/spec/rr/space/hash_with_object_id_key_spec.rb +88 -0
  1519. data/test/rr/spec/rr/space/space_spec.rb +542 -0
  1520. data/test/rr/spec/rr/test_unit/test_helper.rb +7 -0
  1521. data/test/rr/spec/rr/test_unit/test_unit_backtrace_test.rb +35 -0
  1522. data/test/rr/spec/rr/test_unit/test_unit_integration_test.rb +47 -0
  1523. data/test/rr/spec/rr/times_called_matchers/any_times_matcher_spec.rb +47 -0
  1524. data/test/rr/spec/rr/times_called_matchers/at_least_matcher_spec.rb +55 -0
  1525. data/test/rr/spec/rr/times_called_matchers/at_most_matcher_spec.rb +70 -0
  1526. data/test/rr/spec/rr/times_called_matchers/integer_matcher_spec.rb +70 -0
  1527. data/test/rr/spec/rr/times_called_matchers/proc_matcher_spec.rb +55 -0
  1528. data/test/rr/spec/rr/times_called_matchers/range_matcher_spec.rb +76 -0
  1529. data/test/rr/spec/rr/times_called_matchers/times_called_matcher_spec.rb +118 -0
  1530. data/test/rr/spec/rr/wildcard_matchers/anything_spec.rb +24 -0
  1531. data/test/rr/spec/rr/wildcard_matchers/boolean_spec.rb +36 -0
  1532. data/test/rr/spec/rr/wildcard_matchers/duck_type_spec.rb +52 -0
  1533. data/test/rr/spec/rr/wildcard_matchers/is_a_spec.rb +32 -0
  1534. data/test/rr/spec/rr/wildcard_matchers/numeric_spec.rb +32 -0
  1535. data/test/rr/spec/rr/wildcard_matchers/range_spec.rb +35 -0
  1536. data/test/rr/spec/rr/wildcard_matchers/regexp_spec.rb +43 -0
  1537. data/test/rr/spec/rr_spec.rb +28 -0
  1538. data/test/rr/spec/rspec_spec_suite.rb +16 -0
  1539. data/test/rr/spec/spec.opts +14 -0
  1540. data/test/rr/spec/spec_helper.rb +107 -0
  1541. data/test/rr/spec/spec_suite.rb +27 -0
  1542. data/test/rr/spec/test_unit_spec_suite.rb +21 -0
  1543. data/test/test_plugin/about.yml +7 -0
  1544. data/test/test_plugin/init.rb +5 -0
  1545. data/test/test_server/README.textile +19 -0
  1546. data/test/test_server/bin/server +14 -0
  1547. data/test/test_server/bin/spec +11 -0
  1548. data/test/test_server/bin/test +11 -0
  1549. data/test/test_server/lib/test_server.rb +5 -0
  1550. data/test/test_server/lib/test_server/client.rb +24 -0
  1551. data/test/test_server/lib/test_server/rails.rb +59 -0
  1552. data/test/test_server/lib/test_server/runner/redgreen.rb +72 -0
  1553. data/test/test_server/lib/test_server/runner/specs.rb +20 -0
  1554. data/test/test_server/lib/test_server/runner/test_unit.rb +35 -0
  1555. data/test/test_server/lib/test_server/server.rb +112 -0
  1556. data/test/test_server/test/resources/test/foo_test.rb +1 -0
  1557. data/test/test_server/test/server_test.rb +27 -0
  1558. data/test/test_server/test/test_helper.rb +7 -0
  1559. data/test/webrat/.document +4 -0
  1560. data/test/webrat/History.txt +264 -0
  1561. data/test/webrat/MIT-LICENSE.txt +19 -0
  1562. data/test/webrat/README.rdoc +85 -0
  1563. data/test/webrat/Rakefile +151 -0
  1564. data/test/webrat/install.rb +1 -0
  1565. data/test/webrat/lib/webrat.rb +34 -0
  1566. data/test/webrat/lib/webrat/core.rb +14 -0
  1567. data/test/webrat/lib/webrat/core/configuration.rb +89 -0
  1568. data/test/webrat/lib/webrat/core/elements/area.rb +31 -0
  1569. data/test/webrat/lib/webrat/core/elements/element.rb +33 -0
  1570. data/test/webrat/lib/webrat/core/elements/field.rb +396 -0
  1571. data/test/webrat/lib/webrat/core/elements/form.rb +103 -0
  1572. data/test/webrat/lib/webrat/core/elements/label.rb +31 -0
  1573. data/test/webrat/lib/webrat/core/elements/link.rb +90 -0
  1574. data/test/webrat/lib/webrat/core/elements/select_option.rb +35 -0
  1575. data/test/webrat/lib/webrat/core/locators.rb +20 -0
  1576. data/test/webrat/lib/webrat/core/locators/area_locator.rb +38 -0
  1577. data/test/webrat/lib/webrat/core/locators/button_locator.rb +54 -0
  1578. data/test/webrat/lib/webrat/core/locators/field_by_id_locator.rb +37 -0
  1579. data/test/webrat/lib/webrat/core/locators/field_labeled_locator.rb +56 -0
  1580. data/test/webrat/lib/webrat/core/locators/field_locator.rb +25 -0
  1581. data/test/webrat/lib/webrat/core/locators/field_named_locator.rb +41 -0
  1582. data/test/webrat/lib/webrat/core/locators/form_locator.rb +19 -0
  1583. data/test/webrat/lib/webrat/core/locators/label_locator.rb +34 -0
  1584. data/test/webrat/lib/webrat/core/locators/link_locator.rb +66 -0
  1585. data/test/webrat/lib/webrat/core/locators/locator.rb +20 -0
  1586. data/test/webrat/lib/webrat/core/locators/select_option_locator.rb +59 -0
  1587. data/test/webrat/lib/webrat/core/logging.rb +21 -0
  1588. data/test/webrat/lib/webrat/core/matchers.rb +4 -0
  1589. data/test/webrat/lib/webrat/core/matchers/have_content.rb +69 -0
  1590. data/test/webrat/lib/webrat/core/matchers/have_selector.rb +52 -0
  1591. data/test/webrat/lib/webrat/core/matchers/have_tag.rb +71 -0
  1592. data/test/webrat/lib/webrat/core/matchers/have_xpath.rb +93 -0
  1593. data/test/webrat/lib/webrat/core/methods.rb +61 -0
  1594. data/test/webrat/lib/webrat/core/mime.rb +29 -0
  1595. data/test/webrat/lib/webrat/core/save_and_open_page.rb +50 -0
  1596. data/test/webrat/lib/webrat/core/scope.rb +350 -0
  1597. data/test/webrat/lib/webrat/core/session.rb +259 -0
  1598. data/test/webrat/lib/webrat/core/xml.rb +115 -0
  1599. data/test/webrat/lib/webrat/core/xml/hpricot.rb +19 -0
  1600. data/test/webrat/lib/webrat/core/xml/nokogiri.rb +76 -0
  1601. data/test/webrat/lib/webrat/core/xml/rexml.rb +24 -0
  1602. data/test/webrat/lib/webrat/core_extensions/blank.rb +58 -0
  1603. data/test/webrat/lib/webrat/core_extensions/deprecate.rb +8 -0
  1604. data/test/webrat/lib/webrat/core_extensions/detect_mapped.rb +12 -0
  1605. data/test/webrat/lib/webrat/core_extensions/hash_with_indifferent_access.rb +131 -0
  1606. data/test/webrat/lib/webrat/core_extensions/meta_class.rb +6 -0
  1607. data/test/webrat/lib/webrat/core_extensions/nil_to_param.rb +5 -0
  1608. data/test/webrat/lib/webrat/mechanize.rb +74 -0
  1609. data/test/webrat/lib/webrat/merb.rb +9 -0
  1610. data/test/webrat/lib/webrat/merb_session.rb +65 -0
  1611. data/test/webrat/lib/webrat/rack.rb +24 -0
  1612. data/test/webrat/lib/webrat/rails.rb +105 -0
  1613. data/test/webrat/lib/webrat/rspec-rails.rb +13 -0
  1614. data/test/webrat/lib/webrat/selenium.rb +99 -0
  1615. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/button.js +12 -0
  1616. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/label.js +16 -0
  1617. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/webrat.js +5 -0
  1618. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/webratlink.js +9 -0
  1619. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/webratlinkwithin.js +15 -0
  1620. data/test/webrat/lib/webrat/selenium/location_strategy_javascript/webratselectwithoption.js +5 -0
  1621. data/test/webrat/lib/webrat/selenium/matchers.rb +4 -0
  1622. data/test/webrat/lib/webrat/selenium/matchers/have_content.rb +66 -0
  1623. data/test/webrat/lib/webrat/selenium/matchers/have_selector.rb +49 -0
  1624. data/test/webrat/lib/webrat/selenium/matchers/have_tag.rb +72 -0
  1625. data/test/webrat/lib/webrat/selenium/matchers/have_xpath.rb +45 -0
  1626. data/test/webrat/lib/webrat/selenium/selenium_extensions.js +6 -0
  1627. data/test/webrat/lib/webrat/selenium/selenium_session.rb +237 -0
  1628. data/test/webrat/lib/webrat/sinatra.rb +30 -0
  1629. data/test/webrat/spec/fakes/test_session.rb +34 -0
  1630. data/test/webrat/spec/integration/merb/.gitignore +21 -0
  1631. data/test/webrat/spec/integration/merb/Rakefile +35 -0
  1632. data/test/webrat/spec/integration/merb/app/controllers/application.rb +2 -0
  1633. data/test/webrat/spec/integration/merb/app/controllers/exceptions.rb +13 -0
  1634. data/test/webrat/spec/integration/merb/app/controllers/testing.rb +18 -0
  1635. data/test/webrat/spec/integration/merb/app/views/exceptions/not_acceptable.html.erb +63 -0
  1636. data/test/webrat/spec/integration/merb/app/views/exceptions/not_found.html.erb +47 -0
  1637. data/test/webrat/spec/integration/merb/app/views/layout/application.html.erb +12 -0
  1638. data/test/webrat/spec/integration/merb/app/views/testing/show_form.html.erb +27 -0
  1639. data/test/webrat/spec/integration/merb/config/environments/development.rb +15 -0
  1640. data/test/webrat/spec/integration/merb/config/environments/rake.rb +11 -0
  1641. data/test/webrat/spec/integration/merb/config/environments/test.rb +14 -0
  1642. data/test/webrat/spec/integration/merb/config/init.rb +25 -0
  1643. data/test/webrat/spec/integration/merb/config/rack.rb +11 -0
  1644. data/test/webrat/spec/integration/merb/config/router.rb +33 -0
  1645. data/test/webrat/spec/integration/merb/spec/spec.opts +1 -0
  1646. data/test/webrat/spec/integration/merb/spec/spec_helper.rb +24 -0
  1647. data/test/webrat/spec/integration/merb/spec/webrat_spec.rb +32 -0
  1648. data/test/webrat/spec/integration/merb/tasks/merb.thor/app_script.rb +31 -0
  1649. data/test/webrat/spec/integration/merb/tasks/merb.thor/common.rb +64 -0
  1650. data/test/webrat/spec/integration/merb/tasks/merb.thor/gem_ext.rb +124 -0
  1651. data/test/webrat/spec/integration/merb/tasks/merb.thor/main.thor +150 -0
  1652. data/test/webrat/spec/integration/merb/tasks/merb.thor/ops.rb +93 -0
  1653. data/test/webrat/spec/integration/merb/tasks/merb.thor/utils.rb +40 -0
  1654. data/test/webrat/spec/integration/rails/.gitignore +3 -0
  1655. data/test/webrat/spec/integration/rails/Rakefile +30 -0
  1656. data/test/webrat/spec/integration/rails/app/controllers/application.rb +15 -0
  1657. data/test/webrat/spec/integration/rails/app/controllers/webrat_controller.rb +35 -0
  1658. data/test/webrat/spec/integration/rails/app/views/webrat/before_redirect_form.html.erb +4 -0
  1659. data/test/webrat/spec/integration/rails/app/views/webrat/form.html.erb +28 -0
  1660. data/test/webrat/spec/integration/rails/config/boot.rb +109 -0
  1661. data/test/webrat/spec/integration/rails/config/environment.rb +12 -0
  1662. data/test/webrat/spec/integration/rails/config/environments/development.rb +17 -0
  1663. data/test/webrat/spec/integration/rails/config/environments/selenium.rb +22 -0
  1664. data/test/webrat/spec/integration/rails/config/environments/test.rb +22 -0
  1665. data/test/webrat/spec/integration/rails/config/initializers/inflections.rb +10 -0
  1666. data/test/webrat/spec/integration/rails/config/initializers/mime_types.rb +5 -0
  1667. data/test/webrat/spec/integration/rails/config/initializers/new_rails_defaults.rb +17 -0
  1668. data/test/webrat/spec/integration/rails/config/locales/en.yml +5 -0
  1669. data/test/webrat/spec/integration/rails/config/routes.rb +13 -0
  1670. data/test/webrat/spec/integration/rails/public/404.html +30 -0
  1671. data/test/webrat/spec/integration/rails/public/422.html +30 -0
  1672. data/test/webrat/spec/integration/rails/public/500.html +33 -0
  1673. data/test/webrat/spec/integration/rails/script/about +4 -0
  1674. data/test/webrat/spec/integration/rails/script/console +3 -0
  1675. data/test/webrat/spec/integration/rails/script/dbconsole +3 -0
  1676. data/test/webrat/spec/integration/rails/script/destroy +3 -0
  1677. data/test/webrat/spec/integration/rails/script/generate +3 -0
  1678. data/test/webrat/spec/integration/rails/script/performance/benchmarker +3 -0
  1679. data/test/webrat/spec/integration/rails/script/performance/profiler +3 -0
  1680. data/test/webrat/spec/integration/rails/script/performance/request +3 -0
  1681. data/test/webrat/spec/integration/rails/script/plugin +3 -0
  1682. data/test/webrat/spec/integration/rails/script/process/inspector +3 -0
  1683. data/test/webrat/spec/integration/rails/script/process/reaper +3 -0
  1684. data/test/webrat/spec/integration/rails/script/process/spawner +3 -0
  1685. data/test/webrat/spec/integration/rails/script/runner +3 -0
  1686. data/test/webrat/spec/integration/rails/script/server +3 -0
  1687. data/test/webrat/spec/integration/rails/test/integration/webrat_test.rb +74 -0
  1688. data/test/webrat/spec/integration/rails/test/test_helper.rb +25 -0
  1689. data/test/webrat/spec/integration/sinatra/Rakefile +5 -0
  1690. data/test/webrat/spec/integration/sinatra/app.rb +64 -0
  1691. data/test/webrat/spec/integration/sinatra/test/test_helper.rb +17 -0
  1692. data/test/webrat/spec/integration/sinatra/test/webrat_test.rb +36 -0
  1693. data/test/webrat/spec/private/core/configuration_spec.rb +99 -0
  1694. data/test/webrat/spec/private/core/field_spec.rb +67 -0
  1695. data/test/webrat/spec/private/core/link_spec.rb +24 -0
  1696. data/test/webrat/spec/private/core/logging_spec.rb +10 -0
  1697. data/test/webrat/spec/private/core/session_spec.rb +207 -0
  1698. data/test/webrat/spec/private/mechanize/mechanize_session_spec.rb +81 -0
  1699. data/test/webrat/spec/private/merb/indifferent_access_spec.rb +47 -0
  1700. data/test/webrat/spec/private/merb/merb_session_spec.rb +42 -0
  1701. data/test/webrat/spec/private/nokogiri_spec.rb +77 -0
  1702. data/test/webrat/spec/private/rails/attaches_file_spec.rb +81 -0
  1703. data/test/webrat/spec/private/rails/rails_session_spec.rb +110 -0
  1704. data/test/webrat/spec/private/selenium/selenium_session_spec.rb +44 -0
  1705. data/test/webrat/spec/private/selenium/selenium_spec.rb +59 -0
  1706. data/test/webrat/spec/private/sinatra/helper.rb +2 -0
  1707. data/test/webrat/spec/private/sinatra/sinatra_session_spec.rb +28 -0
  1708. data/test/webrat/spec/public/basic_auth_spec.rb +24 -0
  1709. data/test/webrat/spec/public/check_spec.rb +154 -0
  1710. data/test/webrat/spec/public/choose_spec.rb +118 -0
  1711. data/test/webrat/spec/public/click_area_spec.rb +106 -0
  1712. data/test/webrat/spec/public/click_button_spec.rb +502 -0
  1713. data/test/webrat/spec/public/click_link_spec.rb +469 -0
  1714. data/test/webrat/spec/public/fill_in_spec.rb +209 -0
  1715. data/test/webrat/spec/public/locators/field_by_xpath_spec.rb +19 -0
  1716. data/test/webrat/spec/public/locators/field_labeled_spec.rb +157 -0
  1717. data/test/webrat/spec/public/locators/field_with_id_spec.rb +16 -0
  1718. data/test/webrat/spec/public/matchers_spec.rb +321 -0
  1719. data/test/webrat/spec/public/reload_spec.rb +10 -0
  1720. data/test/webrat/spec/public/save_and_open_spec.rb +51 -0
  1721. data/test/webrat/spec/public/select_date_spec.rb +88 -0
  1722. data/test/webrat/spec/public/select_datetime_spec.rb +106 -0
  1723. data/test/webrat/spec/public/select_spec.rb +246 -0
  1724. data/test/webrat/spec/public/select_time_spec.rb +79 -0
  1725. data/test/webrat/spec/public/set_hidden_field_spec.rb +5 -0
  1726. data/test/webrat/spec/public/submit_form_spec.rb +5 -0
  1727. data/test/webrat/spec/public/visit_spec.rb +67 -0
  1728. data/test/webrat/spec/public/within_spec.rb +177 -0
  1729. data/test/webrat/spec/rcov.opts +1 -0
  1730. data/test/webrat/spec/spec.opts +2 -0
  1731. data/test/webrat/spec/spec_helper.rb +50 -0
  1732. data/test/webrat/vendor/selenium-server.jar +0 -0
  1733. data/test/with-sugar/lib/with-sugar.rb +6 -0
  1734. data/test/with-sugar/lib/with-sugar/caching.rb +41 -0
  1735. data/test/with-sugar/lib/with-sugar/controller.rb +110 -0
  1736. data/test/with-sugar/lib/with-sugar/core.rb +7 -0
  1737. data/test/with-sugar/lib/with-sugar/model.rb +151 -0
  1738. data/test/with-sugar/lib/with-sugar/routing.rb +30 -0
  1739. data/test/with-sugar/lib/with-sugar/view.rb +65 -0
  1740. data/test/with-sugar/test/helper.rb +19 -0
  1741. data/test/with-sugar/test/view_test.rb +12 -0
  1742. data/test/with/README.textile +136 -0
  1743. data/test/with/demo.rb +158 -0
  1744. data/test/with/lib/with.rb +81 -0
  1745. data/test/with/lib/with/call.rb +40 -0
  1746. data/test/with/lib/with/context.rb +95 -0
  1747. data/test/with/lib/with/implementation.rb +18 -0
  1748. data/test/with/lib/with/node.rb +65 -0
  1749. data/test/with/lib/with/sharing.rb +29 -0
  1750. data/test/with/test/all.rb +1 -0
  1751. data/test/with/test/context_calls_test.rb +56 -0
  1752. data/test/with/test/context_compile_test.rb +106 -0
  1753. data/test/with/test/context_structure_test.rb +142 -0
  1754. data/test/with/test/demo_test.rb +63 -0
  1755. data/test/with/test/helper.rb +68 -0
  1756. metadata +2179 -0
@@ -0,0 +1,2085 @@
1
+ /*!
2
+ * jquery.qtip. The jQuery tooltip plugin
3
+ *
4
+ * Copyright (c) 2009 Craig Thompson
5
+ * http://craigsworks.com
6
+ *
7
+ * Licensed under MIT
8
+ * http://www.opensource.org/licenses/mit-license.php
9
+ *
10
+ * Launch : February 2009
11
+ * Version : 1.0.0-rc3
12
+ * Released: Tuesday 12th May, 2009 - 00:00
13
+ * Debug: jquery.qtip.debug.js
14
+ */
15
+ (function($)
16
+ {
17
+ // Implementation
18
+ $.fn.qtip = function(options, blanket)
19
+ {
20
+ var i, id, interfaces, opts, obj, command, config, api;
21
+
22
+ // Return API / Interfaces if requested
23
+ if(typeof options == 'string')
24
+ {
25
+ // Make sure API data exists if requested
26
+ if(typeof $(this).data('qtip') !== 'object')
27
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.NO_TOOLTIP_PRESENT, false);
28
+
29
+ // Return requested object
30
+ if(options == 'api')
31
+ return $(this).data('qtip').interfaces[ $(this).data('qtip').current ];
32
+ else if(options == 'interfaces')
33
+ return $(this).data('qtip').interfaces;
34
+ }
35
+
36
+ // Validate provided options
37
+ else
38
+ {
39
+ // Set null options object if no options are provided
40
+ if(!options) options = {};
41
+
42
+ // Sanitize option data
43
+ if(typeof options.content !== 'object' || (options.content.jquery && options.content.length > 0)) options.content = { text: options.content };
44
+ if(typeof options.content.title !== 'object') options.content.title = { text: options.content.title };
45
+ if(typeof options.position !== 'object') options.position = { corner: options.position };
46
+ if(typeof options.position.corner !== 'object') options.position.corner = { target: options.position.corner, tooltip: options.position.corner };
47
+ if(typeof options.show !== 'object') options.show = { when: options.show };
48
+ if(typeof options.show.when !== 'object') options.show.when = { event: options.show.when };
49
+ if(typeof options.show.effect !== 'object') options.show.effect = { type: options.show.effect };
50
+ if(typeof options.hide !== 'object') options.hide = { when: options.hide };
51
+ if(typeof options.hide.when !== 'object') options.hide.when = { event: options.hide.when };
52
+ if(typeof options.hide.effect !== 'object') options.hide.effect = { type: options.hide.effect };
53
+ if(typeof options.style !== 'object') options.style = { name: options.style };
54
+ options.style = sanitizeStyle(options.style);
55
+
56
+ // Build main options object
57
+ opts = $.extend(true, {}, $.fn.qtip.defaults, options);
58
+
59
+ // Inherit all style properties into one syle object and include original options
60
+ opts.style = buildStyle.call({ options: opts }, opts.style);
61
+ opts.user = $.extend(true, {}, options);
62
+ };
63
+
64
+ // Iterate each matched element
65
+ return $(this).each(function() // Return original elements as per jQuery guidelines
66
+ {
67
+ // Check for API commands
68
+ if(typeof options == 'string')
69
+ {
70
+ command = options.toLowerCase();
71
+ interfaces = $(this).qtip('interfaces');
72
+
73
+ // Make sure API data exists$('.qtip').qtip('destroy')
74
+ if(typeof interfaces == 'object')
75
+ {
76
+ // Check if API call is a BLANKET DESTROY command
77
+ if(blanket === true && command == 'destroy')
78
+ while(interfaces.length > 0) interfaces[interfaces.length-1].destroy();
79
+
80
+ // API call is not a BLANKET DESTROY command
81
+ else
82
+ {
83
+ // Check if supplied command effects this tooltip only (NOT BLANKET)
84
+ if(blanket !== true) interfaces = [ $(this).qtip('api') ];
85
+
86
+ // Execute command on chosen qTips
87
+ for(i = 0; i < interfaces.length; i++)
88
+ {
89
+ // Destroy command doesn't require tooltip to be rendered
90
+ if(command == 'destroy') interfaces[i].destroy();
91
+
92
+ // Only call API if tooltip is rendered and it wasn't a destroy call
93
+ else if(interfaces[i].status.rendered === true)
94
+ {
95
+ if(command == 'show') interfaces[i].show();
96
+ else if(command == 'hide') interfaces[i].hide();
97
+ else if(command == 'focus') interfaces[i].focus();
98
+ else if(command == 'disable') interfaces[i].disable(true);
99
+ else if(command == 'enable') interfaces[i].disable(false);
100
+ };
101
+ };
102
+ };
103
+ };
104
+ }
105
+
106
+ // No API commands, continue with qTip creation
107
+ else
108
+ {
109
+ // Create unique configuration object
110
+ config = $.extend(true, {}, opts);
111
+ config.hide.effect.length = opts.hide.effect.length;
112
+ config.show.effect.length = opts.show.effect.length;
113
+
114
+ // Sanitize target options
115
+ if(config.position.container === false) config.position.container = $(document.body);
116
+ if(config.position.target === false) config.position.target = $(this);
117
+ if(config.show.when.target === false) config.show.when.target = $(this);
118
+ if(config.hide.when.target === false) config.hide.when.target = $(this);
119
+
120
+ // Determine tooltip ID (Reuse array slots if possible)
121
+ id = $.fn.qtip.interfaces.length;
122
+ for(i = 0; i < id; i++)
123
+ {
124
+ if(typeof $.fn.qtip.interfaces[i] == 'undefined'){ id = i; break; };
125
+ };
126
+
127
+ // Instantiate the tooltip
128
+ obj = new qTip($(this), config, id);
129
+
130
+ // Add API references
131
+ $.fn.qtip.interfaces[id] = obj;
132
+
133
+ // Check if element already has qTip data assigned
134
+ if(typeof $(this).data('qtip') == 'object')
135
+ {
136
+ // Set new current interface id
137
+ if(typeof $(this).attr('qtip') === 'undefined')
138
+ $(this).data('qtip').current = $(this).data('qtip').interfaces.length;
139
+
140
+ // Push new API interface onto interfaces array
141
+ $(this).data('qtip').interfaces.push(obj);
142
+ }
143
+
144
+ // No qTip data is present, create now
145
+ else $(this).data('qtip', { current: 0, interfaces: [obj] });
146
+
147
+ // If prerendering is disabled, create tooltip on showEvent
148
+ if(config.content.prerender === false && config.show.when.event !== false && config.show.ready !== true)
149
+ {
150
+ config.show.when.target.bind(config.show.when.event+'.qtip-'+id+'-create', { qtip: id }, function(event)
151
+ {
152
+ // Retrieve API interface via passed qTip Id
153
+ api = $.fn.qtip.interfaces[ event.data.qtip ];
154
+
155
+ // Unbind show event and cache mouse coords
156
+ api.options.show.when.target.unbind(api.options.show.when.event+'.qtip-'+event.data.qtip+'-create');
157
+ api.cache.mouse = { x: event.pageX, y: event.pageY };
158
+
159
+ // Render tooltip and start the event sequence
160
+ construct.call( api );
161
+ api.options.show.when.target.trigger(api.options.show.when.event);
162
+ });
163
+ }
164
+
165
+ // Prerendering is enabled, create tooltip now
166
+ else
167
+ {
168
+ // Set mouse position cache to top left of the element
169
+ obj.cache.mouse = {
170
+ x: config.show.when.target.offset().left,
171
+ y: config.show.when.target.offset().top
172
+ };
173
+
174
+ // Construct the tooltip
175
+ construct.call(obj);
176
+ }
177
+ };
178
+ });
179
+ };
180
+
181
+ // Instantiator
182
+ function qTip(target, options, id)
183
+ {
184
+ // Declare this reference
185
+ var self = this;
186
+
187
+ // Setup class attributes
188
+ self.id = id;
189
+ self.options = options;
190
+ self.status = {
191
+ animated: false,
192
+ rendered: false,
193
+ disabled: false,
194
+ focused: false
195
+ };
196
+ self.elements = {
197
+ target: target.addClass(self.options.style.classes.target),
198
+ tooltip: null,
199
+ wrapper: null,
200
+ content: null,
201
+ contentWrapper: null,
202
+ title: null,
203
+ button: null,
204
+ tip: null,
205
+ bgiframe: null
206
+ };
207
+ self.cache = {
208
+ mouse: {},
209
+ position: {},
210
+ toggle: 0
211
+ };
212
+ self.timers = {};
213
+
214
+ // Define exposed API methods
215
+ $.extend(self, self.options.api,
216
+ {
217
+ show: function(event)
218
+ {
219
+ var returned, solo;
220
+
221
+ // Make sure tooltip is rendered and if not, return
222
+ if(!self.status.rendered)
223
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'show');
224
+
225
+ // Only continue if element is visible
226
+ if(self.elements.tooltip.css('display') !== 'none') return self;
227
+
228
+ // Clear animation queue
229
+ self.elements.tooltip.stop(true, false);
230
+
231
+ // Call API method and if return value is false, halt
232
+ returned = self.beforeShow.call(self, event);
233
+ if(returned === false) return self;
234
+
235
+ // Define afterShow callback method
236
+ function afterShow()
237
+ {
238
+ // Call API method and focus if it isn't static
239
+ if(self.options.position.type !== 'static') self.focus();
240
+ self.onShow.call(self, event);
241
+
242
+ // Prevent antialias from disappearing in IE7 by removing filter attribute
243
+ self.elements.tooltip.get(0).style.removeAttribute('filter');
244
+ };
245
+
246
+ // Maintain toggle functionality if enabled
247
+ self.cache.toggle = 1;
248
+
249
+ // Update tooltip position if it isn't static
250
+ if(self.options.position.type !== 'static')
251
+ self.updatePosition(event, (self.options.show.effect.length > 0));
252
+
253
+ // Hide other tooltips if tooltip is solo
254
+ if(typeof self.options.show.solo == 'object') solo = $(self.options.show.solo);
255
+ else if(self.options.show.solo === true) solo = $('div.qtip').not(self.elements.tooltip);
256
+ if(solo) solo.each(function(){ if($(this).qtip('api').status.rendered === true) $(this).qtip('api').hide(); });
257
+
258
+ // Show tooltip
259
+ if(typeof self.options.show.effect.type == 'function')
260
+ {
261
+ self.options.show.effect.type.call(self.elements.tooltip, self.options.show.effect.length);
262
+ self.elements.tooltip.queue(function(){ afterShow(); $(this).dequeue(); });
263
+ }
264
+ else
265
+ {
266
+ switch(self.options.show.effect.type.toLowerCase())
267
+ {
268
+ case 'fade':
269
+ self.elements.tooltip.fadeIn(self.options.show.effect.length, afterShow);
270
+ break;
271
+ case 'slide':
272
+ self.elements.tooltip.slideDown(self.options.show.effect.length, function()
273
+ {
274
+ afterShow();
275
+ if(self.options.position.type !== 'static') self.updatePosition(event, true);
276
+ });
277
+ break;
278
+ case 'grow':
279
+ self.elements.tooltip.show(self.options.show.effect.length, afterShow);
280
+ break;
281
+ default:
282
+ self.elements.tooltip.show(null, afterShow);
283
+ break;
284
+ };
285
+
286
+ // Add active class to tooltip
287
+ self.elements.tooltip.addClass(self.options.style.classes.active);
288
+ };
289
+
290
+ // Log event and return
291
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_SHOWN, 'show');
292
+ },
293
+
294
+ hide: function(event)
295
+ {
296
+ var returned;
297
+
298
+ // Make sure tooltip is rendered and if not, return
299
+ if(!self.status.rendered)
300
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'hide');
301
+
302
+ // Only continue if element is visible
303
+ else if(self.elements.tooltip.css('display') === 'none') return self;
304
+
305
+ // Stop show timer and animation queue
306
+ clearTimeout(self.timers.show);
307
+ self.elements.tooltip.stop(true, false);
308
+
309
+ // Call API method and if return value is false, halt
310
+ returned = self.beforeHide.call(self, event);
311
+ if(returned === false) return self;
312
+
313
+ // Define afterHide callback method
314
+ function afterHide(){ self.onHide.call(self, event); };
315
+
316
+ // Maintain toggle functionality if enabled
317
+ self.cache.toggle = 0;
318
+
319
+ // Hide tooltip
320
+ if(typeof self.options.hide.effect.type == 'function')
321
+ {
322
+ self.options.hide.effect.type.call(self.elements.tooltip, self.options.hide.effect.length);
323
+ self.elements.tooltip.queue(function(){ afterHide(); $(this).dequeue(); });
324
+ }
325
+ else
326
+ {
327
+ switch(self.options.hide.effect.type.toLowerCase())
328
+ {
329
+ case 'fade':
330
+ self.elements.tooltip.fadeOut(self.options.hide.effect.length, afterHide);
331
+ break;
332
+ case 'slide':
333
+ self.elements.tooltip.slideUp(self.options.hide.effect.length, afterHide);
334
+ break;
335
+ case 'grow':
336
+ self.elements.tooltip.hide(self.options.hide.effect.length, afterHide);
337
+ break;
338
+ default:
339
+ self.elements.tooltip.hide(null, afterHide);
340
+ break;
341
+ };
342
+
343
+ // Remove active class to tooltip
344
+ self.elements.tooltip.removeClass(self.options.style.classes.active);
345
+ };
346
+
347
+ // Log event and return
348
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_HIDDEN, 'hide');
349
+ },
350
+
351
+ updatePosition: function(event, animate)
352
+ {
353
+ var i, target, tooltip, coords, mapName, imagePos, newPosition, borderAdjust, mouseAdjust, offset, curPosition, returned
354
+
355
+ // Make sure tooltip is rendered and if not, return
356
+ if(!self.status.rendered)
357
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updatePosition');
358
+
359
+ // If tooltip is static, return
360
+ else if(self.options.position.type == 'static')
361
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.CANNOT_POSITION_STATIC, 'updatePosition');
362
+
363
+ // Define property objects
364
+ target = {
365
+ position: { left: 0, top: 0 },
366
+ dimensions: { height: 0, width: 0 },
367
+ corner: self.options.position.corner.target
368
+ };
369
+ tooltip = {
370
+ position: self.getPosition(),
371
+ dimensions: self.getDimensions(),
372
+ corner: self.options.position.corner.tooltip
373
+ };
374
+
375
+ // Target is an HTML element
376
+ if(self.options.position.target !== 'mouse')
377
+ {
378
+ // If the HTML element is AREA, calculate position manually
379
+ if(self.options.position.target.get(0).nodeName.toLowerCase() == 'area')
380
+ {
381
+ // Retrieve coordinates from coords attribute and parse into integers
382
+ coords = self.options.position.target.attr('coords').split(',');
383
+ for(i = 0; i < coords.length; i++) coords[i] = parseInt(coords[i]);
384
+
385
+ // Setup target position object
386
+ mapName = self.options.position.target.parent('map').attr('name');
387
+ imagePos = $('img[usemap="#'+mapName+'"]:first').offset();
388
+ target.position = {
389
+ left: Math.floor(imagePos.left + coords[0]),
390
+ top: Math.floor(imagePos.top + coords[1])
391
+ };
392
+
393
+ // Determine width and height of the area
394
+ switch(self.options.position.target.attr('shape').toLowerCase())
395
+ {
396
+ case 'rect':
397
+ target.dimensions = {
398
+ width: Math.ceil(Math.abs(coords[2] - coords[0])),
399
+ height: Math.ceil(Math.abs(coords[3] - coords[1]))
400
+ };
401
+ break;
402
+
403
+ case 'circle':
404
+ target.dimensions = {
405
+ width: coords[2] + 1,
406
+ height: coords[2] + 1
407
+ };
408
+ break;
409
+
410
+ case 'poly':
411
+ target.dimensions = {
412
+ width: coords[0],
413
+ height: coords[1]
414
+ };
415
+
416
+ for(i = 0; i < coords.length; i++)
417
+ {
418
+ if(i % 2 == 0)
419
+ {
420
+ if(coords[i] > target.dimensions.width)
421
+ target.dimensions.width = coords[i];
422
+ if(coords[i] < coords[0])
423
+ target.position.left = Math.floor(imagePos.left + coords[i]);
424
+ }
425
+ else
426
+ {
427
+ if(coords[i] > target.dimensions.height)
428
+ target.dimensions.height = coords[i];
429
+ if(coords[i] < coords[1])
430
+ target.position.top = Math.floor(imagePos.top + coords[i]);
431
+ };
432
+ };
433
+
434
+ target.dimensions.width = target.dimensions.width - (target.position.left - imagePos.left);
435
+ target.dimensions.height = target.dimensions.height - (target.position.top - imagePos.top);
436
+ break;
437
+
438
+ default:
439
+ return $.fn.qtip.log.error.call(self, 4, $.fn.qtip.constants.INVALID_AREA_SHAPE, 'updatePosition');
440
+ break;
441
+ };
442
+
443
+ // Adjust position by 2 pixels (Positioning bug?)
444
+ target.dimensions.width -= 2; target.dimensions.height -= 2;
445
+ }
446
+
447
+ // Target is the document
448
+ else if(self.options.position.target.add(document.body).length === 1)
449
+ {
450
+ target.position = { left: $(document).scrollLeft(), top: $(document).scrollTop() };
451
+ target.dimensions = { height: $(window).height(), width: $(window).width() };
452
+ }
453
+
454
+ // Target is a regular HTML element, find position normally
455
+ else
456
+ {
457
+ // Check if the target is another tooltip. If its animated, retrieve position from newPosition data
458
+ if(typeof self.options.position.target.attr('qtip') !== 'undefined')
459
+ target.position = self.options.position.target.qtip('api').cache.position;
460
+ else
461
+ target.position = self.options.position.target.offset();
462
+
463
+ // Setup dimensions objects
464
+ target.dimensions = {
465
+ height: self.options.position.target.outerHeight(),
466
+ width: self.options.position.target.outerWidth()
467
+ };
468
+ };
469
+
470
+ // Calculate correct target corner position
471
+ newPosition = $.extend({}, target.position);
472
+ if(target.corner.search(/right/i) !== -1)
473
+ newPosition.left += target.dimensions.width;
474
+
475
+ if(target.corner.search(/bottom/i) !== -1)
476
+ newPosition.top += target.dimensions.height;
477
+
478
+ if(target.corner.search(/((top|bottom)Middle)|center/) !== -1)
479
+ newPosition.left += (target.dimensions.width / 2);
480
+
481
+ if(target.corner.search(/((left|right)Middle)|center/) !== -1)
482
+ newPosition.top += (target.dimensions.height / 2);
483
+ }
484
+
485
+ // Mouse is the target, set position to current mouse coordinates
486
+ else
487
+ {
488
+ // Setup target position and dimensions objects
489
+ target.position = newPosition = { left: self.cache.mouse.x, top: self.cache.mouse.y };
490
+ target.dimensions = { height: 1, width: 1 };
491
+ };
492
+
493
+ // Calculate correct target corner position
494
+ if(tooltip.corner.search(/right/i) !== -1)
495
+ newPosition.left -= tooltip.dimensions.width;
496
+
497
+ if(tooltip.corner.search(/bottom/i) !== -1)
498
+ newPosition.top -= tooltip.dimensions.height;
499
+
500
+ if(tooltip.corner.search(/((top|bottom)Middle)|center/) !== -1)
501
+ newPosition.left -= (tooltip.dimensions.width / 2);
502
+
503
+ if(tooltip.corner.search(/((left|right)Middle)|center/) !== -1)
504
+ newPosition.top -= (tooltip.dimensions.height / 2);
505
+
506
+ // Adjust for border radius
507
+ if(self.options.style.border.radius > 0)
508
+ {
509
+ if(tooltip.corner.search(/Left/) !== -1)
510
+ newPosition.left -= self.options.style.border.radius;
511
+ else if(tooltip.corner.search(/Right/) !== -1)
512
+ newPosition.left += self.options.style.border.radius;
513
+
514
+ if(tooltip.corner.search(/Top/) !== -1)
515
+ newPosition.top -= self.options.style.border.radius;
516
+ else if(tooltip.corner.search(/Bottom/) !== -1)
517
+ newPosition.top += self.options.style.border.radius;
518
+ };
519
+
520
+ // If screen adjustment is enabled, apply adjustments
521
+ if(self.options.position.adjust.screen === true)
522
+ newPosition = screenAdjust.call(self, newPosition, target, tooltip);
523
+
524
+ // If mouse is the target, prevent tooltip appearing directly under the mouse
525
+ if(self.options.position.target === 'mouse' && self.options.position.adjust.mouse === true)
526
+ {
527
+ if(self.options.position.adjust.screen === true && self.elements.tip)
528
+ mouseAdjust = self.elements.tip.attr('rel');
529
+ else
530
+ mouseAdjust = self.options.position.corner.tooltip;
531
+
532
+ newPosition.left += (mouseAdjust.search(/right/i) !== -1) ? -6 : 6;
533
+ newPosition.top += (mouseAdjust.search(/bottom/i) !== -1) ? -6 : 6;
534
+ }
535
+
536
+ // Add user xy adjustments
537
+ newPosition.left += self.options.position.adjust.x;
538
+ newPosition.top += self.options.position.adjust.y;
539
+
540
+ // Set new tooltip position if its moved, animate if enabled
541
+ curPosition = self.getPosition();
542
+ if(newPosition.left != curPosition.left || newPosition.top != curPosition.top)
543
+ {
544
+ // Call API method and if return value is false, halt
545
+ returned = self.beforePositionUpdate.call(self, event);
546
+ if(returned === false) return self;
547
+
548
+ // Cache new position
549
+ self.cache.position = newPosition;
550
+
551
+ // Check if animation is enabled
552
+ if(animate === true)
553
+ {
554
+ // Set animated status
555
+ self.status.animated = true;
556
+
557
+ // Animate and reset animated status on animation end
558
+ self.elements.tooltip.animate(newPosition, 200, 'swing', function(){ self.status.animated = false });
559
+ }
560
+
561
+ // Set new position via CSS
562
+ else self.elements.tooltip.css(newPosition);
563
+
564
+ // Call API method and log event if its not a mouse move
565
+ self.onPositionUpdate.call(self, event);
566
+ if(typeof event !== 'undefined' && event.type && event.type !== 'mousemove')
567
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_POSITION_UPDATED, 'updatePosition');
568
+ };
569
+
570
+ return self;
571
+ },
572
+
573
+ updateWidth: function(newWidth)
574
+ {
575
+ var hidden;
576
+
577
+ // Make sure tooltip is rendered and if not, return
578
+ if(!self.status.rendered)
579
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateWidth');
580
+
581
+ // Make sure supplied width is a number and if not, return
582
+ else if(newWidth && typeof newWidth !== 'number')
583
+ return $.fn.qtip.log.error.call(self, 2, 'newWidth must be of type number', 'updateWidth');
584
+
585
+ // Setup elements which must be hidden during width update
586
+ hidden = self.elements.contentWrapper.siblings().add(self.elements.tip).add(self.elements.button);
587
+
588
+ // Calculate the new width if one is not supplied
589
+ if(!newWidth)
590
+ {
591
+ // Explicit width is set
592
+ if(typeof self.options.style.width.value == 'number')
593
+ newWidth = self.options.style.width.value;
594
+
595
+ // No width is set, proceed with auto detection
596
+ else
597
+ {
598
+ // Set width to auto initally to determine new width and hide other elements
599
+ self.elements.tooltip.css({ width: 'auto' });
600
+ hidden.hide();
601
+
602
+ // Set position and zoom to defaults to prevent IE hasLayout bug
603
+ self.elements.wrapper.add(self.elements.contentWrapper.children()).css({ zoom: 'normal' });
604
+
605
+ // Set the new width
606
+ newWidth = self.getDimensions().width + 1;
607
+
608
+ // Make sure its within the maximum and minimum width boundries
609
+ if(!self.options.style.width.value)
610
+ {
611
+ if(newWidth > self.options.style.width.max) newWidth = self.options.style.width.max
612
+ if(newWidth < self.options.style.width.min) newWidth = self.options.style.width.min
613
+ };
614
+ };
615
+ };
616
+
617
+ // Adjust newWidth by 1px if width is odd (IE6 rounding bug fix)
618
+ if(newWidth % 2 !== 0) newWidth -= 1;
619
+
620
+ // Set the new calculated width and unhide other elements
621
+ self.elements.tooltip.width(newWidth);
622
+ hidden.show();
623
+
624
+ // Set the border width, if enabled
625
+ if(self.options.style.border.radius)
626
+ {
627
+ self.elements.tooltip.find('.qtip-betweenCorners').each(function(i)
628
+ {
629
+ $(this).width(newWidth - (self.options.style.border.radius * 2));
630
+ })
631
+ };
632
+
633
+ // IE only adjustments
634
+ if(true) // if($.browser.msie)
635
+ {
636
+ // Reset position and zoom to give the wrapper layout (IE hasLayout bug)
637
+ self.elements.wrapper.add(self.elements.contentWrapper.children()).css({ zoom: '1' });
638
+
639
+ // Set the new width
640
+ self.elements.wrapper.width(newWidth);
641
+
642
+ // Adjust BGIframe height and width if enabled
643
+ if(self.elements.bgiframe) self.elements.bgiframe.width(newWidth).height(self.getDimensions.height);
644
+ };
645
+
646
+ // Log event and return
647
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_WIDTH_UPDATED, 'updateWidth');
648
+ },
649
+
650
+ updateStyle: function(name)
651
+ {
652
+ var tip, borders, context, corner, coordinates;
653
+
654
+ // Make sure tooltip is rendered and if not, return
655
+ if(!self.status.rendered)
656
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateStyle');
657
+
658
+ // Return if style is not defined or name is not a string
659
+ else if(typeof name !== 'string' || !$.fn.qtip.styles[name])
660
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.STYLE_NOT_DEFINED, 'updateStyle');
661
+
662
+ // Set the new style object
663
+ self.options.style = buildStyle.call(self, $.fn.qtip.styles[name], self.options.user.style);
664
+
665
+ // Update initial styles of content and title elements
666
+ self.elements.content.css( jQueryStyle(self.options.style) );
667
+ if(self.options.content.title.text !== false)
668
+ self.elements.title.css( jQueryStyle(self.options.style.title, true) );
669
+
670
+ // Update CSS border colour
671
+ self.elements.contentWrapper.css({ borderColor: self.options.style.border.color });
672
+
673
+ // Update tip color if enabled
674
+ if(self.options.style.tip.corner !== false)
675
+ {
676
+ if($('<canvas>').get(0).getContext)
677
+ {
678
+ // Retrieve canvas context and clear
679
+ tip = self.elements.tooltip.find('.qtip-tip canvas:first');
680
+ context = tip.get(0).getContext('2d');
681
+ context.clearRect(0,0,300,300);
682
+
683
+ // Draw new tip
684
+ corner = tip.parent('div[rel]:first').attr('rel');
685
+ coordinates = calculateTip(corner, self.options.style.tip.size.width, self.options.style.tip.size.height);
686
+ drawTip.call(self, tip, coordinates, self.options.style.tip.color || self.options.style.border.color);
687
+ }
688
+ else
689
+ {
690
+ // Set new fillcolor attribute
691
+ tip = self.elements.tooltip.find('.qtip-tip [nodeName="shape"]');
692
+ tip.attr('fillcolor', self.options.style.tip.color || self.options.style.border.color);
693
+ };
694
+ };
695
+
696
+ // Update border colors if enabled
697
+ if(self.options.style.border.radius > 0)
698
+ {
699
+ self.elements.tooltip.find('.qtip-betweenCorners').css({ backgroundColor: self.options.style.border.color });
700
+
701
+ if($('<canvas>').get(0).getContext)
702
+ {
703
+ borders = calculateBorders(self.options.style.border.radius)
704
+ self.elements.tooltip.find('.qtip-wrapper canvas').each(function()
705
+ {
706
+ // Retrieve canvas context and clear
707
+ context = $(this).get(0).getContext('2d');
708
+ context.clearRect(0,0,300,300);
709
+
710
+ // Draw new border
711
+ corner = $(this).parent('div[rel]:first').attr('rel')
712
+ drawBorder.call(self, $(this), borders[corner],
713
+ self.options.style.border.radius, self.options.style.border.color);
714
+ });
715
+ }
716
+ else
717
+ {
718
+ // Set new fillcolor attribute on each border corner
719
+ self.elements.tooltip.find('.qtip-wrapper [nodeName="arc"]').each(function()
720
+ {
721
+ $(this).attr('fillcolor', self.options.style.border.color)
722
+ });
723
+ };
724
+ };
725
+
726
+ // Log event and return
727
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_STYLE_UPDATED, 'updateStyle');
728
+ },
729
+
730
+ updateContent: function(content, reposition)
731
+ {
732
+ var parsedContent, images, loadedImages;
733
+
734
+ // Make sure tooltip is rendered and if not, return
735
+ if(!self.status.rendered)
736
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateContent');
737
+
738
+ // Make sure content is defined before update
739
+ else if(!content)
740
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.NO_CONTENT_PROVIDED, 'updateContent');
741
+
742
+ // Call API method and set new content if a string is returned
743
+ parsedContent = self.beforeContentUpdate.call(self, content);
744
+ if(typeof parsedContent == 'string') content = parsedContent;
745
+ else if(parsedContent === false) return;
746
+
747
+ // Set position and zoom to defaults to prevent IE hasLayout bug
748
+ self.elements.contentWrapper.children().css({ zoom: 'normal' });
749
+
750
+ // Append new content if its a DOM array and show it if hidden
751
+ if(content.jquery && content.length > 0)
752
+ content.clone(true).appendTo(self.elements.content).show();
753
+
754
+ // Content is a regular string, insert the new content
755
+ else self.elements.content.html(content);
756
+
757
+ // Check if images need to be loaded before position is updated to prevent mis-positioning
758
+ images = self.elements.content.find('img[complete=false]');
759
+ if(images.length > 0)
760
+ {
761
+ loadedImages = 0;
762
+ images.each(function(i)
763
+ {
764
+ $('<img src="'+ $(this).attr('src') +'" />')
765
+ .load(function(){ if(++loadedImages == images.length) afterLoad(); });
766
+ });
767
+ }
768
+ else afterLoad();
769
+
770
+ function afterLoad()
771
+ {
772
+ // Update the tooltip width
773
+ self.updateWidth();
774
+
775
+ // If repositioning is enabled, update positions
776
+ if(reposition !== false)
777
+ {
778
+ // Update position if tooltip isn't static
779
+ if(self.options.position.type !== 'static')
780
+ self.updatePosition(self.elements.tooltip.is(':visible'), true);
781
+
782
+ // Reposition the tip if enabled
783
+ if(self.options.style.tip.corner !== false)
784
+ positionTip.call(self);
785
+ };
786
+ };
787
+
788
+ // Call API method and log event
789
+ self.onContentUpdate.call(self);
790
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_CONTENT_UPDATED, 'loadContent');
791
+ },
792
+
793
+ loadContent: function(url, data, method)
794
+ {
795
+ var returned;
796
+
797
+ // Make sure tooltip is rendered and if not, return
798
+ if(!self.status.rendered)
799
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'loadContent');
800
+
801
+ // Call API method and if return value is false, halt
802
+ returned = self.beforeContentLoad.call(self);
803
+ if(returned === false) return self;
804
+
805
+ // Load content using specified request type
806
+ if(method == 'post')
807
+ $.post(url, data, setupContent);
808
+ else
809
+ $.get(url, data, setupContent);
810
+
811
+ function setupContent(content)
812
+ {
813
+ // Call API method and log event
814
+ self.onContentLoad.call(self);
815
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_CONTENT_LOADED, 'loadContent');
816
+
817
+ // Update the content
818
+ self.updateContent(content);
819
+ };
820
+
821
+ return self;
822
+ },
823
+
824
+ updateTitle: function(content)
825
+ {
826
+ // Make sure tooltip is rendered and if not, return
827
+ if(!self.status.rendered)
828
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'updateTitle');
829
+
830
+ // Make sure content is defined before update
831
+ else if(!content)
832
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.NO_CONTENT_PROVIDED, 'updateTitle');
833
+
834
+ // Call API method and if return value is false, halt
835
+ returned = self.beforeTitleUpdate.call(self);
836
+ if(returned === false) return self;
837
+
838
+ // Set the new content and reappend the button if enabled
839
+ if(self.elements.button) self.elements.button = self.elements.button.clone(true);
840
+ self.elements.title.html(content)
841
+ if(self.elements.button) self.elements.title.prepend(self.elements.button);
842
+
843
+ // Call API method and log event
844
+ self.onTitleUpdate.call(self);
845
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_TITLE_UPDATED, 'updateTitle');
846
+ },
847
+
848
+ focus: function(event)
849
+ {
850
+ var curIndex, newIndex, elemIndex, returned;
851
+
852
+ // Make sure tooltip is rendered and if not, return
853
+ if(!self.status.rendered)
854
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'focus');
855
+
856
+ else if(self.options.position.type == 'static')
857
+ return $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.CANNOT_FOCUS_STATIC, 'focus');
858
+
859
+ // Set z-index variables
860
+ curIndex = parseInt( self.elements.tooltip.css('z-index') );
861
+ newIndex = 6000 + $('div.qtip[qtip]').length - 1;
862
+
863
+ // Only update the z-index if it has changed and tooltip is not already focused
864
+ if(!self.status.focused && curIndex !== newIndex)
865
+ {
866
+ // Call API method and if return value is false, halt
867
+ returned = self.beforeFocus.call(self, event);
868
+ if(returned === false) return self;
869
+
870
+ // Loop through all other tooltips
871
+ $('div.qtip[qtip]').not(self.elements.tooltip).each(function()
872
+ {
873
+ if($(this).qtip('api').status.rendered === true)
874
+ {
875
+ elemIndex = parseInt($(this).css('z-index'));
876
+
877
+ // Reduce all other tooltip z-index by 1
878
+ if(typeof elemIndex == 'number' && elemIndex > -1)
879
+ $(this).css({ zIndex: parseInt( $(this).css('z-index') ) - 1 });
880
+
881
+ // Set focused status to false
882
+ $(this).qtip('api').status.focused = false;
883
+ }
884
+ })
885
+
886
+ // Set the new z-index and set focus status to true
887
+ self.elements.tooltip.css({ zIndex: newIndex });
888
+ self.status.focused = true;
889
+
890
+ // Call API method and log event
891
+ self.onFocus.call(self, event);
892
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_FOCUSED, 'focus');
893
+ };
894
+
895
+ return self;
896
+ },
897
+
898
+ disable: function(state)
899
+ {
900
+ // Make sure tooltip is rendered and if not, return
901
+ if(!self.status.rendered)
902
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'disable');
903
+
904
+ if(state)
905
+ {
906
+ // Tooltip is not already disabled, proceed
907
+ if(!self.status.disabled)
908
+ {
909
+ // Set the disabled flag and log event
910
+ self.status.disabled = true;
911
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_DISABLED, 'disable');
912
+ }
913
+
914
+ // Tooltip is already disabled, inform user via log
915
+ else $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.TOOLTIP_ALREADY_DISABLED, 'disable');
916
+ }
917
+ else
918
+ {
919
+ // Tooltip is not already enabled, proceed
920
+ if(self.status.disabled)
921
+ {
922
+ // Reassign events, set disable status and log
923
+ self.status.disabled = false;
924
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_ENABLED, 'disable');
925
+ }
926
+
927
+ // Tooltip is already enabled, inform the user via log
928
+ else $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.TOOLTIP_ALREADY_ENABLED, 'disable');
929
+ };
930
+
931
+ return self;
932
+ },
933
+
934
+ destroy: function()
935
+ {
936
+ var i, returned, interfaces;
937
+
938
+ // Call API method and if return value is false, halt
939
+ returned = self.beforeDestroy.call(self);
940
+ if(returned === false) return self;
941
+
942
+ // Check if tooltip is rendered
943
+ if(self.status.rendered)
944
+ {
945
+ // Remove event handlers and remove element
946
+ self.options.show.when.target.unbind('mousemove.qtip', self.updatePosition);
947
+ self.options.show.when.target.unbind('mouseout.qtip', self.hide);
948
+ self.options.show.when.target.unbind(self.options.show.when.event + '.qtip');
949
+ self.options.hide.when.target.unbind(self.options.hide.when.event + '.qtip');
950
+ self.elements.tooltip.unbind(self.options.hide.when.event + '.qtip');
951
+ self.elements.tooltip.unbind('mouseover.qtip', self.focus);
952
+ self.elements.tooltip.remove();
953
+ }
954
+
955
+ // Tooltip isn't yet rendered, remove render event
956
+ else self.options.show.when.target.unbind(self.options.show.when.event+'.qtip-create');
957
+
958
+ // Check to make sure qTip data is present on target element
959
+ if(typeof self.elements.target.data('qtip') == 'object')
960
+ {
961
+ // Remove API references from interfaces object
962
+ interfaces = self.elements.target.data('qtip').interfaces;
963
+ if(typeof interfaces == 'object' && interfaces.length > 0)
964
+ {
965
+ // Remove API from interfaces array
966
+ for(i = 0; i < interfaces.length - 1; i++)
967
+ if(interfaces[i].id == self.id) interfaces.splice(i, 1)
968
+ }
969
+ }
970
+ delete $.fn.qtip.interfaces[self.id];
971
+
972
+ // Set qTip current id to previous tooltips API if available
973
+ if(typeof interfaces == 'object' && interfaces.length > 0)
974
+ self.elements.target.data('qtip').current = interfaces.length -1;
975
+ else
976
+ self.elements.target.removeData('qtip');
977
+
978
+ // Call API method and log destroy
979
+ self.onDestroy.call(self);
980
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_DESTROYED, 'destroy');
981
+
982
+ return self.elements.target
983
+ },
984
+
985
+ getPosition: function()
986
+ {
987
+ var show, offset;
988
+
989
+ // Make sure tooltip is rendered and if not, return
990
+ if(!self.status.rendered)
991
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'getPosition');
992
+
993
+ show = (self.elements.tooltip.css('display') !== 'none') ? false : true;
994
+
995
+ // Show and hide tooltip to make sure coordinates are returned
996
+ if(show) self.elements.tooltip.css({ visiblity: 'hidden' }).show();
997
+ offset = self.elements.tooltip.offset();
998
+ if(show) self.elements.tooltip.css({ visiblity: 'visible' }).hide();
999
+
1000
+ return offset;
1001
+ },
1002
+
1003
+ getDimensions: function()
1004
+ {
1005
+ var show, dimensions;
1006
+
1007
+ // Make sure tooltip is rendered and if not, return
1008
+ if(!self.status.rendered)
1009
+ return $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.TOOLTIP_NOT_RENDERED, 'getDimensions');
1010
+
1011
+ show = (!self.elements.tooltip.is(':visible')) ? true : false;
1012
+
1013
+ // Show and hide tooltip to make sure dimensions are returned
1014
+ if(show) self.elements.tooltip.css({ visiblity: 'hidden' }).show();
1015
+ dimensions = {
1016
+ height: self.elements.tooltip.outerHeight(),
1017
+ width: self.elements.tooltip.outerWidth()
1018
+ };
1019
+ if(show) self.elements.tooltip.css({ visiblity: 'visible' }).hide();
1020
+
1021
+ return dimensions;
1022
+ }
1023
+ });
1024
+ };
1025
+
1026
+ // Define priamry construct function
1027
+ function construct()
1028
+ {
1029
+ var self, adjust, content, url, data, method, tempLength;
1030
+ self = this;
1031
+
1032
+ // Call API method
1033
+ self.beforeRender.call(self);
1034
+
1035
+ // Set rendered status to true
1036
+ self.status.rendered = true;
1037
+
1038
+ // Create initial tooltip elements
1039
+ self.elements.tooltip = '<div qtip="'+self.id+'" ' +
1040
+ 'class="qtip '+(self.options.style.classes.tooltip || self.options.style)+'"' +
1041
+ 'style="display:none; -moz-border-radius:0; -webkit-border-radius:0; border-radius:0;' +
1042
+ 'position:'+self.options.position.type+';">' +
1043
+ ' <div class="qtip-wrapper" style="position:relative; overflow:hidden; text-align:left;">' +
1044
+ ' <div class="qtip-contentWrapper" style="overflow:hidden;">' +
1045
+ ' <div class="qtip-content '+self.options.style.classes.content+'"></div>' +
1046
+ '</div></div></div>';
1047
+
1048
+ // Append to container element
1049
+ self.elements.tooltip = $(self.elements.tooltip);
1050
+ self.elements.tooltip.appendTo(self.options.position.container)
1051
+
1052
+ // Setup tooltip qTip data
1053
+ self.elements.tooltip.data('qtip', { current: 0, interfaces: [self] });
1054
+
1055
+ // Setup element references
1056
+ self.elements.wrapper = self.elements.tooltip.children('div:first');
1057
+ self.elements.contentWrapper = self.elements.wrapper.children('div:first').css({ background: self.options.style.background });
1058
+ self.elements.content = self.elements.contentWrapper.children('div:first').css( jQueryStyle(self.options.style) );
1059
+
1060
+ // Apply IE hasLayout fix to wrapper and content elements
1061
+ self.elements.wrapper.add(self.elements.content).css({ zoom: 1 });
1062
+
1063
+ // Setup tooltip attributes
1064
+ if(self.options.hide.when.event == 'unfocus') self.elements.tooltip.attr('unfocus', true);
1065
+
1066
+ // If an explicit width is set, updateWidth prior to setting content to prevent dirty rendering
1067
+ if(typeof self.options.style.width.value == 'number') self.updateWidth();
1068
+
1069
+ // Create borders and tips if supported by the browser
1070
+ if($('<canvas>').get(0).getContext)
1071
+ {
1072
+ // Create border
1073
+ if(self.options.style.border.radius > 0)
1074
+ createBorder.call(self);
1075
+ else
1076
+ self.elements.contentWrapper.css({ border: self.options.style.border.width+'px solid '+self.options.style.border.color });
1077
+
1078
+ // Create tip if enabled
1079
+ if(self.options.style.tip.corner !== false)
1080
+ createTip.call(self);
1081
+ }
1082
+
1083
+ // Neither canvas or VML is supported, tips and borders cannot be drawn!
1084
+ else
1085
+ {
1086
+ // Set defined border width
1087
+ self.elements.contentWrapper.css({ border: self.options.style.border.width+'px solid '+self.options.style.border.color });
1088
+
1089
+ // Reset border radius and tip
1090
+ self.options.style.border.radius = 0;
1091
+ self.options.style.tip.corner = false;
1092
+
1093
+ // Inform via log
1094
+ $.fn.qtip.log.error.call(self, 2, $.fn.qtip.constants.CANVAS_VML_NOT_SUPPORTED, 'render');
1095
+ };
1096
+
1097
+ // Use the provided content string or DOM array
1098
+ if((typeof self.options.content.text == 'string' && self.options.content.text.length > 0)
1099
+ || (self.options.content.text.jquery && self.options.content.text.length > 0))
1100
+ content = self.options.content.text;
1101
+
1102
+ // Use title string for content if present
1103
+ else if(typeof self.elements.target.attr('title') == 'string' && self.elements.target.attr('title').length > 0)
1104
+ {
1105
+ content = self.elements.target.attr('title').replace("\\n", '<br />');
1106
+ self.elements.target.attr('title', ''); // Remove title attribute to prevent default tooltip showing
1107
+ }
1108
+
1109
+ // No title is present, use alt attribute instead
1110
+ else if(typeof self.elements.target.attr('alt') == 'string' && self.elements.target.attr('alt').length > 0)
1111
+ {
1112
+ content = self.elements.target.attr('alt').replace("\\n", '<br />');
1113
+ self.elements.target.attr('alt', ''); // Remove alt attribute to prevent default tooltip showing
1114
+ }
1115
+
1116
+ // No valid content was provided, inform via log
1117
+ else
1118
+ {
1119
+ content = ' ';
1120
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.NO_VALID_CONTENT, 'render');
1121
+ };
1122
+
1123
+ // Set the tooltips content and create title if enabled
1124
+ if(self.options.content.title.text !== false) createTitle.call(self);
1125
+ self.updateContent(content);
1126
+
1127
+ // Assign events and toggle tooltip with focus
1128
+ assignEvents.call(self);
1129
+ if(self.options.show.ready === true) self.show();
1130
+
1131
+ // Retrieve ajax content if provided
1132
+ if(self.options.content.url !== false)
1133
+ {
1134
+ url = self.options.content.url;
1135
+ data = self.options.content.data;
1136
+ method = self.options.content.method || 'get';
1137
+ self.loadContent(url, data, method);
1138
+ };
1139
+
1140
+ // Call API method and log event
1141
+ self.onRender.call(self);
1142
+ $.fn.qtip.log.error.call(self, 1, $.fn.qtip.constants.EVENT_RENDERED, 'render');
1143
+ };
1144
+
1145
+ // Create borders using canvas and VML
1146
+ function createBorder()
1147
+ {
1148
+ var self, i, width, radius, color, coordinates, containers, size, betweenWidth, betweenCorners, borderTop, borderBottom, borderCoord, sideWidth, vertWidth;
1149
+ self = this;
1150
+
1151
+ // Destroy previous border elements, if present
1152
+ self.elements.wrapper.find('.qtip-borderBottom, .qtip-borderTop').remove();
1153
+
1154
+ // Setup local variables
1155
+ width = self.options.style.border.width;
1156
+ radius = self.options.style.border.radius;
1157
+ color = self.options.style.border.color || self.options.style.tip.color;
1158
+
1159
+ // Calculate border coordinates
1160
+ coordinates = calculateBorders(radius);
1161
+
1162
+ // Create containers for the border shapes
1163
+ containers = {};
1164
+ for(i in coordinates)
1165
+ {
1166
+ // Create shape container
1167
+ containers[i] = '<div rel="'+i+'" style="'+((i.search(/Left/) !== -1) ? 'left' : 'right') + ':0; ' +
1168
+ 'position:absolute; height:'+radius+'px; width:'+radius+'px; overflow:hidden; line-height:0.1px; font-size:1px">';
1169
+
1170
+ // Canvas is supported
1171
+ if($('<canvas>').get(0).getContext)
1172
+ containers[i] += '<canvas height="'+radius+'" width="'+radius+'" style="vertical-align: top"></canvas>';
1173
+
1174
+ // No canvas, but if it's IE use VML
1175
+ else
1176
+ {
1177
+ size = radius * 2 + 3;
1178
+ containers[i] += '<v:arc stroked="false" fillcolor="'+color+'" startangle="'+coordinates[i][0]+'" endangle="'+coordinates[i][1]+'" ' +
1179
+ 'style="width:'+size+'px; height:'+size+'px; margin-top:'+((i.search(/bottom/) !== -1) ? -2 : -1)+'px; ' +
1180
+ 'margin-left:'+((i.search(/Right/) !== -1) ? coordinates[i][2] - 3.5 : -1)+'px; ' +
1181
+ 'vertical-align:top; display:inline-block; behavior:url(#default#VML)"></v:arc>';
1182
+
1183
+ };
1184
+
1185
+ containers[i] += '</div>';
1186
+ };
1187
+
1188
+ // Create between corners elements
1189
+ betweenWidth = self.getDimensions().width - (Math.max(width, radius) * 2);
1190
+ betweenCorners = '<div class="qtip-betweenCorners" style="height:'+radius+'px; width:'+betweenWidth+'px; ' +
1191
+ 'overflow:hidden; background-color:'+color+'; line-height:0.1px; font-size:1px;">';
1192
+
1193
+ // Create top border container
1194
+ borderTop = '<div class="qtip-borderTop" dir="ltr" style="height:'+radius+'px; ' +
1195
+ 'margin-left:'+radius+'px; line-height:0.1px; font-size:1px; padding:0;">' +
1196
+ containers['topLeft'] + containers['topRight'] + betweenCorners;
1197
+ self.elements.wrapper.prepend(borderTop);
1198
+
1199
+ // Create bottom border container
1200
+ borderBottom = '<div class="qtip-borderBottom" dir="ltr" style="height:'+radius+'px; ' +
1201
+ 'margin-left:'+radius+'px; line-height:0.1px; font-size:1px; padding:0;">' +
1202
+ containers['bottomLeft'] + containers['bottomRight'] + betweenCorners;
1203
+ self.elements.wrapper.append(borderBottom);
1204
+
1205
+ // Draw the borders if canvas were used (Delayed til after DOM creation)
1206
+ if($('<canvas>').get(0).getContext)
1207
+ {
1208
+ self.elements.wrapper.find('canvas').each(function()
1209
+ {
1210
+ borderCoord = coordinates[ $(this).parent('[rel]:first').attr('rel') ];
1211
+ drawBorder.call(self, $(this), borderCoord, radius, color);
1212
+ })
1213
+ }
1214
+
1215
+ // Create a phantom VML element (IE won't show the last created VML element otherwise)
1216
+ else self.elements.tooltip.append('<v:image style="behavior:url(#default#VML);"></v:image>');
1217
+
1218
+ // Setup contentWrapper border
1219
+ sideWidth = Math.max(radius, (radius + (width - radius)) )
1220
+ vertWidth = Math.max(width - radius, 0);
1221
+ self.elements.contentWrapper.css({
1222
+ border: '0px solid ' + color,
1223
+ borderWidth: vertWidth + 'px ' + sideWidth + 'px'
1224
+ })
1225
+ };
1226
+
1227
+ // Border canvas draw method
1228
+ function drawBorder(canvas, coordinates, radius, color)
1229
+ {
1230
+ // Create corner
1231
+ var context = canvas.get(0).getContext('2d');
1232
+ context.fillStyle = color;
1233
+ context.beginPath();
1234
+ context.arc(coordinates[0], coordinates[1], radius, 0, Math.PI * 2, false);
1235
+ context.fill();
1236
+ };
1237
+
1238
+ // Create tip using canvas and VML
1239
+ function createTip(corner)
1240
+ {
1241
+ var self, color, coordinates, coordsize, path;
1242
+ self = this;
1243
+
1244
+ // Destroy previous tip, if there is one
1245
+ if(self.elements.tip !== null) self.elements.tip.remove();
1246
+
1247
+ // Setup color and corner values
1248
+ color = self.options.style.tip.color || self.options.style.border.color;
1249
+ if(self.options.style.tip.corner === false) return;
1250
+ else if(!corner) corner = self.options.style.tip.corner;
1251
+
1252
+ // Calculate tip coordinates
1253
+ coordinates = calculateTip(corner, self.options.style.tip.size.width, self.options.style.tip.size.height);
1254
+
1255
+ // Create tip element
1256
+ self.elements.tip = '<div class="'+self.options.style.classes.tip+'" dir="ltr" rel="'+corner+'" style="position:absolute; ' +
1257
+ 'height:'+self.options.style.tip.size.height+'px; width:'+self.options.style.tip.size.width+'px; ' +
1258
+ 'margin:0 auto; line-height:0.1px; font-size:1px;">';
1259
+
1260
+ // Use canvas element if supported
1261
+ if($('<canvas>').get(0).getContext)
1262
+ self.elements.tip += '<canvas height="'+self.options.style.tip.size.height+'" width="'+self.options.style.tip.size.width+'"></canvas>';
1263
+
1264
+ // Canvas not supported - Use VML (IE)
1265
+ else
1266
+ {
1267
+ // Create coordize and tip path using tip coordinates
1268
+ coordsize = self.options.style.tip.size.width + ',' + self.options.style.tip.size.height;
1269
+ path = 'm' + coordinates[0][0] + ',' + coordinates[0][1];
1270
+ path += ' l' + coordinates[1][0] + ',' + coordinates[1][1];
1271
+ path += ' ' + coordinates[2][0] + ',' + coordinates[2][1];
1272
+ path += ' xe';
1273
+
1274
+ // Create VML element
1275
+ self.elements.tip += '<v:shape fillcolor="'+color+'" stroked="false" filled="true" path="'+path+'" coordsize="'+coordsize+'" ' +
1276
+ 'style="width:'+self.options.style.tip.size.width+'px; height:'+self.options.style.tip.size.height+'px; ' +
1277
+ 'line-height:0.1px; display:inline-block; behavior:url(#default#VML); ' +
1278
+ 'vertical-align:'+((corner.search(/top/) !== -1) ? 'bottom' : 'top')+'"></v:shape>';
1279
+
1280
+ // Create a phantom VML element (IE won't show the last created VML element otherwise)
1281
+ self.elements.tip += '<v:image style="behavior:url(#default#VML);"></v:image>';
1282
+
1283
+ // Prevent tooltip appearing above the content (IE z-index bug)
1284
+ self.elements.contentWrapper.css('position', 'relative');
1285
+ };
1286
+
1287
+ // Attach new tip to tooltip element
1288
+ self.elements.tooltip.prepend(self.elements.tip + '</div>');
1289
+
1290
+ // Create element reference and draw the canvas tip (Delayed til after DOM creation)
1291
+ self.elements.tip = self.elements.tooltip.find('.'+self.options.style.classes.tip).eq(0);
1292
+ if($('<canvas>').get(0).getContext)
1293
+ drawTip.call(self, self.elements.tip.find('canvas:first'), coordinates, color);
1294
+
1295
+ // Set the tip position
1296
+ positionTip.call(self, corner);
1297
+ };
1298
+
1299
+ // Canvas tip drawing method
1300
+ function drawTip(canvas, coordinates, color)
1301
+ {
1302
+ // Setup properties
1303
+ var context = canvas.get(0).getContext('2d');
1304
+ context.fillStyle = color;
1305
+
1306
+ // Create tip
1307
+ context.beginPath();
1308
+ context.moveTo(coordinates[0][0], coordinates[0][1]);
1309
+ context.lineTo(coordinates[1][0], coordinates[1][1]);
1310
+ context.lineTo(coordinates[2][0], coordinates[2][1]);
1311
+ context.fill();
1312
+ };
1313
+
1314
+ function positionTip(corner)
1315
+ {
1316
+ var self, paddingCorner, paddingSize, newMargin;
1317
+ self = this;
1318
+
1319
+ // Return if tips are disabled or tip is not yet rendered
1320
+ if(self.options.style.tip.corner === false || !self.elements.tip) return;
1321
+ if(!corner) corner = self.elements.tip.attr('rel');
1322
+
1323
+ // Set initial position
1324
+ self.elements.tip.css(corner.match(/left|right|top|bottom/)[0], 0);
1325
+
1326
+ // Set position of tip to correct side
1327
+ if(corner.search(/top|bottom/) !== -1)
1328
+ {
1329
+ if(corner.search(/Middle/) !== -1)
1330
+ self.elements.tip.css({ left: '50%', marginLeft: -(self.options.style.tip.size.width / 2) });
1331
+
1332
+ else if(corner.search(/Left/) !== -1)
1333
+ self.elements.tip.css({ left: self.options.style.border.radius });
1334
+
1335
+ else if(corner.search(/Right/) !== -1)
1336
+ self.elements.tip.css({ right: self.options.style.border.radius });
1337
+
1338
+ if(corner.search(/top/) !== -1)
1339
+ self.elements.tip.css({ top: -positionAdjust });
1340
+ else
1341
+ self.elements.tip.css({ bottom: positionAdjust });
1342
+
1343
+ }
1344
+ else if(corner.search(/left|right/) !== -1)
1345
+ {
1346
+ if(corner.search(/Middle/) !== -1)
1347
+ self.elements.tip.css({ top: '50%', marginTop: -(self.options.style.tip.size.height / 2) });
1348
+
1349
+ else if(corner.search(/Top/) !== -1)
1350
+ self.elements.tip.css({ top: self.options.style.border.radius });
1351
+
1352
+ else if(corner.search(/Bottom/) !== -1)
1353
+ self.elements.tip.css({ bottom: self.options.style.border.radius });
1354
+
1355
+ if(corner.search(/left/) !== -1)
1356
+ self.elements.tip.css({ left: -positionAdjust });
1357
+ else
1358
+ self.elements.tip.css({ right: positionAdjust });
1359
+ };
1360
+
1361
+ // Adjust tooltip padding to compensate for tip
1362
+ paddingCorner = 'padding-' + corner.match(/left|right|top|bottom/)[0];
1363
+ paddingSize = self.options.style.tip.size[ (paddingCorner.search(/left|right/) !== -1) ? 'width' : 'height' ];
1364
+ self.elements.tooltip.css('padding', 0);
1365
+ self.elements.tooltip.css(paddingCorner, paddingSize);
1366
+
1367
+ };
1368
+
1369
+ // Create title bar for content
1370
+ function createTitle()
1371
+ {
1372
+ var self = this;
1373
+
1374
+ // Destroy previous title element, if present
1375
+ if(self.elements.title !== null) self.elements.title.remove();
1376
+
1377
+ // Create title element
1378
+ self.elements.title = $('<div class="'+self.options.style.classes.title+'">')
1379
+ .css( jQueryStyle(self.options.style.title, true) )
1380
+ .css({ zoom: 1 })
1381
+ .prependTo(self.elements.contentWrapper);
1382
+
1383
+ // Update title with contents if enabled
1384
+ if(self.options.content.title.text) self.updateTitle.call(self, self.options.content.title.text);
1385
+
1386
+ // Create title close buttons if enabled
1387
+ if(self.options.content.title.button !== false
1388
+ && typeof self.options.content.title.button == 'string')
1389
+ {
1390
+ self.elements.button = $('<a class="'+self.options.style.classes.button+'" style="float:right; position: relative"></a>')
1391
+ .css( jQueryStyle(self.options.style.button, true) )
1392
+ .html(self.options.content.title.button)
1393
+ .prependTo(self.elements.title)
1394
+ .click(function(event){ if(!self.status.disabled) self.hide(event) });
1395
+ };
1396
+ };
1397
+
1398
+ // Assign hide and show events
1399
+ function assignEvents()
1400
+ {
1401
+ var self, showTarget, hideTarget, inactiveEvents;
1402
+ self = this;
1403
+
1404
+ // Setup event target variables
1405
+ showTarget = self.options.show.when.target;
1406
+ hideTarget = self.options.hide.when.target;
1407
+
1408
+ // Add tooltip as a hideTarget is its fixed
1409
+ if(self.options.hide.fixed) hideTarget = hideTarget.add(self.elements.tooltip);
1410
+
1411
+ // Check if the hide event is special 'inactive' type
1412
+ if(self.options.hide.when.event == 'inactive')
1413
+ {
1414
+ // Define events which reset the 'inactive' event handler
1415
+ inactiveEvents = ['click', 'dblclick', 'mousedown', 'mouseup', 'mousemove',
1416
+ 'mouseout', 'mouseenter', 'mouseleave', 'mouseover' ];
1417
+
1418
+ // Define 'inactive' event timer method
1419
+ function inactiveMethod(event)
1420
+ {
1421
+ if(self.status.disabled === true) return;
1422
+
1423
+ //Clear and reset the timer
1424
+ clearTimeout(self.timers.inactive);
1425
+ self.timers.inactive = setTimeout(function()
1426
+ {
1427
+ // Unassign 'inactive' events
1428
+ $(inactiveEvents).each(function()
1429
+ {
1430
+ hideTarget.unbind(this+'.qtip-inactive');
1431
+ self.elements.content.unbind(this+'.qtip-inactive');
1432
+ });
1433
+
1434
+ // Hide the tooltip
1435
+ self.hide(event);
1436
+ }
1437
+ , self.options.hide.delay);
1438
+ };
1439
+ }
1440
+
1441
+ // Check if the tooltip is 'fixed'
1442
+ else if(self.options.hide.fixed === true)
1443
+ {
1444
+ self.elements.tooltip.bind('mouseover.qtip', function()
1445
+ {
1446
+ if(self.status.disabled === true) return;
1447
+
1448
+ // Reset the hide timer
1449
+ clearTimeout(self.timers.hide);
1450
+ });
1451
+ };
1452
+
1453
+ // Define show event method
1454
+ function showMethod(event)
1455
+ {
1456
+ if(self.status.disabled === true) return;
1457
+
1458
+ // If set, hide tooltip when inactive for delay period
1459
+ if(self.options.hide.when.event == 'inactive')
1460
+ {
1461
+ // Assign each reset event
1462
+ $(inactiveEvents).each(function()
1463
+ {
1464
+ hideTarget.bind(this+'.qtip-inactive', inactiveMethod);
1465
+ self.elements.content.bind(this+'.qtip-inactive', inactiveMethod);
1466
+ });
1467
+
1468
+ // Start the inactive timer
1469
+ inactiveMethod();
1470
+ };
1471
+
1472
+ // Clear hide timers
1473
+ clearTimeout(self.timers.show);
1474
+ clearTimeout(self.timers.hide);
1475
+
1476
+ // Start show timer
1477
+ self.timers.show = setTimeout(function(){ self.show(event); }, self.options.show.delay);
1478
+ };
1479
+
1480
+ // Define hide event method
1481
+ function hideMethod(event)
1482
+ {
1483
+ if(self.status.disabled === true) return;
1484
+
1485
+ // Prevent hiding if tooltip is fixed and event target is the tooltip
1486
+ if(self.options.hide.fixed === true
1487
+ && self.options.hide.when.event.search(/mouse(out|leave)/i) !== -1
1488
+ && $(event.relatedTarget).parents('div.qtip[qtip]').length > 0)
1489
+ {
1490
+ // Prevent default and popagation
1491
+ event.stopPropagation();
1492
+ event.preventDefault();
1493
+
1494
+ // Reset the hide timer
1495
+ clearTimeout(self.timers.hide);
1496
+ return false;
1497
+ };
1498
+
1499
+ // Clear timers and stop animation queue
1500
+ clearTimeout(self.timers.show);
1501
+ clearTimeout(self.timers.hide);
1502
+ self.elements.tooltip.stop(true, true);
1503
+
1504
+ // If tooltip has displayed, start hide timer
1505
+ self.timers.hide = setTimeout(function(){ self.hide(event); }, self.options.hide.delay);
1506
+ };
1507
+
1508
+ // Both events and targets are identical, apply events using a toggle
1509
+ if((self.options.show.when.target.add(self.options.hide.when.target).length === 1
1510
+ && self.options.show.when.event == self.options.hide.when.event
1511
+ && self.options.hide.when.event !== 'inactive')
1512
+ || self.options.hide.when.event == 'unfocus')
1513
+ {
1514
+ self.cache.toggle = 0;
1515
+ // Use a toggle to prevent hide/show conflicts
1516
+ showTarget.bind(self.options.show.when.event + '.qtip', function(event)
1517
+ {
1518
+ if(self.cache.toggle == 0) showMethod(event);
1519
+ else hideMethod(event);
1520
+ });
1521
+ }
1522
+
1523
+ // Events are not identical, bind normally
1524
+ else
1525
+ {
1526
+ showTarget.bind(self.options.show.when.event + '.qtip', showMethod);
1527
+
1528
+ // If the hide event is not 'inactive', bind the hide method
1529
+ if(self.options.hide.when.event !== 'inactive')
1530
+ hideTarget.bind(self.options.hide.when.event + '.qtip', hideMethod);
1531
+ };
1532
+
1533
+ // Focus the tooltip on mouseover
1534
+ if(self.options.position.type.search(/(fixed|absolute)/) !== -1)
1535
+ self.elements.tooltip.bind('mouseover.qtip', self.focus);
1536
+
1537
+ // If mouse is the target, update tooltip position on mousemove
1538
+ if(self.options.position.target === 'mouse' && self.options.position.type !== 'static')
1539
+ {
1540
+ showTarget.bind('mousemove.qtip', function(event)
1541
+ {
1542
+ // Set the new mouse positions if adjustment is enabled
1543
+ self.cache.mouse = { x: event.pageX, y: event.pageY };
1544
+
1545
+ // Update the tooltip position only if the tooltip is visible and adjustment is enabled
1546
+ if(self.status.disabled === false
1547
+ && self.options.position.adjust.mouse === true
1548
+ && self.options.position.type !== 'static'
1549
+ && self.elements.tooltip.css('display') !== 'none')
1550
+ self.updatePosition(event);
1551
+ });
1552
+ };
1553
+ };
1554
+
1555
+ // Screen position adjustment
1556
+ function screenAdjust(position, target, tooltip)
1557
+ {
1558
+ var self, adjustedPosition, adjust, newCorner, overflow, corner;
1559
+ self = this;
1560
+
1561
+ // Setup corner and adjustment variable
1562
+ if(tooltip.corner == 'center') return target.position // TODO: 'center' corner adjustment
1563
+ adjustedPosition = $.extend({}, position);
1564
+ newCorner = { x: false, y: false };
1565
+
1566
+ // Define overflow properties
1567
+ overflow = {
1568
+ left: (adjustedPosition.left < $.fn.qtip.cache.screen.scroll.left),
1569
+ right: (adjustedPosition.left + tooltip.dimensions.width + 2 >= $.fn.qtip.cache.screen.width + $.fn.qtip.cache.screen.scroll.left),
1570
+ top: (adjustedPosition.top < $.fn.qtip.cache.screen.scroll.top),
1571
+ bottom: (adjustedPosition.top + tooltip.dimensions.height + 2 >= $.fn.qtip.cache.screen.height + $.fn.qtip.cache.screen.scroll.top)
1572
+ };
1573
+
1574
+ // Determine new positioning properties
1575
+ adjust = {
1576
+ left: (overflow.left && (tooltip.corner.search(/right/i) != -1 || (tooltip.corner.search(/right/i) == -1 && !overflow.right))),
1577
+ right: (overflow.right && (tooltip.corner.search(/left/i) != -1 || (tooltip.corner.search(/left/i) == -1 && !overflow.left))),
1578
+ top: (overflow.top && tooltip.corner.search(/top/i) == -1),
1579
+ bottom: (overflow.bottom && tooltip.corner.search(/bottom/i) == -1)
1580
+ };
1581
+
1582
+ // Tooltip overflows off the left side of the screen
1583
+ if(adjust.left)
1584
+ {
1585
+ if(self.options.position.target !== 'mouse')
1586
+ adjustedPosition.left = target.position.left + target.dimensions.width;
1587
+ else
1588
+ adjustedPosition.left = self.cache.mouse.x
1589
+
1590
+ newCorner.x = 'Left';
1591
+ }
1592
+
1593
+ // Tooltip overflows off the right side of the screen
1594
+ else if(adjust.right)
1595
+ {
1596
+ if(self.options.position.target !== 'mouse')
1597
+ adjustedPosition.left = target.position.left - tooltip.dimensions.width;
1598
+ else
1599
+ adjustedPosition.left = self.cache.mouse.x - tooltip.dimensions.width;
1600
+
1601
+ newCorner.x = 'Right';
1602
+ };
1603
+
1604
+ // Tooltip overflows off the top of the screen
1605
+ if(adjust.top)
1606
+ {
1607
+ if(self.options.position.target !== 'mouse')
1608
+ adjustedPosition.top = target.position.top + target.dimensions.height;
1609
+ else
1610
+ adjustedPosition.top = self.cache.mouse.y
1611
+
1612
+ newCorner.y = 'top';
1613
+ }
1614
+
1615
+ // Tooltip overflows off the bottom of the screen
1616
+ else if(adjust.bottom)
1617
+ {
1618
+ if(self.options.position.target !== 'mouse')
1619
+ adjustedPosition.top = target.position.top - tooltip.dimensions.height;
1620
+ else
1621
+ adjustedPosition.top = self.cache.mouse.y - tooltip.dimensions.height;
1622
+
1623
+ newCorner.y = 'bottom';
1624
+ };
1625
+
1626
+ // Don't adjust if resulting position is negative
1627
+ if(adjustedPosition.left < 0)
1628
+ {
1629
+ adjustedPosition.left = position.left;
1630
+ newCorner.x = false;
1631
+ };
1632
+ if(adjustedPosition.top < 0)
1633
+ {
1634
+ adjustedPosition.top = position.top;
1635
+ newCorner.y = false;
1636
+ };
1637
+
1638
+ // Change tip corner if positioning has changed and tips are enabled
1639
+ if(self.options.style.tip.corner !== false)
1640
+ {
1641
+ // Determine new corner properties
1642
+ adjustedPosition.corner = new String(tooltip.corner);
1643
+ if(newCorner.x !== false) adjustedPosition.corner = adjustedPosition.corner.replace(/Left|Right|Middle/, newCorner.x);
1644
+ if(newCorner.y !== false) adjustedPosition.corner = adjustedPosition.corner.replace(/top|bottom/, newCorner.y);
1645
+
1646
+ // Adjust tip if position has changed and tips are enabled
1647
+ if(adjustedPosition.corner !== self.elements.tip.attr('rel'))
1648
+ createTip.call(self, adjustedPosition.corner);
1649
+ };
1650
+
1651
+ return adjustedPosition;
1652
+ };
1653
+
1654
+ // Build a jQuery style object from supplied style object
1655
+ function jQueryStyle(style, sub)
1656
+ {
1657
+ var styleObj, i;
1658
+
1659
+ styleObj = $.extend(true, {}, style);
1660
+ for(i in styleObj)
1661
+ {
1662
+ if(sub === true && i.search(/(tip|classes)/i) !== -1)
1663
+ delete styleObj[i];
1664
+ else if(!sub && i.search(/(width|border|tip|title|classes|user)/i) !== -1)
1665
+ delete styleObj[i];
1666
+ };
1667
+
1668
+ return styleObj;
1669
+ };
1670
+
1671
+ // Sanitize styles
1672
+ function sanitizeStyle(style)
1673
+ {
1674
+ if(typeof style.tip !== 'object') style.tip = { corner: style.tip };
1675
+ if(typeof style.tip.size !== 'object') style.tip.size = { width: style.tip.size, height: style.tip.size };
1676
+ if(typeof style.border !== 'object') style.border = { width: style.border };
1677
+ if(typeof style.width !== 'object') style.width = { value: style.width };
1678
+ if(typeof style.width.max == 'string') style.width.max = parseInt(style.width.max.replace(/([0-9]+)/i, "$1"));
1679
+ if(typeof style.width.min == 'string') style.width.min = parseInt(style.width.min.replace(/([0-9]+)/i, "$1"));
1680
+
1681
+ // Convert deprecated x and y tip values to width/height
1682
+ if(typeof style.tip.size.x == 'number')
1683
+ {
1684
+ style.tip.size.width = style.tip.size.x;
1685
+ delete style.tip.size.x;
1686
+ };
1687
+ if(typeof style.tip.size.y == 'number')
1688
+ {
1689
+ style.tip.size.height = style.tip.size.y;
1690
+ delete style.tip.size.y;
1691
+ };
1692
+
1693
+ return style;
1694
+ };
1695
+
1696
+ // Build styles recursively with inheritance
1697
+ function buildStyle()
1698
+ {
1699
+ var self, i, styleArray, styleExtend, finalStyle;
1700
+ self = this;
1701
+
1702
+ // Build style options from supplied arguments
1703
+ styleArray = [true, {}];
1704
+ for(i = 0; i < arguments.length; i++)
1705
+ styleArray.push(arguments[i]);
1706
+ styleExtend = [ $.extend.apply($, styleArray) ];
1707
+
1708
+ // Loop through each named style inheritance
1709
+ while(typeof styleExtend[0].name == 'string')
1710
+ {
1711
+ // Sanitize style data and append to extend array
1712
+ styleExtend.unshift( sanitizeStyle($.fn.qtip.styles[ styleExtend[0].name ]) );
1713
+ };
1714
+
1715
+ // Make sure resulting tooltip className represents final style
1716
+ styleExtend.unshift(true, {classes:{ tooltip: 'qtip-' + (arguments[0].name || 'defaults') }}, $.fn.qtip.styles.defaults);
1717
+
1718
+ // Extend into a single style object
1719
+ finalStyle = $.extend.apply($, styleExtend);
1720
+
1721
+ // Force even numbers for pixel precision
1722
+ if(finalStyle.tip.size.width % 2 > 0) finalStyle.tip.size.width += 1;
1723
+ if(finalStyle.tip.size.height % 2 > 0) finalStyle.tip.size.height += 1;
1724
+
1725
+ // Sanitize final styles tip corner value
1726
+ if(finalStyle.tip.corner === true)
1727
+ finalStyle.tip.corner = (self.options.position.corner.tooltip === 'center') ? false : self.options.position.corner.tooltip;
1728
+
1729
+ return finalStyle;
1730
+ };
1731
+
1732
+ // Tip coordinates calculator
1733
+ function calculateTip(corner, width, height)
1734
+ {
1735
+ // Define tip coordinates in terms of height and width values
1736
+ var tips = {
1737
+ bottomRight: [[0,0], [width,height], [width,0]],
1738
+ bottomLeft: [[0,0], [width,0], [0,height]],
1739
+ topRight: [[0,height], [width,0], [width,height]],
1740
+ topLeft: [[0,0], [0,height], [width,height]],
1741
+ topMiddle: [[0,height], [width / 2,0], [width,height]],
1742
+ bottomMiddle: [[0,0], [width,0], [width / 2,height]],
1743
+ rightMiddle: [[0,0], [width,height / 2], [0,height]],
1744
+ leftMiddle: [[width,0], [width,height], [0,height / 2]]
1745
+ };
1746
+ tips.leftTop = tips.bottomRight;
1747
+ tips.rightTop = tips.bottomLeft;
1748
+ tips.leftBottom = tips.topRight;
1749
+ tips.rightBottom = tips.topLeft;
1750
+
1751
+ return tips[corner];
1752
+ };
1753
+
1754
+ // Border coordinates calculator
1755
+ function calculateBorders(radius)
1756
+ {
1757
+ var borders;
1758
+
1759
+ // Use canvas element if supported
1760
+ if($('<canvas>').get(0).getContext)
1761
+ {
1762
+ borders = {
1763
+ topLeft: [radius,radius], topRight: [0,radius],
1764
+ bottomLeft: [radius,0], bottomRight: [0,0]
1765
+ };
1766
+ }
1767
+
1768
+ // Canvas not supported - Use VML (IE)
1769
+ else
1770
+ {
1771
+ borders = {
1772
+ topLeft: [-90,90,0], topRight: [-90,90,-radius],
1773
+ bottomLeft: [90,270,0], bottomRight: [90, 270,-radius]
1774
+ };
1775
+ };
1776
+
1777
+ return borders;
1778
+ };
1779
+
1780
+ // BGIFRAME JQUERY PLUGIN ADAPTION
1781
+ // Special thanks to Brandon Aaron for this plugin
1782
+ // http://plugins.jquery.com/project/bgiframe
1783
+ function bgiframe()
1784
+ {
1785
+ var self, html, dimensions;
1786
+ self = this;
1787
+ dimensions = self.getDimensions();
1788
+
1789
+ // Setup iframe HTML string
1790
+ html = '<iframe class="qtip-bgiframe" frameborder="0" tabindex="-1" src="javascript:false" '+
1791
+ 'style="display:block; position:absolute; z-index:-1; filter:alpha(opacity=\'0\'); border: 1px solid red; ' +
1792
+ 'height:'+dimensions.height+'px; width:'+dimensions.width+'px" />';
1793
+
1794
+ // Append the new HTML and setup element reference
1795
+ self.elements.bgiframe = self.elements.wrapper.prepend(html).children('.qtip-bgiframe:first');
1796
+ };
1797
+
1798
+ // Assign cache and event initialisation on document load
1799
+ $(document).ready(function()
1800
+ {
1801
+ // Setup library cache with window scroll and dimensions of document
1802
+ $.fn.qtip.cache = {
1803
+ screen: {
1804
+ scroll: { left: $(window).scrollLeft(), top: $(window).scrollTop() },
1805
+ width: $(window).width(),
1806
+ height: $(window).height()
1807
+ }
1808
+ };
1809
+
1810
+ // Adjust positions of the tooltips on window resize or scroll if enabled
1811
+ var adjustTimer;
1812
+ $(window).bind('resize scroll', function(event)
1813
+ {
1814
+ clearTimeout(adjustTimer);
1815
+ adjustTimer = setTimeout(function()
1816
+ {
1817
+ // Readjust cached screen values
1818
+ if(event.type === 'scroll')
1819
+ $.fn.qtip.cache.screen.scroll = { left: $(window).scrollLeft(), top: $(window).scrollTop() };
1820
+ else
1821
+ {
1822
+ $.fn.qtip.cache.screen.width = $(window).width();
1823
+ $.fn.qtip.cache.screen.height = $(window).height();
1824
+ };
1825
+
1826
+ for(i = 0; i < $.fn.qtip.interfaces.length; i++)
1827
+ {
1828
+ // Access current elements API
1829
+ var api = $.fn.qtip.interfaces[i];
1830
+
1831
+ // Update position if resize or scroll adjustments are enabled
1832
+ if(api.status.rendered === true
1833
+ && (api.options.position.type !== 'static'
1834
+ || api.options.position.adjust.scroll && event.type === 'scroll'
1835
+ || api.options.position.adjust.resize && event.type === 'resize'))
1836
+ {
1837
+ // Queue the animation so positions are updated correctly
1838
+ api.updatePosition(event, true);
1839
+ }
1840
+ };
1841
+ }
1842
+ , 100);
1843
+ })
1844
+
1845
+ // Hide unfocus toolipts on document mousedown
1846
+ $(document).bind('mousedown.qtip', function(event)
1847
+ {
1848
+ if($(event.target).parents('div.qtip').length === 0)
1849
+ {
1850
+ $('.qtip[unfocus]').each(function()
1851
+ {
1852
+ var api = $(this).qtip("api");
1853
+
1854
+ // Only hide if its visible and not the tooltips target
1855
+ if($(this).is(':visible') && !api.status.disabled
1856
+ && $(event.target).add(api.elements.target).length > 1)
1857
+ api.hide(event);
1858
+ })
1859
+ };
1860
+ })
1861
+ });
1862
+
1863
+ // Define qTip API interfaces array
1864
+ $.fn.qtip.interfaces = []
1865
+
1866
+ // Define log and constant place holders
1867
+ $.fn.qtip.log = { error: function(){ return this; } };
1868
+ $.fn.qtip.constants = {};
1869
+
1870
+ // Define configuration defaults
1871
+ $.fn.qtip.defaults = {
1872
+ // Content
1873
+ content: {
1874
+ prerender: false,
1875
+ text: false,
1876
+ url: false,
1877
+ data: null,
1878
+ title: {
1879
+ text: false,
1880
+ button: false
1881
+ }
1882
+ },
1883
+ // Position
1884
+ position: {
1885
+ target: false,
1886
+ corner: {
1887
+ target: 'bottomRight',
1888
+ tooltip: 'topLeft'
1889
+ },
1890
+ adjust: {
1891
+ x: 0, y: 0,
1892
+ mouse: true,
1893
+ screen: false,
1894
+ scroll: true,
1895
+ resize: true
1896
+ },
1897
+ type: 'absolute',
1898
+ container: false
1899
+ },
1900
+ // Effects
1901
+ show: {
1902
+ when: {
1903
+ target: false,
1904
+ event: 'mouseover'
1905
+ },
1906
+ effect: {
1907
+ type: 'fade',
1908
+ length: 100
1909
+ },
1910
+ delay: 140,
1911
+ solo: false,
1912
+ ready: false
1913
+ },
1914
+ hide: {
1915
+ when: {
1916
+ target: false,
1917
+ event: 'mouseout'
1918
+ },
1919
+ effect: {
1920
+ type: 'fade',
1921
+ length: 100
1922
+ },
1923
+ delay: 0,
1924
+ fixed: false
1925
+ },
1926
+ // Callbacks
1927
+ api: {
1928
+ beforeRender: function(){},
1929
+ onRender: function(){},
1930
+ beforePositionUpdate: function(){},
1931
+ onPositionUpdate: function(){},
1932
+ beforeShow: function(){},
1933
+ onShow: function(){},
1934
+ beforeHide: function(){},
1935
+ onHide: function(){},
1936
+ beforeContentUpdate: function(){},
1937
+ onContentUpdate: function(){},
1938
+ beforeContentLoad: function(){},
1939
+ onContentLoad: function(){},
1940
+ beforeTitleUpdate: function(){},
1941
+ onTitleUpdate: function(){},
1942
+ beforeDestroy: function(){},
1943
+ onDestroy: function(){},
1944
+ beforeFocus: function(){},
1945
+ onFocus: function(){}
1946
+ }
1947
+ };
1948
+
1949
+ $.fn.qtip.styles = {
1950
+ defaults: {
1951
+ background: 'white',
1952
+ color: '#111',
1953
+ overflow: 'hidden',
1954
+ textAlign: 'left',
1955
+ width: {
1956
+ min: 0,
1957
+ max: 250
1958
+ },
1959
+ padding: '5px 9px',
1960
+ border: {
1961
+ width: 1,
1962
+ radius: 0,
1963
+ color: '#d3d3d3'
1964
+ },
1965
+ tip: {
1966
+ corner: false,
1967
+ color: false,
1968
+ size: { width: 13, height: 13 },
1969
+ opacity: 1
1970
+ },
1971
+ title: {
1972
+ background: '#e1e1e1',
1973
+ fontWeight: 'bold',
1974
+ padding: '7px 12px'
1975
+ },
1976
+ button: {
1977
+ cursor: 'pointer'
1978
+ },
1979
+ classes: {
1980
+ target: '',
1981
+ tip: 'qtip-tip',
1982
+ title: 'qtip-title',
1983
+ button: 'qtip-button',
1984
+ content: 'qtip-content',
1985
+ active: 'qtip-active'
1986
+ }
1987
+ },
1988
+ cream: {
1989
+ border: {
1990
+ width: 3,
1991
+ radius: 0,
1992
+ color: '#F9E98E'
1993
+ },
1994
+ title: {
1995
+ background: '#F0DE7D',
1996
+ color: '#A27D35'
1997
+ },
1998
+ background: '#FBF7AA',
1999
+ color: '#A27D35',
2000
+
2001
+ classes: { tooltip: 'qtip-cream' }
2002
+ },
2003
+ light: {
2004
+ border: {
2005
+ width: 3,
2006
+ radius: 0,
2007
+ color: '#E2E2E2'
2008
+ },
2009
+ title: {
2010
+ background: '#f1f1f1',
2011
+ color: '#454545'
2012
+ },
2013
+ background: 'white',
2014
+ color: '#454545',
2015
+
2016
+ classes: { tooltip: 'qtip-light' }
2017
+ },
2018
+ dark: {
2019
+ border: {
2020
+ width: 3,
2021
+ radius: 0,
2022
+ color: '#303030'
2023
+ },
2024
+ title: {
2025
+ background: '#404040',
2026
+ color: '#f3f3f3'
2027
+ },
2028
+ background: '#505050',
2029
+ color: '#f3f3f3',
2030
+
2031
+ classes: { tooltip: 'qtip-dark' }
2032
+ },
2033
+ red: {
2034
+ border: {
2035
+ width: 3,
2036
+ radius: 0,
2037
+ color: '#CE6F6F'
2038
+ },
2039
+ title: {
2040
+ background: '#f28279',
2041
+ color: '#9C2F2F'
2042
+ },
2043
+ background: '#F79992',
2044
+ color: '#9C2F2F',
2045
+
2046
+ classes: { tooltip: 'qtip-red' }
2047
+ },
2048
+ green: {
2049
+ border: {
2050
+ width: 3,
2051
+ radius: 0,
2052
+ color: '#A9DB66'
2053
+ },
2054
+ title: {
2055
+ background: '#b9db8c',
2056
+ color: '#58792E'
2057
+ },
2058
+ background: '#CDE6AC',
2059
+ color: '#58792E',
2060
+
2061
+ classes: { tooltip: 'qtip-green' }
2062
+ },
2063
+ blue: {
2064
+ border: {
2065
+ width: 3,
2066
+ radius: 0,
2067
+ color: '#ADD9ED'
2068
+ },
2069
+ title: {
2070
+ background: '#D0E9F5',
2071
+ color: '#5E99BD'
2072
+ },
2073
+ background: '#E5F6FE',
2074
+ color: '#4D9FBF',
2075
+
2076
+ classes: { tooltip: 'qtip-blue' }
2077
+ }
2078
+ };
2079
+ })(jQuery);
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+