rules_engine 0.0.1 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (461) hide show
  1. data/README.textile +178 -0
  2. data/VERSION +1 -1
  3. data/lib/rules_engine.rb +17 -1
  4. data/lib/rules_engine/discovery.rb +2 -3
  5. data/lib/rules_engine/job.rb +120 -0
  6. data/lib/rules_engine/rule.rb +49 -24
  7. data/lib/rules_engine/rule_outcome.rb +1 -2
  8. data/lib/rules_engine_view/alerts.rb +56 -0
  9. data/lib/rules_engine_view/boxes.rb +32 -0
  10. data/lib/rules_engine_view/buttons.rb +91 -0
  11. data/lib/rules_engine_view/defer.rb +27 -0
  12. data/lib/rules_engine_view/form_builder.rb +63 -0
  13. data/lib/rules_engine_view/form_fields.rb +41 -0
  14. data/lib/rules_engine_view/form_styles.rb +107 -0
  15. data/lib/rules_engine_view/model_loader.rb +71 -0
  16. data/lib/rules_engine_view/navigate.rb +44 -0
  17. data/rails_generators/manifests/rules_engine.rb +392 -0
  18. data/rails_generators/manifests/rules_engine.yml +98 -0
  19. data/rails_generators/manifests/rules_engine_complex.rb +30 -0
  20. data/rails_generators/manifests/rules_engine_complex.yml +25 -0
  21. data/rails_generators/manifests/rules_engine_simple.rb +26 -0
  22. data/rails_generators/manifests/rules_engine_simple.yml +22 -0
  23. data/rails_generators/rules_engine_generator.rb +49 -23
  24. data/rails_generators/templates/app/controllers/re_jobs_controller.rb +8 -6
  25. data/rails_generators/templates/app/controllers/re_pipeline_jobs_controller.rb +6 -7
  26. data/rails_generators/templates/app/controllers/re_pipelines_controller.rb +36 -16
  27. data/rails_generators/templates/app/controllers/re_rules_controller.rb +49 -51
  28. data/rails_generators/templates/app/helpers/re_pipeline_helper.rb +0 -15
  29. data/rails_generators/templates/app/models/re_job.rb +55 -62
  30. data/rails_generators/templates/app/models/re_job_audit.rb +3 -7
  31. data/rails_generators/templates/app/models/re_pipeline.rb +1 -23
  32. data/rails_generators/templates/app/models/re_pipeline_activated.rb +3 -0
  33. data/rails_generators/templates/app/models/re_pipeline_activated_observer.rb +4 -4
  34. data/rails_generators/templates/app/models/re_pipeline_base.rb +5 -5
  35. data/rails_generators/templates/app/models/re_rule.rb +71 -24
  36. data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +30 -0
  37. data/rails_generators/templates/app/rules/complex_rule.rb +133 -0
  38. data/rails_generators/templates/app/rules/simple_rule.rb +77 -0
  39. data/rails_generators/templates/app/views/layouts/rules_engine.html.erb +40 -0
  40. data/rails_generators/templates/app/views/re_jobs/_empty.html.erb +7 -4
  41. data/rails_generators/templates/app/views/re_jobs/_index_large.html.erb +79 -0
  42. data/rails_generators/templates/app/views/re_jobs/_index_small.html.erb +42 -0
  43. data/rails_generators/templates/app/views/re_jobs/_show.html.erb +11 -16
  44. data/rails_generators/templates/app/views/re_jobs/index.html.erb +11 -19
  45. data/rails_generators/templates/app/views/re_jobs/index.js.erb +9 -6
  46. data/rails_generators/templates/app/views/re_jobs/show.html.erb +10 -8
  47. data/rails_generators/templates/app/views/re_jobs/show.js.erb +4 -1
  48. data/rails_generators/templates/app/views/re_pipeline_jobs/index.html.erb +10 -16
  49. data/rails_generators/templates/app/views/re_pipeline_jobs/index.js.erb +10 -8
  50. data/rails_generators/templates/app/views/re_pipelines/_change.html.erb +17 -15
  51. data/rails_generators/templates/app/views/re_pipelines/_change_actions.html.erb +12 -12
  52. data/rails_generators/templates/app/views/re_pipelines/_confirm.html.erb +14 -15
  53. data/rails_generators/templates/app/views/re_pipelines/_edit.html.erb +7 -8
  54. data/rails_generators/templates/app/views/re_pipelines/_empty.html.erb +4 -4
  55. data/rails_generators/templates/app/views/re_pipelines/_index.html.erb +25 -19
  56. data/rails_generators/templates/app/views/re_pipelines/_new.html.erb +6 -6
  57. data/rails_generators/templates/app/views/re_pipelines/_show.html.erb +22 -18
  58. data/rails_generators/templates/app/views/re_pipelines/change.html.erb +8 -8
  59. data/rails_generators/templates/app/views/re_pipelines/create.js.erb +6 -5
  60. data/rails_generators/templates/app/views/re_pipelines/edit.html.erb +5 -4
  61. data/rails_generators/templates/app/views/re_pipelines/edit.js.erb +6 -3
  62. data/rails_generators/templates/app/views/re_pipelines/index.html.erb +65 -9
  63. data/rails_generators/templates/app/views/re_pipelines/index.js.erb +18 -0
  64. data/rails_generators/templates/app/views/re_pipelines/new.html.erb +2 -2
  65. data/rails_generators/templates/app/views/re_pipelines/new.js.erb +3 -3
  66. data/rails_generators/templates/app/views/re_pipelines/show.html.erb +17 -19
  67. data/rails_generators/templates/app/views/re_pipelines/template.html.erb +198 -0
  68. data/rails_generators/templates/app/views/re_pipelines/update.js.erb +7 -6
  69. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_edit.html.erb +7 -0
  70. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_help.html.erb +1 -0
  71. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_new.html.erb +7 -0
  72. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_pipeline.html.erb +22 -0
  73. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_script.html.erb +26 -0
  74. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_title.html.erb +7 -0
  75. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_word.html.erb +13 -0
  76. data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_words.html.erb +16 -0
  77. data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_edit.html.erb +1 -0
  78. data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_form.html.erb +16 -0
  79. data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_help.html.erb +1 -0
  80. data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_new.html.erb +1 -0
  81. data/rails_generators/templates/app/views/re_rules/_change.html.erb +25 -25
  82. data/rails_generators/templates/app/views/re_rules/_edit.html.erb +7 -16
  83. data/rails_generators/templates/app/views/re_rules/_empty.html.erb +4 -4
  84. data/rails_generators/templates/app/views/re_rules/_empty.js.erb +3 -3
  85. data/rails_generators/templates/app/views/re_rules/_error.html.erb +2 -0
  86. data/rails_generators/templates/app/views/re_rules/_help.html.erb +5 -5
  87. data/rails_generators/templates/app/views/re_rules/_index.html.erb +15 -15
  88. data/rails_generators/templates/app/views/re_rules/_menu.html.erb +32 -36
  89. data/rails_generators/templates/app/views/re_rules/_new.html.erb +9 -18
  90. data/rails_generators/templates/app/views/re_rules/_show.html.erb +17 -17
  91. data/rails_generators/templates/app/views/re_rules/destroy.js.erb +7 -6
  92. data/rails_generators/templates/app/views/re_rules/edit.html.erb +6 -5
  93. data/rails_generators/templates/app/views/re_rules/edit.js.erb +6 -3
  94. data/rails_generators/templates/app/views/re_rules/error.html.erb +6 -5
  95. data/rails_generators/templates/app/views/re_rules/error.js.erb +6 -2
  96. data/rails_generators/templates/app/views/re_rules/help.html.erb +6 -5
  97. data/rails_generators/templates/app/views/re_rules/help.js.erb +3 -1
  98. data/rails_generators/templates/app/views/re_rules/new.html.erb +14 -10
  99. data/rails_generators/templates/app/views/re_rules/new.js.erb +7 -3
  100. data/rails_generators/templates/app/views/re_rules/update.js.erb +11 -10
  101. data/rails_generators/templates/db/migrate/20100308225008_create_re_pipelines.rb +13 -10
  102. data/rails_generators/templates/doc/README.rules_engine +151 -0
  103. data/rails_generators/templates/doc/README.rules_engine_features +67 -0
  104. data/rails_generators/templates/doc/README.rules_engine_view +90 -0
  105. data/rails_generators/templates/features/re_pipeline/lookup.feature +16 -0
  106. data/rails_generators/templates/features/step_definitions/common/re_debug_steps.rb +14 -0
  107. data/rails_generators/templates/features/step_definitions/common/re_error_steps.rb +77 -0
  108. data/rails_generators/templates/features/step_definitions/common/re_form_steps.rb +59 -0
  109. data/rails_generators/templates/features/step_definitions/common/re_model_steps.rb +85 -0
  110. data/rails_generators/templates/features/step_definitions/common/re_user_steps.rb +52 -0
  111. data/rails_generators/templates/features/step_definitions/common/re_view_steps.rb +49 -0
  112. data/rails_generators/templates/features/support/blueprint_re_pipelines.rb +20 -0
  113. data/rails_generators/templates/features/support/rules_engine.rb +28 -0
  114. data/rails_generators/templates/lib/tasks/re_execute.rake +19 -0
  115. data/rails_generators/templates/public/javascripts/jquery-1.4.2.min.js +154 -0
  116. data/rails_generators/templates/public/javascripts/jquery.autocomplete.pack.js +13 -0
  117. data/rails_generators/templates/public/javascripts/jquery.blockUI.js +486 -0
  118. data/rails_generators/templates/public/javascripts/jquery.fancybox-1.3.1.js +1077 -0
  119. data/rails_generators/templates/public/javascripts/re_job_index.js +75 -0
  120. data/rails_generators/templates/public/javascripts/re_pipeline_change.js +85 -96
  121. data/rails_generators/templates/public/javascripts/re_pipeline_index.js +23 -7
  122. data/rails_generators/templates/public/javascripts/re_pipeline_index_jobs.js +10 -0
  123. data/rails_generators/templates/public/javascripts/re_pipeline_new.js +15 -19
  124. data/rails_generators/templates/public/javascripts/re_pipeline_show_jobs.js +11 -0
  125. data/rails_generators/templates/public/javascripts/re_view.js +132 -0
  126. data/rails_generators/templates/public/stylesheets/blueprint/ie.css +35 -0
  127. data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
  128. data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
  129. data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
  130. data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
  131. data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
  132. data/rails_generators/templates/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
  133. data/rails_generators/templates/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
  134. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
  135. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
  136. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
  137. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
  138. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
  139. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
  140. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
  141. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
  142. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
  143. data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
  144. data/rails_generators/templates/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
  145. data/rails_generators/templates/public/stylesheets/blueprint/plugins/rtl/screen.css +110 -0
  146. data/rails_generators/templates/public/stylesheets/blueprint/print.css +29 -0
  147. data/rails_generators/templates/public/stylesheets/blueprint/screen.css +258 -0
  148. data/rails_generators/templates/public/stylesheets/blueprint/src/forms.css +65 -0
  149. data/rails_generators/templates/public/stylesheets/blueprint/src/grid.css +280 -0
  150. data/rails_generators/templates/public/stylesheets/blueprint/src/grid.png +0 -0
  151. data/rails_generators/templates/public/stylesheets/blueprint/src/ie.css +76 -0
  152. data/rails_generators/templates/public/stylesheets/blueprint/src/print.css +85 -0
  153. data/rails_generators/templates/public/stylesheets/blueprint/src/reset.css +45 -0
  154. data/rails_generators/templates/public/stylesheets/blueprint/src/typography.css +106 -0
  155. data/rails_generators/templates/public/stylesheets/fancybox/blank.gif +0 -0
  156. data/rails_generators/templates/public/stylesheets/fancybox/fancy_close.png +0 -0
  157. data/rails_generators/templates/public/stylesheets/fancybox/fancy_loading.png +0 -0
  158. data/rails_generators/templates/public/stylesheets/fancybox/fancy_nav_left.png +0 -0
  159. data/rails_generators/templates/public/stylesheets/fancybox/fancy_nav_right.png +0 -0
  160. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_e.png +0 -0
  161. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_n.png +0 -0
  162. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_ne.png +0 -0
  163. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_nw.png +0 -0
  164. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_s.png +0 -0
  165. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_se.png +0 -0
  166. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_sw.png +0 -0
  167. data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_w.png +0 -0
  168. data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_left.png +0 -0
  169. data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_main.png +0 -0
  170. data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_over.png +0 -0
  171. data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_right.png +0 -0
  172. data/rails_generators/templates/public/stylesheets/fancybox/fancybox-x.png +0 -0
  173. data/rails_generators/templates/public/stylesheets/fancybox/fancybox-y.png +0 -0
  174. data/rails_generators/templates/public/stylesheets/fancybox/fancybox.png +0 -0
  175. data/rails_generators/templates/public/stylesheets/fancybox/jquery.fancybox-1.3.1.css +363 -0
  176. data/rails_generators/templates/public/stylesheets/jquery.autocomplete.css +53 -0
  177. data/rails_generators/templates/public/stylesheets/re_view.css +131 -0
  178. data/rails_generators/templates/public/stylesheets/re_view_box.css +119 -0
  179. data/rails_generators/templates/public/stylesheets/{re_pipeline → re_view_box}/accept.png +0 -0
  180. data/rails_generators/templates/public/stylesheets/{re_pipeline → re_view_box}/exclamation.png +0 -0
  181. data/rails_generators/templates/public/stylesheets/re_view_box/shadowbox.jpg +0 -0
  182. data/rails_generators/templates/public/stylesheets/re_view_box/shadowbox.png +0 -0
  183. data/rails_generators/templates/public/stylesheets/re_view_box/whitebox.jpg +0 -0
  184. data/rails_generators/templates/public/stylesheets/re_view_button.css +118 -0
  185. data/rails_generators/templates/public/stylesheets/re_view_button/checked-off.gif +0 -0
  186. data/rails_generators/templates/public/stylesheets/re_view_button/checked-on.gif +0 -0
  187. data/rails_generators/templates/public/{images/re_rule_class/add-18.png → stylesheets/re_view_button/icon-add.png} +0 -0
  188. data/rails_generators/templates/public/{images/re_pipeline/destroy-18.png → stylesheets/re_view_button/icon-delete.png} +0 -0
  189. data/rails_generators/templates/public/stylesheets/re_view_button/oval-blue-left.gif +0 -0
  190. data/rails_generators/templates/public/stylesheets/re_view_button/oval-blue-right.gif +0 -0
  191. data/rails_generators/templates/public/stylesheets/re_view_button/oval-gray-left.gif +0 -0
  192. data/rails_generators/templates/public/stylesheets/re_view_button/oval-gray-right.gif +0 -0
  193. data/rails_generators/templates/public/stylesheets/re_view_button/oval-green-left.gif +0 -0
  194. data/rails_generators/templates/public/stylesheets/re_view_button/oval-green-right.gif +0 -0
  195. data/rails_generators/templates/public/stylesheets/re_view_button/oval-orange-left.gif +0 -0
  196. data/rails_generators/templates/public/stylesheets/re_view_button/oval-orange-right.gif +0 -0
  197. data/rails_generators/templates/public/stylesheets/re_view_button/oval-red-left.gif +0 -0
  198. data/rails_generators/templates/public/stylesheets/re_view_button/oval-red-right.gif +0 -0
  199. data/rails_generators/templates/public/stylesheets/re_view_error.css +60 -0
  200. data/rails_generators/templates/public/{images/re_job/error-18.png → stylesheets/re_view_error/re-alert-close.png} +0 -0
  201. data/rails_generators/templates/public/stylesheets/re_view_form.css +120 -0
  202. data/rails_generators/templates/public/stylesheets/re_view_navigate.css +46 -0
  203. data/rails_generators/templates/public/stylesheets/re_view_navigate/breadcrumb.png +0 -0
  204. data/rails_generators/templates/public/stylesheets/re_view_table.css +137 -0
  205. data/rails_generators/templates/public/stylesheets/rules_engine.css +520 -0
  206. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-14.png +0 -0
  207. data/rails_generators/templates/public/{images/re_pipeline/__destroy-18.png → stylesheets/rules_engine/re_job/error-18.png} +0 -0
  208. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-25.png +0 -0
  209. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-48.png +0 -0
  210. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-14.png +0 -0
  211. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-18.png +0 -0
  212. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-25.png +0 -0
  213. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-48.png +0 -0
  214. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-14.png +0 -0
  215. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-18.png +0 -0
  216. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-25.png +0 -0
  217. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-48.png +0 -0
  218. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/loadingAnimation.gif +0 -0
  219. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-14.png +0 -0
  220. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-18.png +0 -0
  221. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-25.png +0 -0
  222. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-48.png +0 -0
  223. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-14.png +0 -0
  224. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-18.png +0 -0
  225. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-25.png +0 -0
  226. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-48.png +0 -0
  227. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-14.png +0 -0
  228. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-18.png +0 -0
  229. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-25.png +0 -0
  230. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-48.png +0 -0
  231. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-14.png +0 -0
  232. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-18.png +0 -0
  233. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-25.png +0 -0
  234. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-48.png +0 -0
  235. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-14.png +0 -0
  236. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-18.png +0 -0
  237. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-25.png +0 -0
  238. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-48.png +0 -0
  239. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-14.png +0 -0
  240. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-18.png +0 -0
  241. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-25.png +0 -0
  242. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-48.png +0 -0
  243. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-14.png +0 -0
  244. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-18.png +0 -0
  245. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-25.png +0 -0
  246. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-48.png +0 -0
  247. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-14.png +0 -0
  248. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-18.png +0 -0
  249. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-25.png +0 -0
  250. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-48.png +0 -0
  251. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-14.png +0 -0
  252. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-18.png +0 -0
  253. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-25.png +0 -0
  254. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-48.png +0 -0
  255. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-14.png +0 -0
  256. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-18.png +0 -0
  257. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-25.png +0 -0
  258. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-48.png +0 -0
  259. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-14.png +0 -0
  260. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-18.png +0 -0
  261. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-25.png +0 -0
  262. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-48.png +0 -0
  263. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-14.png +0 -0
  264. data/rails_generators/templates/public/{images/re_rule → stylesheets/rules_engine/re_pipeline}/destroy-18.png +0 -0
  265. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-25.png +0 -0
  266. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-48.png +0 -0
  267. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-14.png +0 -0
  268. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-18.png +0 -0
  269. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-25.png +0 -0
  270. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-48.png +0 -0
  271. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-14.png +0 -0
  272. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-18.png +0 -0
  273. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-25.png +0 -0
  274. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-48.png +0 -0
  275. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-14.png +0 -0
  276. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-18.png +0 -0
  277. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-25.png +0 -0
  278. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-48.png +0 -0
  279. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-down.png +0 -0
  280. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-right.png +0 -0
  281. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-14.png +0 -0
  282. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-18.png +0 -0
  283. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-25.png +0 -0
  284. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-48.png +0 -0
  285. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-14.png +0 -0
  286. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-18.png +0 -0
  287. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-25.png +0 -0
  288. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-48.png +0 -0
  289. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-14.png +0 -0
  290. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-18.png +0 -0
  291. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-25.png +0 -0
  292. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-48.png +0 -0
  293. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-14.png +0 -0
  294. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-18.png +0 -0
  295. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-25.png +0 -0
  296. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-48.png +0 -0
  297. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-14.png +0 -0
  298. data/rails_generators/templates/public/stylesheets/rules_engine/re_rule/destroy-18.png +0 -0
  299. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-25.png +0 -0
  300. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-48.png +0 -0
  301. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-14.png +0 -0
  302. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-18.png +0 -0
  303. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-25.png +0 -0
  304. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-48.png +0 -0
  305. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-14.png +0 -0
  306. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-18.png +0 -0
  307. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-25.png +0 -0
  308. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-48.png +0 -0
  309. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-14.png +0 -0
  310. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-18.png +0 -0
  311. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-25.png +0 -0
  312. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-48.png +0 -0
  313. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-14.png +0 -0
  314. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-18.png +0 -0
  315. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-25.png +0 -0
  316. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-48.png +0 -0
  317. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-14.png +0 -0
  318. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-18.png +0 -0
  319. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-25.png +0 -0
  320. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-48.png +0 -0
  321. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-14.png +0 -0
  322. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-18.png +0 -0
  323. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-25.png +0 -0
  324. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-48.png +0 -0
  325. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-14.png +0 -0
  326. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-18.png +0 -0
  327. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-25.png +0 -0
  328. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-48.png +0 -0
  329. data/rails_generators/templates/public/{images/re_rule/goto-pipeline-14.png → stylesheets/rules_engine/re_rule/start-pipeline-14.png} +0 -0
  330. data/rails_generators/templates/public/{images/re_rule/goto-pipeline-18.png → stylesheets/rules_engine/re_rule/start-pipeline-18.png} +0 -0
  331. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-14.png +0 -0
  332. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-18.png +0 -0
  333. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-25.png +0 -0
  334. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-48.png +0 -0
  335. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-14.png +0 -0
  336. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-18.png +0 -0
  337. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-25.png +0 -0
  338. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-48.png +0 -0
  339. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-14.png +0 -0
  340. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-18.png +0 -0
  341. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-25.png +0 -0
  342. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-48.png +0 -0
  343. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-14.png +0 -0
  344. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-18.png +0 -0
  345. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-25.png +0 -0
  346. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-48.png +0 -0
  347. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-14.png +0 -0
  348. data/rails_generators/templates/public/stylesheets/rules_engine/re_rule_class/add-18.png +0 -0
  349. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-25.png +0 -0
  350. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-48.png +0 -0
  351. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-14.png +0 -0
  352. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-18.png +0 -0
  353. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-25.png +0 -0
  354. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-48.png +0 -0
  355. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/list-down.png +0 -0
  356. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/list-right.png +0 -0
  357. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-14.png +0 -0
  358. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-18.png +0 -0
  359. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-25.png +0 -0
  360. data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-48.png +0 -0
  361. data/rails_generators/templates/spec/controllers/re_jobs_controller_spec.rb +50 -0
  362. data/rails_generators/templates/spec/controllers/re_pipeline_jobs_controller_spec.rb +37 -0
  363. data/rails_generators/templates/spec/controllers/re_pipelines_controller_spec.rb +423 -83
  364. data/rails_generators/templates/spec/controllers/re_rules_controller_spec.rb +390 -0
  365. data/rails_generators/templates/spec/helpers/re_pipeline_helper_spec.rb +29 -0
  366. data/rails_generators/templates/spec/lib/rules/complex_rule_spec.rb +336 -0
  367. data/rails_generators/templates/spec/lib/rules/simple_rule_spec.rb +168 -0
  368. data/rails_generators/templates/spec/models/re_job_audit_spec.rb +1 -2
  369. data/rails_generators/templates/spec/models/re_job_spec.rb +157 -1
  370. data/rails_generators/templates/spec/models/re_pipeline_activated_observer_spec.rb +28 -0
  371. data/rails_generators/templates/spec/models/re_pipeline_activated_spec.rb +65 -0
  372. data/rails_generators/templates/spec/models/re_pipeline_base_spec.rb +37 -30
  373. data/rails_generators/templates/spec/models/re_pipeline_spec.rb +33 -1
  374. data/rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb +73 -0
  375. data/rails_generators/templates/spec/models/re_rule_spec.rb +266 -68
  376. data/rails_generators/templates/spec/support/rules_engine_macros.rb +23 -0
  377. data/spec/railsenv/app/controllers/application_controller.rb +10 -0
  378. data/spec/railsenv/app/rules/mock_rule.rb +11 -0
  379. data/spec/railsenv/config/boot.rb +110 -0
  380. data/spec/railsenv/config/database.yml +22 -0
  381. data/spec/railsenv/config/environment.rb +41 -0
  382. data/spec/railsenv/config/environments/development.rb +17 -0
  383. data/spec/railsenv/config/environments/production.rb +28 -0
  384. data/spec/railsenv/config/environments/test.rb +28 -0
  385. data/spec/railsenv/config/initializers/backtrace_silencers.rb +7 -0
  386. data/spec/railsenv/config/initializers/inflections.rb +10 -0
  387. data/spec/railsenv/config/initializers/mime_types.rb +5 -0
  388. data/spec/railsenv/config/initializers/new_rails_defaults.rb +19 -0
  389. data/spec/railsenv/config/initializers/session_store.rb +15 -0
  390. data/spec/railsenv/config/locales/en.yml +5 -0
  391. data/spec/railsenv/config/routes.rb +43 -0
  392. data/spec/railsenv/db/test.sqlite3 +1 -0
  393. data/spec/railsenv/log/debug.log +1 -0
  394. data/spec/railsenv/log/test.log +1 -0
  395. data/spec/rcov.opts +3 -0
  396. data/spec/rules_engine/cache_spec.rb +18 -0
  397. data/spec/rules_engine/discovery_spec.rb +32 -0
  398. data/spec/rules_engine/job_spec.rb +266 -0
  399. data/spec/rules_engine/rule_spec.rb +76 -0
  400. data/spec/rules_engine_view/alerts_spec.rb +142 -0
  401. data/spec/rules_engine_view/boxes_spec.rb +33 -0
  402. data/spec/rules_engine_view/buttons_spec.rb +123 -0
  403. data/spec/rules_engine_view/defer_spec.rb +50 -0
  404. data/spec/rules_engine_view/form_builder_fields_spec.rb +161 -0
  405. data/spec/rules_engine_view/form_builder_spec.rb +17 -0
  406. data/spec/rules_engine_view/form_fields_spec.rb +180 -0
  407. data/spec/rules_engine_view/form_styles_spec.rb +254 -0
  408. data/spec/rules_engine_view/model_loader_spec.rb +177 -0
  409. data/spec/rules_engine_view/navigate_spec.rb +55 -0
  410. data/spec/spec.opts +4 -1
  411. data/spec/spec_helper.rb +16 -4
  412. metadata +374 -213
  413. data/README.rdoc +0 -17
  414. data/lib/rules_engine/job_runner.rb +0 -115
  415. data/rails_generators/USAGE +0 -68
  416. data/rails_generators/blacklist_word.yml +0 -6
  417. data/rails_generators/blacklist_word_manifest.rb +0 -26
  418. data/rails_generators/generator.yml +0 -58
  419. data/rails_generators/generator_manifest.rb +0 -282
  420. data/rails_generators/simple.yml +0 -6
  421. data/rails_generators/simple_manifest.rb +0 -21
  422. data/rails_generators/template_manifest.rb +0 -13
  423. data/rails_generators/templates/app/models/re_rule_outcome.rb +0 -40
  424. data/rails_generators/templates/app/rules/blacklist_word.rb +0 -89
  425. data/rails_generators/templates/app/rules/simple.rb +0 -44
  426. data/rails_generators/templates/app/rules/template.rb +0 -51
  427. data/rails_generators/templates/app/views/layouts/_blockUI.html.erb +0 -3
  428. data/rails_generators/templates/app/views/re_jobs/_index.html.erb +0 -66
  429. data/rails_generators/templates/app/views/re_pipeline_jobs/_empty.html.erb +0 -11
  430. data/rails_generators/templates/app/views/re_pipeline_jobs/_index.html.erb +0 -41
  431. data/rails_generators/templates/app/views/re_pipelines/_show_actions.html.erb +0 -3
  432. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_edit.html.erb +0 -7
  433. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_help.html.erb +0 -2
  434. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_new.html.erb +0 -7
  435. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_pipeline.html.erb +0 -18
  436. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_script.html.erb +0 -26
  437. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_title.html.erb +0 -6
  438. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_word.html.erb +0 -12
  439. data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_words.html.erb +0 -16
  440. data/rails_generators/templates/app/views/re_rule_definitions/simple/_edit.html.erb +0 -6
  441. data/rails_generators/templates/app/views/re_rule_definitions/simple/_help.html.erb +0 -2
  442. data/rails_generators/templates/app/views/re_rule_definitions/simple/_new.html.erb +0 -6
  443. data/rails_generators/templates/app/views/re_rule_definitions/template/_edit.html.erb +0 -6
  444. data/rails_generators/templates/app/views/re_rule_definitions/template/_help.html.erb +0 -2
  445. data/rails_generators/templates/app/views/re_rule_definitions/template/_new.html.erb +0 -6
  446. data/rails_generators/templates/lib/tasks/re_runner.rake +0 -12
  447. data/rails_generators/templates/public/images/re_job/goto-16.png +0 -0
  448. data/rails_generators/templates/public/images/re_pipeline/__destroy-14.png +0 -0
  449. data/rails_generators/templates/public/images/re_pipeline/__destroy-25.png +0 -0
  450. data/rails_generators/templates/public/images/re_pipeline/__destroy-48.png +0 -0
  451. data/rails_generators/templates/public/images/re_rule/__destroy-14.png +0 -0
  452. data/rails_generators/templates/public/images/re_rule/__destroy-18.png +0 -0
  453. data/rails_generators/templates/public/images/re_rule/__destroy-25.png +0 -0
  454. data/rails_generators/templates/public/images/re_rule/__destroy-48.png +0 -0
  455. data/rails_generators/templates/public/javascripts/re_jobs.js +0 -59
  456. data/rails_generators/templates/public/javascripts/re_pipeline.js +0 -54
  457. data/rails_generators/templates/public/javascripts/re_pipeline_jobs.js +0 -61
  458. data/rails_generators/templates/public/stylesheets/re_pipeline.css +0 -509
  459. data/rails_generators/templates/spec/models/re_rule_outcome_spec.rb +0 -97
  460. data/rails_generators/templates/spec/support/blueprint_re_pipelines.rb +0 -11
  461. data/spec/rules_engine_spec.rb +0 -7
@@ -0,0 +1,1077 @@
1
+ /*
2
+ * FancyBox - jQuery Plugin
3
+ * Simple and fancy lightbox alternative
4
+ *
5
+ * Examples and documentation at: http://fancybox.net
6
+ *
7
+ * Copyright (c) 2008 - 2010 Janis Skarnelis
8
+ *
9
+ * Version: 1.3.1 (05/03/2010)
10
+ * Requires: jQuery v1.3+
11
+ *
12
+ * Dual licensed under the MIT and GPL licenses:
13
+ * http://www.opensource.org/licenses/mit-license.php
14
+ * http://www.gnu.org/licenses/gpl.html
15
+ */
16
+
17
+ (function($) {
18
+
19
+ var tmp, loading, overlay, wrap, outer, inner, close, nav_left, nav_right,
20
+
21
+ selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [],
22
+
23
+ ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i,
24
+
25
+ loadingTimer, loadingFrame = 1,
26
+
27
+ start_pos, final_pos, busy = false, shadow = 20, fx = $.extend($('<div/>')[0], { prop: 0 }), titleh = 0,
28
+
29
+ isIE6 = !$.support.opacity && !window.XMLHttpRequest,
30
+
31
+ /*
32
+ * Private methods
33
+ */
34
+
35
+ fancybox_abort = function() {
36
+ loading.hide();
37
+
38
+ imgPreloader.onerror = imgPreloader.onload = null;
39
+
40
+ if (ajaxLoader) {
41
+ ajaxLoader.abort();
42
+ }
43
+
44
+ tmp.empty();
45
+ },
46
+
47
+ fancybox_error = function() {
48
+ $.fancybox('<p id="fancybox_error">The requested content cannot be loaded.<br />Please try again later.</p>', {
49
+ 'scrolling' : 'no',
50
+ 'padding' : 20,
51
+ 'transitionIn' : 'none',
52
+ 'transitionOut' : 'none'
53
+ });
54
+ },
55
+
56
+ fancybox_get_viewport = function() {
57
+ return [ $(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ];
58
+ },
59
+
60
+ fancybox_get_zoom_to = function () {
61
+ var view = fancybox_get_viewport(),
62
+ to = {},
63
+
64
+ margin = currentOpts.margin,
65
+ resize = currentOpts.autoScale,
66
+
67
+ horizontal_space = (shadow + margin) * 2,
68
+ vertical_space = (shadow + margin) * 2,
69
+ double_padding = (currentOpts.padding * 2),
70
+
71
+ ratio;
72
+
73
+ if (currentOpts.width.toString().indexOf('%') > -1) {
74
+ to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2) ;
75
+ resize = false;
76
+
77
+ } else {
78
+ to.width = currentOpts.width + double_padding;
79
+ }
80
+
81
+ if (currentOpts.height.toString().indexOf('%') > -1) {
82
+ to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2);
83
+ resize = false;
84
+
85
+ } else {
86
+ to.height = currentOpts.height + double_padding;
87
+ }
88
+
89
+ if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) {
90
+ if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') {
91
+ horizontal_space += double_padding;
92
+ vertical_space += double_padding;
93
+
94
+ ratio = Math.min(Math.min( view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min( view[1] - vertical_space, currentOpts.height) / currentOpts.height);
95
+
96
+ to.width = Math.round(ratio * (to.width - double_padding)) + double_padding;
97
+ to.height = Math.round(ratio * (to.height - double_padding)) + double_padding;
98
+
99
+ } else {
100
+ to.width = Math.min(to.width, (view[0] - horizontal_space));
101
+ to.height = Math.min(to.height, (view[1] - vertical_space));
102
+ }
103
+ }
104
+
105
+ to.top = view[3] + ((view[1] - (to.height + (shadow * 2 ))) * 0.5);
106
+ to.left = view[2] + ((view[0] - (to.width + (shadow * 2 ))) * 0.5);
107
+
108
+ if (currentOpts.autoScale === false) {
109
+ to.top = Math.max(view[3] + margin, to.top);
110
+ to.left = Math.max(view[2] + margin, to.left);
111
+ }
112
+
113
+ return to;
114
+ },
115
+
116
+ fancybox_format_title = function(title) {
117
+ if (title && title.length) {
118
+ switch (currentOpts.titlePosition) {
119
+ case 'inside':
120
+ return title;
121
+ case 'over':
122
+ return '<span id="fancybox-title-over">' + title + '</span>';
123
+ default:
124
+ return '<span id="fancybox-title-wrap"><span id="fancybox-title-left"></span><span id="fancybox-title-main">' + title + '</span><span id="fancybox-title-right"></span></span>';
125
+ }
126
+ }
127
+
128
+ return false;
129
+ },
130
+
131
+ fancybox_process_title = function() {
132
+ var title = currentOpts.title,
133
+ width = final_pos.width - (currentOpts.padding * 2),
134
+ titlec = 'fancybox-title-' + currentOpts.titlePosition;
135
+
136
+ $('#fancybox-title').remove();
137
+
138
+ titleh = 0;
139
+
140
+ if (currentOpts.titleShow === false) {
141
+ return;
142
+ }
143
+
144
+ title = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(title, currentArray, currentIndex, currentOpts) : fancybox_format_title(title);
145
+
146
+ if (!title || title === '') {
147
+ return;
148
+ }
149
+
150
+ $('<div id="fancybox-title" class="' + titlec + '" />').css({
151
+ 'width' : width,
152
+ 'paddingLeft' : currentOpts.padding,
153
+ 'paddingRight' : currentOpts.padding
154
+ }).html(title).appendTo('body');
155
+
156
+ switch (currentOpts.titlePosition) {
157
+ case 'inside':
158
+ titleh = $("#fancybox-title").outerHeight(true) - currentOpts.padding;
159
+ final_pos.height += titleh;
160
+ break;
161
+
162
+ case 'over':
163
+ $('#fancybox-title').css('bottom', currentOpts.padding);
164
+ break;
165
+
166
+ default:
167
+ $('#fancybox-title').css('bottom', $("#fancybox-title").outerHeight(true) * -1);
168
+ break;
169
+ }
170
+
171
+ $('#fancybox-title').appendTo( outer ).hide();
172
+ },
173
+
174
+ fancybox_set_navigation = function() {
175
+ $(document).unbind('keydown.fb').bind('keydown.fb', function(e) {
176
+ if (e.keyCode == 27 && currentOpts.enableEscapeButton) {
177
+ e.preventDefault();
178
+ $.fancybox.close();
179
+
180
+ } else if (e.keyCode == 37) {
181
+ e.preventDefault();
182
+ $.fancybox.prev();
183
+
184
+ } else if (e.keyCode == 39) {
185
+ e.preventDefault();
186
+ $.fancybox.next();
187
+ }
188
+ });
189
+
190
+ if ($.fn.mousewheel) {
191
+ wrap.unbind('mousewheel.fb');
192
+
193
+ if (currentArray.length > 1) {
194
+ wrap.bind('mousewheel.fb', function(e, delta) {
195
+ e.preventDefault();
196
+
197
+ if (busy || delta === 0) {
198
+ return;
199
+ }
200
+
201
+ if (delta > 0) {
202
+ $.fancybox.prev();
203
+ } else {
204
+ $.fancybox.next();
205
+ }
206
+ });
207
+ }
208
+ }
209
+
210
+ if (!currentOpts.showNavArrows) { return; }
211
+
212
+ if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) {
213
+ nav_left.show();
214
+ }
215
+
216
+ if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) {
217
+ nav_right.show();
218
+ }
219
+ },
220
+
221
+ fancybox_preload_images = function() {
222
+ var href,
223
+ objNext;
224
+
225
+ if ((currentArray.length -1) > currentIndex) {
226
+ href = currentArray[ currentIndex + 1 ].href;
227
+
228
+ if (typeof href !== 'undefined' && href.match(imgRegExp)) {
229
+ objNext = new Image();
230
+ objNext.src = href;
231
+ }
232
+ }
233
+
234
+ if (currentIndex > 0) {
235
+ href = currentArray[ currentIndex - 1 ].href;
236
+
237
+ if (typeof href !== 'undefined' && href.match(imgRegExp)) {
238
+ objNext = new Image();
239
+ objNext.src = href;
240
+ }
241
+ }
242
+ },
243
+
244
+ _finish = function () {
245
+ inner.css('overflow', (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible')));
246
+
247
+ if (!$.support.opacity) {
248
+ inner.get(0).style.removeAttribute('filter');
249
+ wrap.get(0).style.removeAttribute('filter');
250
+ }
251
+
252
+ $('#fancybox-title').show();
253
+
254
+ if (currentOpts.hideOnContentClick) {
255
+ inner.one('click', $.fancybox.close);
256
+ }
257
+ if (currentOpts.hideOnOverlayClick) {
258
+ overlay.one('click', $.fancybox.close);
259
+ }
260
+
261
+ if (currentOpts.showCloseButton) {
262
+ close.show();
263
+ }
264
+
265
+ fancybox_set_navigation();
266
+
267
+ $(window).bind("resize.fb", $.fancybox.center);
268
+
269
+ if (currentOpts.centerOnScroll) {
270
+ $(window).bind("scroll.fb", $.fancybox.center);
271
+ } else {
272
+ $(window).unbind("scroll.fb");
273
+ }
274
+
275
+ if ($.isFunction(currentOpts.onComplete)) {
276
+ currentOpts.onComplete(currentArray, currentIndex, currentOpts);
277
+ }
278
+
279
+ busy = false;
280
+
281
+ fancybox_preload_images();
282
+ },
283
+
284
+ fancybox_draw = function(pos) {
285
+ var width = Math.round(start_pos.width + (final_pos.width - start_pos.width) * pos),
286
+ height = Math.round(start_pos.height + (final_pos.height - start_pos.height) * pos),
287
+
288
+ top = Math.round(start_pos.top + (final_pos.top - start_pos.top) * pos),
289
+ left = Math.round(start_pos.left + (final_pos.left - start_pos.left) * pos);
290
+
291
+ wrap.css({
292
+ 'width' : width + 'px',
293
+ 'height' : height + 'px',
294
+ 'top' : top + 'px',
295
+ 'left' : left + 'px'
296
+ });
297
+
298
+ width = Math.max(width - currentOpts.padding * 2, 0);
299
+ height = Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0);
300
+
301
+ inner.css({
302
+ 'width' : width + 'px',
303
+ 'height' : height + 'px'
304
+ });
305
+
306
+ if (typeof final_pos.opacity !== 'undefined') {
307
+ wrap.css('opacity', (pos < 0.5 ? 0.5 : pos));
308
+ }
309
+ },
310
+
311
+ fancybox_get_obj_pos = function(obj) {
312
+ var pos = obj.offset();
313
+
314
+ pos.top += parseFloat( obj.css('paddingTop') ) || 0;
315
+ pos.left += parseFloat( obj.css('paddingLeft') ) || 0;
316
+
317
+ pos.top += parseFloat( obj.css('border-top-width') ) || 0;
318
+ pos.left += parseFloat( obj.css('border-left-width') ) || 0;
319
+
320
+ pos.width = obj.width();
321
+ pos.height = obj.height();
322
+
323
+ return pos;
324
+ },
325
+
326
+ fancybox_get_zoom_from = function() {
327
+ var orig = selectedOpts.orig ? $(selectedOpts.orig) : false,
328
+ from = {},
329
+ pos,
330
+ view;
331
+
332
+ if (orig && orig.length) {
333
+ pos = fancybox_get_obj_pos(orig);
334
+
335
+ from = {
336
+ width : (pos.width + (currentOpts.padding * 2)),
337
+ height : (pos.height + (currentOpts.padding * 2)),
338
+ top : (pos.top - currentOpts.padding - shadow),
339
+ left : (pos.left - currentOpts.padding - shadow)
340
+ };
341
+
342
+ } else {
343
+ view = fancybox_get_viewport();
344
+
345
+ from = {
346
+ width : 1,
347
+ height : 1,
348
+ top : view[3] + view[1] * 0.5,
349
+ left : view[2] + view[0] * 0.5
350
+ };
351
+ }
352
+
353
+ return from;
354
+ },
355
+
356
+ fancybox_show = function() {
357
+ loading.hide();
358
+
359
+ if (wrap.is(":visible") && $.isFunction(currentOpts.onCleanup)) {
360
+ if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {
361
+ $.event.trigger('fancybox-cancel');
362
+
363
+ busy = false;
364
+ return;
365
+ }
366
+ }
367
+
368
+ currentArray = selectedArray;
369
+ currentIndex = selectedIndex;
370
+ currentOpts = selectedOpts;
371
+
372
+ inner.get(0).scrollTop = 0;
373
+ inner.get(0).scrollLeft = 0;
374
+
375
+ if (currentOpts.overlayShow) {
376
+ if (isIE6) {
377
+ $('select:not(#fancybox-tmp select)').filter(function() {
378
+ return this.style.visibility !== 'hidden';
379
+ }).css({'visibility':'hidden'}).one('fancybox-cleanup', function() {
380
+ this.style.visibility = 'inherit';
381
+ });
382
+ }
383
+
384
+ overlay.css({
385
+ 'background-color' : currentOpts.overlayColor,
386
+ 'opacity' : currentOpts.overlayOpacity
387
+ }).unbind().show();
388
+ }
389
+
390
+ final_pos = fancybox_get_zoom_to();
391
+
392
+ fancybox_process_title();
393
+
394
+ if (wrap.is(":visible")) {
395
+ $( close.add( nav_left ).add( nav_right ) ).hide();
396
+
397
+ var pos = wrap.position(),
398
+ equal;
399
+
400
+ start_pos = {
401
+ top : pos.top ,
402
+ left : pos.left,
403
+ width : wrap.width(),
404
+ height : wrap.height()
405
+ };
406
+
407
+ equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height);
408
+
409
+ inner.fadeOut(currentOpts.changeFade, function() {
410
+ var finish_resizing = function() {
411
+ inner.html( tmp.contents() ).fadeIn(currentOpts.changeFade, _finish);
412
+ };
413
+
414
+ $.event.trigger('fancybox-change');
415
+
416
+ inner.empty().css('overflow', 'hidden');
417
+
418
+ if (equal) {
419
+ inner.css({
420
+ top : currentOpts.padding,
421
+ left : currentOpts.padding,
422
+ width : Math.max(final_pos.width - (currentOpts.padding * 2), 1),
423
+ height : Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1)
424
+ });
425
+
426
+ finish_resizing();
427
+
428
+ } else {
429
+ inner.css({
430
+ top : currentOpts.padding,
431
+ left : currentOpts.padding,
432
+ width : Math.max(start_pos.width - (currentOpts.padding * 2), 1),
433
+ height : Math.max(start_pos.height - (currentOpts.padding * 2), 1)
434
+ });
435
+
436
+ fx.prop = 0;
437
+
438
+ $(fx).animate({ prop: 1 }, {
439
+ duration : currentOpts.changeSpeed,
440
+ easing : currentOpts.easingChange,
441
+ step : fancybox_draw,
442
+ complete : finish_resizing
443
+ });
444
+ }
445
+ });
446
+
447
+ return;
448
+ }
449
+
450
+ wrap.css('opacity', 1);
451
+
452
+ if (currentOpts.transitionIn == 'elastic') {
453
+ start_pos = fancybox_get_zoom_from();
454
+
455
+ inner.css({
456
+ top : currentOpts.padding,
457
+ left : currentOpts.padding,
458
+ width : Math.max(start_pos.width - (currentOpts.padding * 2), 1),
459
+ height : Math.max(start_pos.height - (currentOpts.padding * 2), 1)
460
+ })
461
+ .html( tmp.contents() );
462
+
463
+ wrap.css(start_pos).show();
464
+
465
+ if (currentOpts.opacity) {
466
+ final_pos.opacity = 0;
467
+ }
468
+
469
+ fx.prop = 0;
470
+
471
+ $(fx).animate({ prop: 1 }, {
472
+ duration : currentOpts.speedIn,
473
+ easing : currentOpts.easingIn,
474
+ step : fancybox_draw,
475
+ complete : _finish
476
+ });
477
+
478
+ } else {
479
+ inner.css({
480
+ top : currentOpts.padding,
481
+ left : currentOpts.padding,
482
+ width : Math.max(final_pos.width - (currentOpts.padding * 2), 1),
483
+ height : Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1)
484
+ })
485
+ .html( tmp.contents() );
486
+
487
+ wrap.css( final_pos ).fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish );
488
+ }
489
+ },
490
+
491
+ fancybox_process_inline = function() {
492
+ tmp.width( selectedOpts.width );
493
+ tmp.height( selectedOpts.height );
494
+
495
+ if (selectedOpts.width == 'auto') {
496
+ selectedOpts.width = tmp.width();
497
+ }
498
+ if (selectedOpts.height == 'auto') {
499
+ selectedOpts.height = tmp.height();
500
+ }
501
+
502
+ fancybox_show();
503
+ },
504
+
505
+ fancybox_process_image = function() {
506
+ busy = true;
507
+
508
+ selectedOpts.width = imgPreloader.width;
509
+ selectedOpts.height = imgPreloader.height;
510
+
511
+ $("<img />").attr({
512
+ 'id' : 'fancybox-img',
513
+ 'src' : imgPreloader.src,
514
+ 'alt' : selectedOpts.title
515
+ }).appendTo( tmp );
516
+
517
+ fancybox_show();
518
+ },
519
+
520
+ fancybox_start = function() {
521
+ fancybox_abort();
522
+
523
+ var obj = selectedArray[ selectedIndex ],
524
+ href,
525
+ type,
526
+ title,
527
+ str,
528
+ emb,
529
+ selector,
530
+ data;
531
+
532
+ selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox')));
533
+ title = obj.title || $(obj).title || selectedOpts.title || '';
534
+
535
+ if (obj.nodeName && !selectedOpts.orig) {
536
+ selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj);
537
+ }
538
+
539
+ if (title === '' && selectedOpts.orig) {
540
+ title = selectedOpts.orig.attr('alt');
541
+ }
542
+
543
+ if (obj.nodeName && (/^(?:javascript|#)/i).test(obj.href)) {
544
+ href = selectedOpts.href || null;
545
+ } else {
546
+ href = selectedOpts.href || obj.href || null;
547
+ }
548
+
549
+ if (selectedOpts.type) {
550
+ type = selectedOpts.type;
551
+
552
+ if (!href) {
553
+ href = selectedOpts.content;
554
+ }
555
+
556
+ } else if (selectedOpts.content) {
557
+ type = 'html';
558
+
559
+ } else if (href) {
560
+ if (href.match(imgRegExp)) {
561
+ type = 'image';
562
+
563
+ } else if (href.match(swfRegExp)) {
564
+ type = 'swf';
565
+
566
+ } else if ($(obj).hasClass("iframe")) {
567
+ type = 'iframe';
568
+
569
+ } else if (href.match(/#/)) {
570
+ obj = href.substr(href.indexOf("#"));
571
+
572
+ type = $(obj).length > 0 ? 'inline' : 'ajax';
573
+ } else {
574
+ type = 'ajax';
575
+ }
576
+ } else {
577
+ type = 'inline';
578
+ }
579
+
580
+ selectedOpts.type = type;
581
+ selectedOpts.href = href;
582
+ selectedOpts.title = title;
583
+
584
+ if (selectedOpts.autoDimensions && selectedOpts.type !== 'iframe' && selectedOpts.type !== 'swf') {
585
+ selectedOpts.width = 'auto';
586
+ selectedOpts.height = 'auto';
587
+ }
588
+
589
+ if (selectedOpts.modal) {
590
+ selectedOpts.overlayShow = true;
591
+ selectedOpts.hideOnOverlayClick = false;
592
+ selectedOpts.hideOnContentClick = false;
593
+ selectedOpts.enableEscapeButton = false;
594
+ selectedOpts.showCloseButton = false;
595
+ }
596
+
597
+ if ($.isFunction(selectedOpts.onStart)) {
598
+ if (selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts) === false) {
599
+ busy = false;
600
+ return;
601
+ }
602
+ }
603
+
604
+ tmp.css('padding', (shadow + selectedOpts.padding + selectedOpts.margin));
605
+
606
+ $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() {
607
+ $(this).replaceWith(inner.children());
608
+ });
609
+
610
+ switch (type) {
611
+ case 'html' :
612
+ tmp.html( selectedOpts.content );
613
+ fancybox_process_inline();
614
+ break;
615
+
616
+ case 'inline' :
617
+ $('<div class="fancybox-inline-tmp" />').hide().insertBefore( $(obj) ).bind('fancybox-cleanup', function() {
618
+ $(this).replaceWith(inner.children());
619
+ }).bind('fancybox-cancel', function() {
620
+ $(this).replaceWith(tmp.children());
621
+ });
622
+
623
+ $(obj).appendTo(tmp);
624
+
625
+ fancybox_process_inline();
626
+ break;
627
+
628
+ case 'image':
629
+ busy = false;
630
+
631
+ $.fancybox.showActivity();
632
+
633
+ imgPreloader = new Image();
634
+
635
+ imgPreloader.onerror = function() {
636
+ fancybox_error();
637
+ };
638
+
639
+ imgPreloader.onload = function() {
640
+ imgPreloader.onerror = null;
641
+ imgPreloader.onload = null;
642
+ fancybox_process_image();
643
+ };
644
+
645
+ imgPreloader.src = href;
646
+
647
+ break;
648
+
649
+ case 'swf':
650
+ str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"><param name="movie" value="' + href + '"></param>';
651
+ emb = '';
652
+
653
+ $.each(selectedOpts.swf, function(name, val) {
654
+ str += '<param name="' + name + '" value="' + val + '"></param>';
655
+ emb += ' ' + name + '="' + val + '"';
656
+ });
657
+
658
+ str += '<embed src="' + href + '" type="application/x-shockwave-flash" width="' + selectedOpts.width + '" height="' + selectedOpts.height + '"' + emb + '></embed></object>';
659
+
660
+ tmp.html(str);
661
+
662
+ fancybox_process_inline();
663
+ break;
664
+
665
+ case 'ajax':
666
+ selector = href.split('#', 2);
667
+ data = selectedOpts.ajax.data || {};
668
+
669
+ if (selector.length > 1) {
670
+ href = selector[0];
671
+
672
+ if (typeof data == "string") {
673
+ data += '&selector=' + selector[1];
674
+ } else {
675
+ data.selector = selector[1];
676
+ }
677
+ }
678
+
679
+ busy = false;
680
+ $.fancybox.showActivity();
681
+
682
+ ajaxLoader = $.ajax($.extend(selectedOpts.ajax, {
683
+ url : href,
684
+ data : data,
685
+ error : fancybox_error,
686
+ success : function(data, textStatus, XMLHttpRequest) {
687
+ if (ajaxLoader.status == 200) {
688
+ tmp.html( data );
689
+ fancybox_process_inline();
690
+ }
691
+ }
692
+ }));
693
+
694
+ break;
695
+
696
+ case 'iframe' :
697
+ $('<iframe id="fancybox-frame" name="fancybox-frame' + new Date().getTime() + '" frameborder="0" hspace="0" scrolling="' + selectedOpts.scrolling + '" src="' + selectedOpts.href + '"></iframe>').appendTo(tmp);
698
+ fancybox_show();
699
+ break;
700
+ }
701
+ },
702
+
703
+ fancybox_animate_loading = function() {
704
+ if (!loading.is(':visible')){
705
+ clearInterval(loadingTimer);
706
+ return;
707
+ }
708
+
709
+ $('div', loading).css('top', (loadingFrame * -40) + 'px');
710
+
711
+ loadingFrame = (loadingFrame + 1) % 12;
712
+ },
713
+
714
+ fancybox_init = function() {
715
+ if ($("#fancybox-wrap").length) {
716
+ return;
717
+ }
718
+
719
+ $('body').append(
720
+ tmp = $('<div id="fancybox-tmp"></div>'),
721
+ loading = $('<div id="fancybox-loading"><div></div></div>'),
722
+ overlay = $('<div id="fancybox-overlay"></div>'),
723
+ wrap = $('<div id="fancybox-wrap"></div>')
724
+ );
725
+
726
+ if (!$.support.opacity) {
727
+ wrap.addClass('fancybox-ie');
728
+ loading.addClass('fancybox-ie');
729
+ }
730
+
731
+ outer = $('<div id="fancybox-outer"></div>')
732
+ .append('<div class="fancy-bg" id="fancy-bg-n"></div><div class="fancy-bg" id="fancy-bg-ne"></div><div class="fancy-bg" id="fancy-bg-e"></div><div class="fancy-bg" id="fancy-bg-se"></div><div class="fancy-bg" id="fancy-bg-s"></div><div class="fancy-bg" id="fancy-bg-sw"></div><div class="fancy-bg" id="fancy-bg-w"></div><div class="fancy-bg" id="fancy-bg-nw"></div>')
733
+ .appendTo( wrap );
734
+
735
+ outer.append(
736
+ inner = $('<div id="fancybox-inner"></div>'),
737
+ close = $('<a id="fancybox-close"></a>'),
738
+
739
+ nav_left = $('<a href="javascript:;" id="fancybox-left"><span class="fancy-ico" id="fancybox-left-ico"></span></a>'),
740
+ nav_right = $('<a href="javascript:;" id="fancybox-right"><span class="fancy-ico" id="fancybox-right-ico"></span></a>')
741
+ );
742
+
743
+ close.click($.fancybox.close);
744
+ loading.click($.fancybox.cancel);
745
+
746
+ nav_left.click(function(e) {
747
+ e.preventDefault();
748
+ $.fancybox.prev();
749
+ });
750
+
751
+ nav_right.click(function(e) {
752
+ e.preventDefault();
753
+ $.fancybox.next();
754
+ });
755
+
756
+ if (isIE6) {
757
+ overlay.get(0).style.setExpression('height', "document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");
758
+ loading.get(0).style.setExpression('top', "(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");
759
+
760
+ outer.prepend('<iframe id="fancybox-hide-sel-frame" src="javascript:\'\';" scrolling="no" frameborder="0" ></iframe>');
761
+ }
762
+ };
763
+
764
+ /*
765
+ * Public methods
766
+ */
767
+
768
+ $.fn.fancybox = function(options) {
769
+ $(this)
770
+ .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {})))
771
+ .unbind('click.fb').bind('click.fb', function(e) {
772
+ e.preventDefault();
773
+
774
+ if (busy) {
775
+ return;
776
+ }
777
+
778
+ busy = true;
779
+
780
+ $(this).blur();
781
+
782
+ selectedArray = [];
783
+ selectedIndex = 0;
784
+
785
+ var rel = $(this).attr('rel') || '';
786
+
787
+ if (!rel || rel == '' || rel === 'nofollow') {
788
+ selectedArray.push(this);
789
+
790
+ } else {
791
+ selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]");
792
+ selectedIndex = selectedArray.index( this );
793
+ }
794
+
795
+ fancybox_start();
796
+
797
+ return false;
798
+ });
799
+
800
+ return this;
801
+ };
802
+
803
+ $.fancybox = function(obj) {
804
+ if (busy) {
805
+ return;
806
+ }
807
+
808
+ busy = true;
809
+
810
+ var opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {};
811
+
812
+ selectedArray = [];
813
+ selectedIndex = opts.index || 0;
814
+
815
+ if ($.isArray(obj)) {
816
+ for (var i = 0, j = obj.length; i < j; i++) {
817
+ if (typeof obj[i] == 'object') {
818
+ $(obj[i]).data('fancybox', $.extend({}, opts, obj[i]));
819
+ } else {
820
+ obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts));
821
+ }
822
+ }
823
+
824
+ selectedArray = jQuery.merge(selectedArray, obj);
825
+
826
+ } else {
827
+ if (typeof obj == 'object') {
828
+ $(obj).data('fancybox', $.extend({}, opts, obj));
829
+ } else {
830
+ obj = $({}).data('fancybox', $.extend({content : obj}, opts));
831
+ }
832
+
833
+ selectedArray.push(obj);
834
+ }
835
+
836
+ if (selectedIndex > selectedArray.length || selectedIndex < 0) {
837
+ selectedIndex = 0;
838
+ }
839
+
840
+ fancybox_start();
841
+ };
842
+
843
+ $.fancybox.showActivity = function() {
844
+ clearInterval(loadingTimer);
845
+
846
+ loading.show();
847
+ loadingTimer = setInterval(fancybox_animate_loading, 66);
848
+ };
849
+
850
+ $.fancybox.hideActivity = function() {
851
+ loading.hide();
852
+ };
853
+
854
+ $.fancybox.next = function() {
855
+ return $.fancybox.pos( currentIndex + 1);
856
+ };
857
+
858
+ $.fancybox.prev = function() {
859
+ return $.fancybox.pos( currentIndex - 1);
860
+ };
861
+
862
+ $.fancybox.pos = function(pos) {
863
+ if (busy) {
864
+ return;
865
+ }
866
+
867
+ pos = parseInt(pos, 10);
868
+
869
+ if (pos > -1 && currentArray.length > pos) {
870
+ selectedIndex = pos;
871
+ fancybox_start();
872
+ }
873
+
874
+ if (currentOpts.cyclic && currentArray.length > 1 && pos < 0) {
875
+ selectedIndex = currentArray.length - 1;
876
+ fancybox_start();
877
+ }
878
+
879
+ if (currentOpts.cyclic && currentArray.length > 1 && pos >= currentArray.length) {
880
+ selectedIndex = 0;
881
+ fancybox_start();
882
+ }
883
+
884
+ return;
885
+ };
886
+
887
+ $.fancybox.cancel = function() {
888
+ if (busy) {
889
+ return;
890
+ }
891
+
892
+ busy = true;
893
+
894
+ $.event.trigger('fancybox-cancel');
895
+
896
+ fancybox_abort();
897
+
898
+ if (selectedOpts && $.isFunction(selectedOpts.onCancel)) {
899
+ selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts);
900
+ }
901
+
902
+ busy = false;
903
+ };
904
+
905
+ // Note: within an iframe use - parent.$.fancybox.close();
906
+ $.fancybox.close = function() {
907
+ if (busy || wrap.is(':hidden')) {
908
+ return;
909
+ }
910
+
911
+ busy = true;
912
+
913
+ if (currentOpts && $.isFunction(currentOpts.onCleanup)) {
914
+ if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) {
915
+ busy = false;
916
+ return;
917
+ }
918
+ }
919
+
920
+ fancybox_abort();
921
+
922
+ $(close.add( nav_left ).add( nav_right )).hide();
923
+
924
+ $('#fancybox-title').remove();
925
+
926
+ wrap.add(inner).add(overlay).unbind();
927
+
928
+ $(window).unbind("resize.fb scroll.fb");
929
+ $(document).unbind('keydown.fb');
930
+
931
+ function _cleanup() {
932
+ overlay.fadeOut('fast');
933
+
934
+ wrap.hide();
935
+
936
+ $.event.trigger('fancybox-cleanup');
937
+
938
+ inner.empty();
939
+
940
+ if ($.isFunction(currentOpts.onClosed)) {
941
+ currentOpts.onClosed(currentArray, currentIndex, currentOpts);
942
+ }
943
+
944
+ currentArray = selectedOpts = [];
945
+ currentIndex = selectedIndex = 0;
946
+ currentOpts = selectedOpts = {};
947
+
948
+ busy = false;
949
+ }
950
+
951
+ inner.css('overflow', 'hidden');
952
+
953
+ if (currentOpts.transitionOut == 'elastic') {
954
+ start_pos = fancybox_get_zoom_from();
955
+
956
+ var pos = wrap.position();
957
+
958
+ final_pos = {
959
+ top : pos.top ,
960
+ left : pos.left,
961
+ width : wrap.width(),
962
+ height : wrap.height()
963
+ };
964
+
965
+ if (currentOpts.opacity) {
966
+ final_pos.opacity = 1;
967
+ }
968
+
969
+ fx.prop = 1;
970
+
971
+ $(fx).animate({ prop: 0 }, {
972
+ duration : currentOpts.speedOut,
973
+ easing : currentOpts.easingOut,
974
+ step : fancybox_draw,
975
+ complete : _cleanup
976
+ });
977
+
978
+ } else {
979
+ wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup);
980
+ }
981
+ };
982
+
983
+ $.fancybox.resize = function() {
984
+ var c, h;
985
+
986
+ if (busy || wrap.is(':hidden')) {
987
+ return;
988
+ }
989
+
990
+ busy = true;
991
+
992
+ c = inner.wrapInner("<div style='overflow:auto'></div>").children();
993
+ h = c.height();
994
+
995
+ wrap.css({height: h + (currentOpts.padding * 2) + titleh});
996
+ inner.css({height: h});
997
+
998
+ c.replaceWith(c.children());
999
+
1000
+ $.fancybox.center();
1001
+ };
1002
+
1003
+ $.fancybox.center = function() {
1004
+ busy = true;
1005
+
1006
+ var view = fancybox_get_viewport(),
1007
+ margin = currentOpts.margin,
1008
+ to = {};
1009
+
1010
+ to.top = view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2 ))) * 0.5);
1011
+ to.left = view[2] + ((view[0] - (wrap.width() + (shadow * 2 ))) * 0.5);
1012
+
1013
+ to.top = Math.max(view[3] + margin, to.top);
1014
+ to.left = Math.max(view[2] + margin, to.left);
1015
+
1016
+ wrap.css(to);
1017
+
1018
+ busy = false;
1019
+ };
1020
+
1021
+ $.fn.fancybox.defaults = {
1022
+ padding : 10,
1023
+ margin : 20,
1024
+ opacity : false,
1025
+ modal : false,
1026
+ cyclic : false,
1027
+ scrolling : 'auto', // 'auto', 'yes' or 'no'
1028
+
1029
+ width : 560,
1030
+ height : 340,
1031
+
1032
+ autoScale : true,
1033
+ autoDimensions : true,
1034
+ centerOnScroll : false,
1035
+
1036
+ ajax : {},
1037
+ swf : { wmode: 'transparent' },
1038
+
1039
+ hideOnOverlayClick : true,
1040
+ hideOnContentClick : false,
1041
+
1042
+ overlayShow : true,
1043
+ overlayOpacity : 0.3,
1044
+ overlayColor : '#666',
1045
+
1046
+ titleShow : true,
1047
+ titlePosition : 'outside', // 'outside', 'inside' or 'over'
1048
+ titleFormat : null,
1049
+
1050
+ transitionIn : 'fade', // 'elastic', 'fade' or 'none'
1051
+ transitionOut : 'fade', // 'elastic', 'fade' or 'none'
1052
+
1053
+ speedIn : 300,
1054
+ speedOut : 300,
1055
+
1056
+ changeSpeed : 300,
1057
+ changeFade : 'fast',
1058
+
1059
+ easingIn : 'swing',
1060
+ easingOut : 'swing',
1061
+
1062
+ showCloseButton : true,
1063
+ showNavArrows : true,
1064
+ enableEscapeButton : true,
1065
+
1066
+ onStart : null,
1067
+ onCancel : null,
1068
+ onComplete : null,
1069
+ onCleanup : null,
1070
+ onClosed : null
1071
+ };
1072
+
1073
+ $(document).ready(function() {
1074
+ fancybox_init();
1075
+ });
1076
+
1077
+ })(jQuery);