erp_app 4.0.0 → 4.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1264) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/art/desktop-logo.jpg +0 -0
  3. data/app/assets/images/art/desktop-logo.png +0 -0
  4. data/{public → app/assets}/images/btn/left_panel/left_panel_16x16.png +0 -0
  5. data/{public → app/assets}/images/btn/left_right_panel/left_right_panel_16x16.png +0 -0
  6. data/{public → app/assets}/images/btn/right_panel/right_panel_16x16.png +0 -0
  7. data/{public → app/assets}/images/btn/save/save_16x16.png +0 -0
  8. data/{public → app/assets}/images/btn/save_all/save_all_16x16.png +0 -0
  9. data/{public → app/assets}/images/btn_light/add/add_16x16.png +0 -0
  10. data/{public → app/assets}/images/btn_light/left_panel/left_panel_16x16.png +0 -0
  11. data/{public → app/assets}/images/btn_light/left_right_panel/left_right_panel_16x16.png +0 -0
  12. data/{public → app/assets}/images/btn_light/right_panel/right_panel_16x16.png +0 -0
  13. data/{public → app/assets}/images/btn_light/save/save_16x16.png +0 -0
  14. data/{public → app/assets}/images/btn_light/save_all/save_all_16x16.png +0 -0
  15. data/{public → app/assets}/images/checked.gif +0 -0
  16. data/{public → app/assets}/images/erp_app/ajax-loader.gif +0 -0
  17. data/{public → app/assets}/images/erp_app/desktop/applications/file_manager/cancel.png +0 -0
  18. data/{public → app/assets}/images/erp_app/desktop/applications/file_manager/cross.png +0 -0
  19. data/{public → app/assets}/images/erp_app/desktop/applications/file_manager/hourglass.png +0 -0
  20. data/{public → app/assets}/images/erp_app/desktop/applications/file_manager/loading.gif +0 -0
  21. data/{public → app/assets}/images/erp_app/desktop/applications/file_manager/tick.png +0 -0
  22. data/app/assets/images/erp_app/desktop/applications/security_management/manage_capabilities.png +0 -0
  23. data/app/assets/images/erp_app/desktop/applications/security_management/manage_groups.png +0 -0
  24. data/app/assets/images/erp_app/desktop/applications/security_management/manage_roles.png +0 -0
  25. data/app/assets/images/erp_app/desktop/applications/security_management/manage_users.png +0 -0
  26. data/{public → app/assets}/images/erp_app/desktop/compass_logo_start_icon.png +0 -0
  27. data/{public → app/assets}/images/erp_app/desktop/image_add.png +0 -0
  28. data/{public → app/assets}/images/erp_app/desktop/themes.png +0 -0
  29. data/{public → app/assets}/images/erp_app/ext_loading_image.gif +0 -0
  30. data/{public → app/assets}/images/erp_app/mobile/green_light.png +0 -0
  31. data/{public → app/assets}/images/erp_app/mobile/red_light.png +0 -0
  32. data/{public → app/assets}/images/erp_app/mobile/yellow_light.png +0 -0
  33. data/{public → app/assets}/images/erp_app/organizer/applications/crm/business.png +0 -0
  34. data/{public → app/assets}/images/erp_app/organizer/applications/crm/business_64x64.png +0 -0
  35. data/{public → app/assets}/images/erp_app/organizer/applications/crm/customer-contact.png +0 -0
  36. data/{public → app/assets}/images/erp_app/organizer/applications/crm/customer_360_64x64.png +0 -0
  37. data/{public → app/assets}/images/erp_app/organizer/applications/crm/people.png +0 -0
  38. data/{public → app/assets}/images/erp_app/organizer/applications/crm/person.png +0 -0
  39. data/{public → app/assets}/images/erp_app/organizer/applications/crm/toolbar_find.png +0 -0
  40. data/{public → app/assets}/images/erp_app/organizer/applications/crm/vcard.png +0 -0
  41. data/{public → app/assets}/images/help.jpg +0 -0
  42. data/{public → app/assets}/images/icons/accept/accept_16x16.png +0 -0
  43. data/{public → app/assets}/images/icons/accept/accept_24x24.png +0 -0
  44. data/{public → app/assets}/images/icons/accept/accept_32x32.png +0 -0
  45. data/{public → app/assets}/images/icons/add/add_16x16.png +0 -0
  46. data/{public → app/assets}/images/icons/add/add_light_16x16.png +0 -0
  47. data/{public → app/assets}/images/icons/arrow_down_blue/arrow_down_blue_16x16.png +0 -0
  48. data/{public → app/assets}/images/icons/arrow_down_blue/arrow_down_blue_24x24.png +0 -0
  49. data/{public → app/assets}/images/icons/arrow_down_blue/arrow_down_blue_32x32.png +0 -0
  50. data/{public → app/assets}/images/icons/arrow_down_blue/arrow_down_blue_48x48.png +0 -0
  51. data/{public → app/assets}/images/icons/arrow_left_blue/arrow_left_blue_16x16.png +0 -0
  52. data/{public → app/assets}/images/icons/arrow_left_blue/arrow_left_blue_32x32.png +0 -0
  53. data/{public → app/assets}/images/icons/arrow_left_blue/arrow_left_blue_48x48.png +0 -0
  54. data/{public → app/assets}/images/icons/arrow_right_blue/arrow_right_blue_16x16.png +0 -0
  55. data/{public → app/assets}/images/icons/arrow_right_blue/arrow_right_blue_32x32.png +0 -0
  56. data/{public → app/assets}/images/icons/arrow_right_blue/arrow_right_blue_48x48.png +0 -0
  57. data/{public → app/assets}/images/icons/arrow_up_blue/arrow_up_blue_16x16.png +0 -0
  58. data/{public → app/assets}/images/icons/arrow_up_blue/arrow_up_blue_24x24.png +0 -0
  59. data/{public → app/assets}/images/icons/arrow_up_blue/arrow_up_blue_32x32.png +0 -0
  60. data/{public → app/assets}/images/icons/arrow_up_blue/arrow_up_blue_48x48.png +0 -0
  61. data/{public → app/assets}/images/icons/article/article_16x16.png +0 -0
  62. data/app/assets/images/icons/audio/audio_16x16.png +0 -0
  63. data/{public → app/assets}/images/icons/blog/blog_16x16.png +0 -0
  64. data/{public → app/assets}/images/icons/blog/blog_24x24.png +0 -0
  65. data/{public → app/assets}/images/icons/blog/blog_32x32.png +0 -0
  66. data/{public → app/assets}/images/icons/blog/blog_48x48.png +0 -0
  67. data/{public → app/assets}/images/icons/book/book_16x16.png +0 -0
  68. data/{public → app/assets}/images/icons/calendar/calendar_16x16.png +0 -0
  69. data/app/assets/images/icons/calendar/calendar_48x48.png +0 -0
  70. data/{public → app/assets}/images/icons/calendar/calendar_64x64.png +0 -0
  71. data/{public → app/assets}/images/icons/calendar/calendar_light_16x16.png +0 -0
  72. data/{public → app/assets}/images/icons/code/code_16x16.png +0 -0
  73. data/{public → app/assets}/images/icons/console/console_16x16.png +0 -0
  74. data/{public → app/assets}/images/icons/console/console_64x64.png +0 -0
  75. data/{public → app/assets}/images/icons/contact-us/contact-us_48x48.png +0 -0
  76. data/{public → app/assets}/images/icons/content/content_16x16.png +0 -0
  77. data/app/assets/images/icons/control_panel/control_panel_105x105.png +0 -0
  78. data/app/assets/images/icons/control_panel/control_panel_105x105_active.png +0 -0
  79. data/{public → app/assets}/images/icons/control_panel/control_panel_16x16.png +0 -0
  80. data/{public → app/assets}/images/icons/control_panel/control_panel_48x48.png +0 -0
  81. data/{public → app/assets}/images/icons/control_panel/control_panel_64x64.png +0 -0
  82. data/{public → app/assets}/images/icons/copy/copy_16x16.png +0 -0
  83. data/{public → app/assets}/images/icons/creditcards/creditcards_16x16.png +0 -0
  84. data/{public → app/assets}/images/icons/creditcards/creditcards_24x24.png +0 -0
  85. data/{public → app/assets}/images/icons/creditcards/creditcards_32x32.png +0 -0
  86. data/{public → app/assets}/images/icons/creditcards/creditcards_48x48.png +0 -0
  87. data/{public → app/assets}/images/icons/creditcards/creditcards_64x64.png +0 -0
  88. data/{public → app/assets}/images/icons/crm/crm_16x16.png +0 -0
  89. data/{public → app/assets}/images/icons/crm/crm_light_16x16.png +0 -0
  90. data/{public → app/assets}/images/icons/csr/csr_16x16.png +0 -0
  91. data/{public → app/assets}/images/icons/csr/csr_256x256.png +0 -0
  92. data/{public → app/assets}/images/icons/csr/csr_500x500.png +0 -0
  93. data/{public → app/assets}/images/icons/data/data_16x16.png +0 -0
  94. data/{public → app/assets}/images/icons/data/data_32x32.png +0 -0
  95. data/{public → app/assets}/images/icons/data/data_64x64.png +0 -0
  96. data/app/assets/images/icons/database/database_105x105.png +0 -0
  97. data/app/assets/images/icons/database/database_105x105_active.png +0 -0
  98. data/{public → app/assets}/images/icons/database/database_16x16.png +0 -0
  99. data/{public → app/assets}/images/icons/database_column/database_column_16x16.png +0 -0
  100. data/{public → app/assets}/images/icons/db_edit_data/db_edit_data_16x16.png +0 -0
  101. data/{public → app/assets}/images/icons/db_table/db_table_16x16.png +0 -0
  102. data/{public → app/assets}/images/icons/delete/delete_16x16.png +0 -0
  103. data/{public → app/assets}/images/icons/delete/delete_24x24.png +0 -0
  104. data/{public → app/assets}/images/icons/delete/delete_32x32.png +0 -0
  105. data/{public → app/assets}/images/icons/delete/delete_48x48.png +0 -0
  106. data/{public → app/assets}/images/icons/doc_settings/doc_settings_16x16.png +0 -0
  107. data/{public → app/assets}/images/icons/document/document_16x16.png +0 -0
  108. data/{public → app/assets}/images/icons/document/document_24x24.png +0 -0
  109. data/{public → app/assets}/images/icons/document/document_32x32.png +0 -0
  110. data/{public → app/assets}/images/icons/document/document_48x48.png +0 -0
  111. data/{public → app/assets}/images/icons/document_check/document_check_16x16.png +0 -0
  112. data/{public → app/assets}/images/icons/document_check/document_check_24x24.png +0 -0
  113. data/{public → app/assets}/images/icons/document_check/document_check_32x32.png +0 -0
  114. data/{public → app/assets}/images/icons/document_check/document_check_48x48.png +0 -0
  115. data/{public → app/assets}/images/icons/document_down/document_down_16x16.png +0 -0
  116. data/{public → app/assets}/images/icons/document_down/document_down_24x24.png +0 -0
  117. data/{public → app/assets}/images/icons/document_down/document_down_32x32.png +0 -0
  118. data/{public → app/assets}/images/icons/document_down/document_down_48x48.png +0 -0
  119. data/{public → app/assets}/images/icons/document_edit/document_edit_16x16.png +0 -0
  120. data/{public → app/assets}/images/icons/document_edit/document_edit_24x24.png +0 -0
  121. data/{public → app/assets}/images/icons/document_edit/document_edit_32x32.png +0 -0
  122. data/{public → app/assets}/images/icons/document_edit/document_edit_48x48.png +0 -0
  123. data/{public → app/assets}/images/icons/document_info/document_info_16x16.png +0 -0
  124. data/{public → app/assets}/images/icons/document_info/document_info_24x24.png +0 -0
  125. data/{public → app/assets}/images/icons/document_info/document_info_32x32.png +0 -0
  126. data/{public → app/assets}/images/icons/document_info/document_info_48x48.png +0 -0
  127. data/{public → app/assets}/images/icons/document_lock/document_lock_16x16.png +0 -0
  128. data/{public → app/assets}/images/icons/document_lock/document_lock_24x24.png +0 -0
  129. data/{public → app/assets}/images/icons/document_lock/document_lock_32x32.png +0 -0
  130. data/{public → app/assets}/images/icons/document_lock/document_lock_48x48.png +0 -0
  131. data/{public → app/assets}/images/icons/document_ok/document_ok_16x16.png +0 -0
  132. data/{public → app/assets}/images/icons/document_ok/document_ok_24x24.png +0 -0
  133. data/{public → app/assets}/images/icons/document_ok/document_ok_32x32.png +0 -0
  134. data/{public → app/assets}/images/icons/document_ok/document_ok_48x48.png +0 -0
  135. data/{public → app/assets}/images/icons/document_out/document_out_16x16.png +0 -0
  136. data/{public → app/assets}/images/icons/document_out/document_out_24x24.png +0 -0
  137. data/{public → app/assets}/images/icons/document_out/document_out_32x32.png +0 -0
  138. data/{public → app/assets}/images/icons/document_out/document_out_48x48.png +0 -0
  139. data/{public → app/assets}/images/icons/document_pulse/document_pulse_16x16.png +0 -0
  140. data/{public → app/assets}/images/icons/document_pulse/document_pulse_24x24.png +0 -0
  141. data/{public → app/assets}/images/icons/document_pulse/document_pulse_32x32.png +0 -0
  142. data/{public → app/assets}/images/icons/document_pulse/document_pulse_48x48.png +0 -0
  143. data/{public → app/assets}/images/icons/document_pulse/document_pulse_64x64.png +0 -0
  144. data/{public → app/assets}/images/icons/document_up/document_up_16x16.png +0 -0
  145. data/{public → app/assets}/images/icons/document_up/document_up_24x24.png +0 -0
  146. data/{public → app/assets}/images/icons/document_up/document_up_32x32.png +0 -0
  147. data/{public → app/assets}/images/icons/document_up/document_up_48x48.png +0 -0
  148. data/{public → app/assets}/images/icons/documents/documents_16x16.png +0 -0
  149. data/{public → app/assets}/images/icons/documents/documents_24x24.png +0 -0
  150. data/{public → app/assets}/images/icons/documents/documents_32x32.png +0 -0
  151. data/{public → app/assets}/images/icons/documents/documents_48x48.png +0 -0
  152. data/{public → app/assets}/images/icons/edit/edit_16x16.png +0 -0
  153. data/{public → app/assets}/images/icons/edit/edit_24x24.png +0 -0
  154. data/{public → app/assets}/images/icons/edit/edit_32x32.png +0 -0
  155. data/{public → app/assets}/images/icons/edit/edit_48x48.png +0 -0
  156. data/{public → app/assets}/images/icons/exit/exit_16x16.png +0 -0
  157. data/{public → app/assets}/images/icons/exit/exit_24x24.png +0 -0
  158. data/{public → app/assets}/images/icons/exit/exit_32x32.png +0 -0
  159. data/{public → app/assets}/images/icons/exit/exit_48x48.png +0 -0
  160. data/{public → app/assets}/images/icons/eye/eye_16x16.png +0 -0
  161. data/{public → app/assets}/images/icons/eye/eye_24x24.png +0 -0
  162. data/{public → app/assets}/images/icons/eye/eye_32x32.png +0 -0
  163. data/{public → app/assets}/images/icons/eye/eye_48x48.png +0 -0
  164. data/app/assets/images/icons/file-upload/file_upload-light.png +0 -0
  165. data/app/assets/images/icons/file-upload/file_upload_16x16-light.png +0 -0
  166. data/app/assets/images/icons/file-upload/file_upload_16x16.png +0 -0
  167. data/{public → app/assets}/images/icons/file_manager/file_manager_16x16.png +0 -0
  168. data/{public → app/assets}/images/icons/file_manager/file_manager_light_16x16.png +0 -0
  169. data/{public → app/assets}/images/icons/folder/folder_16x16.png +0 -0
  170. data/{public → app/assets}/images/icons/folder/folder_24x24.png +0 -0
  171. data/{public → app/assets}/images/icons/folder/folder_32x32.png +0 -0
  172. data/{public → app/assets}/images/icons/folder/folder_48x48.png +0 -0
  173. data/{public → app/assets}/images/icons/folders/folders_64x64.png +0 -0
  174. data/{public → app/assets}/images/icons/footprints/footprints_16x16.png +0 -0
  175. data/{public → app/assets}/images/icons/footprints/footprints_light_16x16.png +0 -0
  176. data/{public → app/assets}/images/icons/form/form_16x16.png +0 -0
  177. data/{public → app/assets}/images/icons/form/form_light_16x16.png +0 -0
  178. data/{public → app/assets}/images/icons/gantt/gantt_24x24.png +0 -0
  179. data/{public → app/assets}/images/icons/gear/gear_16x16.png +0 -0
  180. data/{public → app/assets}/images/icons/gear/gear_24x24.png +0 -0
  181. data/{public → app/assets}/images/icons/gear/gear_32x32.png +0 -0
  182. data/{public → app/assets}/images/icons/gear/gear_48x48.png +0 -0
  183. data/{public → app/assets}/images/icons/gear/gear_light_16x16.png +0 -0
  184. data/app/assets/images/icons/globe/globe_105x105.png +0 -0
  185. data/app/assets/images/icons/globe/globe_105x105_active.png +0 -0
  186. data/{public → app/assets}/images/icons/globe/globe_16x16.png +0 -0
  187. data/{public → app/assets}/images/icons/globe/globe_64x64.png +0 -0
  188. data/{public → app/assets}/images/icons/globe/globe_light_16x16.png +0 -0
  189. data/{public → app/assets}/images/icons/globe_disconnected/globe_disconnected_16x16.png +0 -0
  190. data/{public → app/assets}/images/icons/globe_disconnected/globe_disconnected_24x24.png +0 -0
  191. data/{public → app/assets}/images/icons/globe_disconnected/globe_disconnected_32x32.png +0 -0
  192. data/{public → app/assets}/images/icons/globe_disconnected/globe_disconnected_48x48.png +0 -0
  193. data/{public → app/assets}/images/icons/google-map/google-map_48x48.png +0 -0
  194. data/{public → app/assets}/images/icons/grid/grid_16x16.png +0 -0
  195. data/{public → app/assets}/images/icons/grid/grid_64x64.png +0 -0
  196. data/app/assets/images/icons/hide/hide_16x16.png +0 -0
  197. data/app/assets/images/icons/hide/hide_32x32.png +0 -0
  198. data/app/assets/images/icons/hide/hide_48x48.png +0 -0
  199. data/{public → app/assets}/images/icons/hierarchy/hierarchy_16x16.png +0 -0
  200. data/{public → app/assets}/images/icons/history/history_16x16.png +0 -0
  201. data/{public → app/assets}/images/icons/history/history_64x64.png +0 -0
  202. data/{public → app/assets}/images/icons/history/history_light_16x16.png +0 -0
  203. data/{public → app/assets}/images/icons/home/home_16x16.png +0 -0
  204. data/{public → app/assets}/images/icons/home/home_48x48.png +0 -0
  205. data/{public → app/assets}/images/icons/ia/ia_16x16.png +0 -0
  206. data/{public → app/assets}/images/icons/index/index_16x16.png +0 -0
  207. data/{public → app/assets}/images/icons/index/index_24x24.png +0 -0
  208. data/{public → app/assets}/images/icons/index/index_32x32.png +0 -0
  209. data/{public → app/assets}/images/icons/index/index_48x48.png +0 -0
  210. data/{public → app/assets}/images/icons/information/information_16x16.png +0 -0
  211. data/app/assets/images/icons/information/information_light_16x16.png +0 -0
  212. data/{public → app/assets}/images/icons/invoicing/invoicing_48x48.png +0 -0
  213. data/{public → app/assets}/images/icons/invoicing/invoicing_64x64.png +0 -0
  214. data/app/assets/images/icons/key/key_105x105.png +0 -0
  215. data/app/assets/images/icons/key/key_105x105_active.png +0 -0
  216. data/app/assets/images/icons/key/key_16x16-light.png +0 -0
  217. data/{public → app/assets}/images/icons/key/key_16x16.png +0 -0
  218. data/{public → app/assets}/images/icons/key/key_64x64.png +0 -0
  219. data/{public → app/assets}/images/icons/knitkit/knitkit_16x16.png +0 -0
  220. data/{public → app/assets}/images/icons/knitkit/knitkit_48x48.png +0 -0
  221. data/{public → app/assets}/images/icons/knitkit/knitkit_light_16x16.png +0 -0
  222. data/app/assets/images/icons/link/link_16x16.png +0 -0
  223. data/app/assets/images/icons/login/login_48x48.png +0 -0
  224. data/{public → app/assets}/images/icons/magnifying-glass/magnifying-glass_48x48.png +0 -0
  225. data/{public → app/assets}/images/icons/mail/mail_16x16.png +0 -0
  226. data/{public → app/assets}/images/icons/mail/mail_24x24.png +0 -0
  227. data/{public → app/assets}/images/icons/mail/mail_32x32.png +0 -0
  228. data/app/assets/images/icons/mail/mail_48x48.png +0 -0
  229. data/app/assets/images/icons/manage_profile/manage_profile_48x48.png +0 -0
  230. data/{public → app/assets}/images/icons/map/map_16x16.png +0 -0
  231. data/{public → app/assets}/images/icons/map/map_24x24.png +0 -0
  232. data/{public → app/assets}/images/icons/map/map_32x32.png +0 -0
  233. data/app/assets/images/icons/map/map_48x48.png +0 -0
  234. data/{public → app/assets}/images/icons/menu/menu_16x16.png +0 -0
  235. data/{public → app/assets}/images/icons/next/next_16x16.png +0 -0
  236. data/{public → app/assets}/images/icons/next/next_24x24.png +0 -0
  237. data/{public → app/assets}/images/icons/next/next_32x32.png +0 -0
  238. data/{public → app/assets}/images/icons/next/next_48x48.png +0 -0
  239. data/{public → app/assets}/images/icons/note/note_16x16.png +0 -0
  240. data/{public → app/assets}/images/icons/note/note_24x24.png +0 -0
  241. data/{public → app/assets}/images/icons/note/note_32x32.png +0 -0
  242. data/{public → app/assets}/images/icons/note/note_48x48.png +0 -0
  243. data/{public → app/assets}/images/icons/ordered_list/ordered_list_16x16.png +0 -0
  244. data/app/assets/images/icons/package/logo.png +0 -0
  245. data/{public → app/assets}/images/icons/package/package_16x16.png +0 -0
  246. data/{public → app/assets}/images/icons/package/package_24x24.png +0 -0
  247. data/{public → app/assets}/images/icons/package/package_32x32.png +0 -0
  248. data/app/assets/images/icons/package/package_48x48.png +0 -0
  249. data/{public → app/assets}/images/icons/package/package_64x64.png +0 -0
  250. data/{public → app/assets}/images/icons/package/package_light_16x16.png +0 -0
  251. data/{public → app/assets}/images/icons/palette/palette_64x64.png +0 -0
  252. data/{public → app/assets}/images/icons/person/person_16x16.png +0 -0
  253. data/{public → app/assets}/images/icons/phone/phone_16x16.png +0 -0
  254. data/{public → app/assets}/images/icons/phone/phone_64x64.png +0 -0
  255. data/{public → app/assets}/images/icons/picture/picture_16x16.png +0 -0
  256. data/{public → app/assets}/images/icons/play/play_16x16.png +0 -0
  257. data/{public → app/assets}/images/icons/preferences/preferences_16x16.png +0 -0
  258. data/{public → app/assets}/images/icons/preferences/preferences_24x24.png +0 -0
  259. data/{public → app/assets}/images/icons/preferences/preferences_32x32.png +0 -0
  260. data/{public → app/assets}/images/icons/preferences/preferences_48x48.png +0 -0
  261. data/{public → app/assets}/images/icons/preview/preview_16x16.png +0 -0
  262. data/{public → app/assets}/images/icons/preview/preview_24x24.png +0 -0
  263. data/{public → app/assets}/images/icons/preview/preview_32x32.png +0 -0
  264. data/{public → app/assets}/images/icons/preview/preview_48x48.png +0 -0
  265. data/{public → app/assets}/images/icons/product/product_16x16.png +0 -0
  266. data/{public → app/assets}/images/icons/product/product_24x24.png +0 -0
  267. data/{public → app/assets}/images/icons/product/product_32x32.png +0 -0
  268. data/app/assets/images/icons/product/product_48x48.png +0 -0
  269. data/{public → app/assets}/images/icons/product/product_64x64.png +0 -0
  270. data/{public → app/assets}/images/icons/product/product_light_16x16.png +0 -0
  271. data/{public → app/assets}/images/icons/properties/properties_16x16.png +0 -0
  272. data/{public → app/assets}/images/icons/properties/properties_24x24.png +0 -0
  273. data/{public → app/assets}/images/icons/properties/properties_32x32.png +0 -0
  274. data/{public → app/assets}/images/icons/properties/properties_48x48.png +0 -0
  275. data/{public → app/assets}/images/icons/query/query_16x16.png +0 -0
  276. data/app/assets/images/icons/recycle/recycle_16x16.png +0 -0
  277. data/{public → app/assets}/images/icons/recycle/recycle_24x24.png +0 -0
  278. data/{public → app/assets}/images/icons/recycle/recycle_32x32.png +0 -0
  279. data/{public → app/assets}/images/icons/recycle/recycle_48x48.png +0 -0
  280. data/{public → app/assets}/images/icons/redo/redo_16x16.png +0 -0
  281. data/{public → app/assets}/images/icons/redo/redo_24x24.png +0 -0
  282. data/{public → app/assets}/images/icons/redo/redo_32x32.png +0 -0
  283. data/{public → app/assets}/images/icons/redo/redo_48x48.png +0 -0
  284. data/{public → app/assets}/images/icons/refresh/refresh_16x16.png +0 -0
  285. data/{public → app/assets}/images/icons/refresh/refresh_24x24.png +0 -0
  286. data/{public → app/assets}/images/icons/refresh/refresh_32x32.png +0 -0
  287. data/{public → app/assets}/images/icons/refresh/refresh_48x48.png +0 -0
  288. data/{public → app/assets}/images/icons/remove/remove_16x16.png +0 -0
  289. data/{public → app/assets}/images/icons/remove/remove_24x24.png +0 -0
  290. data/{public → app/assets}/images/icons/remove/remove_32x32.png +0 -0
  291. data/{public → app/assets}/images/icons/remove/remove_48x48.png +0 -0
  292. data/{public → app/assets}/images/icons/rename/rename_16x16.png +0 -0
  293. data/{public → app/assets}/images/icons/rename/rename_24x24.png +0 -0
  294. data/{public → app/assets}/images/icons/rename/rename_32xr2.png +0 -0
  295. data/{public → app/assets}/images/icons/rename/rename_48x48.png +0 -0
  296. data/{public → app/assets}/images/icons/report/report_16x16.png +0 -0
  297. data/app/assets/images/icons/reset_password/reset_password_48x48.png +0 -0
  298. data/{public → app/assets}/images/icons/rowselect/rowselect_16x16.png +0 -0
  299. data/{public → app/assets}/images/icons/save/save_16x16.png +0 -0
  300. data/{public → app/assets}/images/icons/save/save_24x24.png +0 -0
  301. data/{public → app/assets}/images/icons/save/save_32x32.png +0 -0
  302. data/{public → app/assets}/images/icons/save/save_48x48.png +0 -0
  303. data/{public → app/assets}/images/icons/save_as/save_as_16x16.png +0 -0
  304. data/{public → app/assets}/images/icons/save_as/save_as_24x24.png +0 -0
  305. data/{public → app/assets}/images/icons/save_as/save_as_32x32.png +0 -0
  306. data/{public → app/assets}/images/icons/save_as/save_as_48x48.png +0 -0
  307. data/{public → app/assets}/images/icons/scaffold/scaffold_16x16.png +0 -0
  308. data/{public → app/assets}/images/icons/scaffold/scaffold_light_16x16.png +0 -0
  309. data/{public → app/assets}/images/icons/search/search_16x16.png +0 -0
  310. data/{public → app/assets}/images/icons/search/search_24x24.png +0 -0
  311. data/{public → app/assets}/images/icons/search/search_32x32.png +0 -0
  312. data/app/assets/images/icons/search/search_48x48.png +0 -0
  313. data/{public → app/assets}/images/icons/search/search_light_16x16.png +0 -0
  314. data/{public → app/assets}/images/icons/section/section_16x16.png +0 -0
  315. data/{public → app/assets}/images/icons/section/section_24x24.png +0 -0
  316. data/{public → app/assets}/images/icons/section/section_32x32.png +0 -0
  317. data/{public → app/assets}/images/icons/section/section_48x48.png +0 -0
  318. data/{public → app/assets}/images/icons/section_lock/section_lock_16x16.png +0 -0
  319. data/{public → app/assets}/images/icons/section_lock/section_lock_24x24.png +0 -0
  320. data/{public → app/assets}/images/icons/section_lock/section_lock_32x32.png +0 -0
  321. data/{public → app/assets}/images/icons/section_lock/section_lock_48x48.png +0 -0
  322. data/{public → app/assets}/images/icons/secure/secure_16x16.png +0 -0
  323. data/{public → app/assets}/images/icons/settings/settings_16x16.png +0 -0
  324. data/{public → app/assets}/images/icons/settings/settings_light_16x16.png +0 -0
  325. data/{public → app/assets}/images/icons/shopping_cart/shopping_card_64x64.png +0 -0
  326. data/{public → app/assets}/images/icons/shopping_cart/shopping_cart_32x32.png +0 -0
  327. data/app/assets/images/icons/shopping_cart/shopping_cart_48x48.png +0 -0
  328. data/{public → app/assets}/images/icons/sign_up/sign_up_32x32.png +0 -0
  329. data/app/assets/images/icons/sign_up/sign_up_48x48.png +0 -0
  330. data/{public → app/assets}/images/icons/sign_up/sign_up_64x64.png +0 -0
  331. data/{public → app/assets}/images/icons/simple_arrow/simple_arrow_16x16.png +0 -0
  332. data/{public → app/assets}/images/icons/small_gear/small_gear_16x16.png +0 -0
  333. data/{public → app/assets}/images/icons/sql/sql_16x16.png +0 -0
  334. data/{public → app/assets}/images/icons/tables/tables_16x16.png +0 -0
  335. data/app/assets/images/icons/template/template_16x16.png +0 -0
  336. data/{public → app/assets}/images/icons/theme/theme_16x16.png +0 -0
  337. data/{public → app/assets}/images/icons/theme_upload/theme_upload_16x16.png +0 -0
  338. data/{public → app/assets}/images/icons/ticket/tag_16x16.png +0 -0
  339. data/{public → app/assets}/images/icons/undo/undo_16x16.png +0 -0
  340. data/app/assets/images/icons/unhide/unhide_16x16.png +0 -0
  341. data/app/assets/images/icons/user/user_105x105.png +0 -0
  342. data/app/assets/images/icons/user/user_105x105_active.png +0 -0
  343. data/{public → app/assets}/images/icons/user/user_128x128.png +0 -0
  344. data/{public → app/assets}/images/icons/user/user_16x16.png +0 -0
  345. data/app/assets/images/icons/user/user_48x48.png +0 -0
  346. data/{public → app/assets}/images/icons/user/user_64x64.png +0 -0
  347. data/{public → app/assets}/images/icons/user/user_light_16x16.png +0 -0
  348. data/{public → app/assets}/images/icons/user_mgt/user_mgt_16x16.png +0 -0
  349. data/{public → app/assets}/images/icons/user_mgt/user_mgt_light_16x16.png +0 -0
  350. data/{public → app/assets}/images/icons/vcard/vcard_16x16.png +0 -0
  351. data/{public → app/assets}/images/icons/view/view_16x16.png +0 -0
  352. data/{public → app/assets}/images/icons/view/view_24x24.png +0 -0
  353. data/{public → app/assets}/images/icons/view/view_32x32.png +0 -0
  354. data/{public → app/assets}/images/icons/view/view_48x48.png +0 -0
  355. data/{public → app/assets}/images/icons/warning/waring_16x16.png +0 -0
  356. data/app/assets/images/icons/website/website_105x105.png +0 -0
  357. data/app/assets/images/icons/website/website_105x105_active.png +0 -0
  358. data/{public → app/assets}/images/icons/website/website_16x16.png +0 -0
  359. data/{public → app/assets}/images/icons/website_download/website_download_16x16.png +0 -0
  360. data/{public → app/assets}/images/icons/website_publications/website_publications_16x16.png +0 -0
  361. data/{public → app/assets}/images/icons/website_upload/website_upload_16x16.png +0 -0
  362. data/{public → app/assets}/images/img_blank.png +0 -0
  363. data/{public → app/assets}/images/loading_icon.gif +0 -0
  364. data/app/assets/images/splash/icons/console_icon.png +0 -0
  365. data/app/assets/images/splash/icons/console_icon_active.png +0 -0
  366. data/app/assets/images/splash/icons/db_icon.png +0 -0
  367. data/app/assets/images/splash/icons/db_icon_active.png +0 -0
  368. data/app/assets/images/splash/icons/help_icon.png +0 -0
  369. data/app/assets/images/splash/icons/help_icon_active.png +0 -0
  370. data/{public → app/assets}/images/splash_screen/browse_docs_icon.png +0 -0
  371. data/{public → app/assets}/images/splash_screen/contact_mgt_icon.png +0 -0
  372. data/{public → app/assets}/images/splash_screen/desktop_icon.png +0 -0
  373. data/{public → app/assets}/images/tab/tab-default-close.png +0 -0
  374. data/{public → app/assets}/images/unchecked.gif +0 -0
  375. data/{public → app/assets}/images/wallpaper/truenorth_tech.png +0 -0
  376. data/app/assets/javascripts/codemirror_compassae.js +31 -0
  377. data/app/assets/javascripts/erp_app/authentication/compass_user.js +97 -0
  378. data/app/assets/javascripts/erp_app/desktop/app.js +15 -0
  379. data/app/assets/javascripts/erp_app/desktop/applications/audit_log_viewer/app.js +13 -0
  380. data/app/assets/javascripts/erp_app/desktop/applications/audit_log_viewer/module.js +38 -0
  381. data/app/assets/javascripts/erp_app/desktop/applications/configuration_management/app.js +17 -0
  382. data/{public → app/assets}/javascripts/erp_app/desktop/applications/configuration_management/configuration_options_panel.js +0 -0
  383. data/{public → app/assets}/javascripts/erp_app/desktop/applications/configuration_management/configuration_tree_panel.js +0 -0
  384. data/{public → app/assets}/javascripts/erp_app/desktop/applications/configuration_management/configuration_types_panel.js +0 -0
  385. data/app/assets/javascripts/erp_app/desktop/applications/configuration_management/module.js +96 -0
  386. data/{public/javascripts/erp_app/desktop/applications/configuration_management/stores.0.js → app/assets/javascripts/erp_app/desktop/applications/configuration_management/stores.js} +0 -0
  387. data/app/assets/javascripts/erp_app/desktop/applications/file_manager/app.js +13 -0
  388. data/app/assets/javascripts/erp_app/desktop/applications/file_manager/module.js +134 -0
  389. data/app/assets/javascripts/erp_app/desktop/applications/job_tracker/app.js +14 -0
  390. data/{public → app/assets}/javascripts/erp_app/desktop/applications/job_tracker/jobs_grid.js +0 -0
  391. data/app/assets/javascripts/erp_app/desktop/applications/job_tracker/module.js +44 -0
  392. data/app/assets/javascripts/erp_app/desktop/applications/security_management/app.js +24 -0
  393. data/app/assets/javascripts/erp_app/desktop/applications/security_management/capabilities_panel.js +54 -0
  394. data/app/assets/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +245 -0
  395. data/{public → app/assets}/javascripts/erp_app/desktop/applications/security_management/common_widget.js +0 -0
  396. data/app/assets/javascripts/erp_app/desktop/applications/security_management/groups_effective_security.js +80 -0
  397. data/app/assets/javascripts/erp_app/desktop/applications/security_management/groups_panel.js +271 -0
  398. data/app/assets/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +245 -0
  399. data/app/assets/javascripts/erp_app/desktop/applications/security_management/mixins/widget.js +39 -0
  400. data/app/assets/javascripts/erp_app/desktop/applications/security_management/module.js +155 -0
  401. data/app/assets/javascripts/erp_app/desktop/applications/security_management/north_panel.js +23 -0
  402. data/app/assets/javascripts/erp_app/desktop/applications/security_management/roles_panel.js +334 -0
  403. data/app/assets/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +258 -0
  404. data/app/assets/javascripts/erp_app/desktop/applications/security_management/south_panel.js +70 -0
  405. data/app/assets/javascripts/erp_app/desktop/applications/system_management/app.js +15 -0
  406. data/app/assets/javascripts/erp_app/desktop/applications/system_management/form.js +100 -0
  407. data/app/assets/javascripts/erp_app/desktop/applications/system_management/module.js +227 -0
  408. data/app/assets/javascripts/erp_app/desktop/applications/system_management/stores.js +48 -0
  409. data/app/assets/javascripts/erp_app/desktop/applications/tail/app.js +14 -0
  410. data/{public → app/assets}/javascripts/erp_app/desktop/applications/tail/module.js +0 -0
  411. data/{public → app/assets}/javascripts/erp_app/desktop/applications/tail/tail_panel.js +0 -0
  412. data/app/assets/javascripts/erp_app/desktop/applications/user_management/app.js +13 -0
  413. data/app/assets/javascripts/erp_app/desktop/applications/user_management/module.js +454 -0
  414. data/app/assets/javascripts/erp_app/desktop/applications/web_navigator/app.js +13 -0
  415. data/{public → app/assets}/javascripts/erp_app/desktop/applications/web_navigator/module.js +0 -0
  416. data/app/assets/javascripts/erp_app/desktop/ext_ux_desktop_module.js +1016 -0
  417. data/app/assets/javascripts/erp_app/desktop/select_roles_window.js +267 -0
  418. data/app/assets/javascripts/erp_app/ecommerce/credit_card_window.js +343 -0
  419. data/app/assets/javascripts/erp_app/jquery_support.js +45 -0
  420. data/app/assets/javascripts/erp_app/login/ResetPassword.js +128 -0
  421. data/app/assets/javascripts/erp_app/login/mobile.js +77 -0
  422. data/app/assets/javascripts/erp_app/login/window.js +238 -0
  423. data/app/assets/javascripts/erp_app/organizer/app.js +15 -0
  424. data/app/assets/javascripts/erp_app/organizer/applications/crm/app.js +14 -0
  425. data/app/assets/javascripts/erp_app/organizer/applications/crm/base.js +64 -0
  426. data/{public → app/assets}/javascripts/erp_app/organizer/applications/crm/relationship_grid.js +0 -0
  427. data/app/assets/javascripts/erp_app/organizer/layout.js +258 -0
  428. data/{public → app/assets}/javascripts/erp_app/organizer/preference_window.js +0 -0
  429. data/app/assets/javascripts/erp_app/shared/DateTimeField.js +77 -0
  430. data/app/assets/javascripts/erp_app/shared/MoneyField.js +120 -0
  431. data/app/assets/javascripts/erp_app/shared/MultiOptions.js +182 -0
  432. data/app/assets/javascripts/erp_app/shared/Party/AppsInstalledPanel.js +302 -0
  433. data/app/assets/javascripts/erp_app/shared/Party/LoginInfoPanel.js +291 -0
  434. data/app/assets/javascripts/erp_app/shared/Party/SecurityPanel.js +448 -0
  435. data/app/assets/javascripts/erp_app/shared/Party/UserTypePanel.js +198 -0
  436. data/{public → app/assets}/javascripts/erp_app/shared/PartySearchField.js +0 -0
  437. data/app/assets/javascripts/erp_app/shared/TimePickerField.js +189 -0
  438. data/{public → app/assets}/javascripts/erp_app/shared/TransitionCardLayout.js +0 -0
  439. data/app/assets/javascripts/erp_app/shared/TypeSelectionTree.js +510 -0
  440. data/app/assets/javascripts/erp_app/shared/active_ext/active_ext_grid.js +351 -0
  441. data/{public → app/assets}/javascripts/erp_app/shared/active_ext/active_ext_grid_panel.js +0 -0
  442. data/app/assets/javascripts/erp_app/shared/audit_log/GridPanel.js +214 -0
  443. data/{public → app/assets}/javascripts/erp_app/shared/audit_log/ItemGridPanel.js +0 -0
  444. data/app/assets/javascripts/erp_app/shared/audit_log/TabPanel.js +116 -0
  445. data/app/assets/javascripts/erp_app/shared/compass_ckeditor.js +267 -0
  446. data/app/assets/javascripts/erp_app/shared/compass_codemirror.js +464 -0
  447. data/{public → app/assets}/javascripts/erp_app/shared/configuration/configuration_form.js +0 -0
  448. data/app/assets/javascripts/erp_app/shared/configuration/configuration_panel.js +141 -0
  449. data/{public → app/assets}/javascripts/erp_app/shared/coolclock/tray_clock2.js +0 -0
  450. data/app/assets/javascripts/erp_app/shared/crm/ContactMechanismGrid.js +754 -0
  451. data/app/assets/javascripts/erp_app/shared/crm/PartyDetailsPanel.js +344 -0
  452. data/app/assets/javascripts/erp_app/shared/crm/PartyForm.js +321 -0
  453. data/{public → app/assets}/javascripts/erp_app/shared/crm/PartyFormPanel.js +0 -0
  454. data/app/assets/javascripts/erp_app/shared/crm/PartyGrid.js +595 -0
  455. data/app/assets/javascripts/erp_app/shared/crm/UserForm.js +302 -0
  456. data/app/assets/javascripts/erp_app/shared/crm/UsersGrid.js +535 -0
  457. data/app/assets/javascripts/erp_app/shared/dynamic_editable_grid.js +181 -0
  458. data/app/assets/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +65 -0
  459. data/app/assets/javascripts/erp_app/shared/dynamic_form_fields.js +104 -0
  460. data/{public → app/assets}/javascripts/erp_app/shared/encryption/encryption.js +0 -0
  461. data/app/assets/javascripts/erp_app/shared/erp_app_shared.js +13 -0
  462. data/app/assets/javascripts/erp_app/shared/file_manager_tree.js +750 -0
  463. data/app/assets/javascripts/erp_app/shared/file_upload/Ext.ux.panel.UploadPanel.js +581 -0
  464. data/{public → app/assets}/javascripts/erp_app/shared/file_upload/plupload.flash.swf +0 -0
  465. data/{public → app/assets}/javascripts/erp_app/shared/file_upload/plupload.full.js +0 -0
  466. data/{public → app/assets}/javascripts/erp_app/shared/file_upload/plupload.silverlight.xap +0 -0
  467. data/app/assets/javascripts/erp_app/shared/file_upload/upload_window.js +65 -0
  468. data/{public → app/assets}/javascripts/erp_app/shared/google_map_panel.js +0 -0
  469. data/app/assets/javascripts/erp_app/shared/notes_grid.js +338 -0
  470. data/{public → app/assets}/javascripts/erp_app/shared/preferences/application_management_panel.js +0 -0
  471. data/{public → app/assets}/javascripts/erp_app/shared/preferences/form.js +0 -0
  472. data/app/assets/javascripts/erp_app/shared/profile_management_panel.js +140 -0
  473. data/{public → app/assets}/javascripts/erp_app/shared/status_window.js +0 -0
  474. data/app/assets/javascripts/erp_app/utility.js +809 -0
  475. data/app/assets/javascripts/erp_app/widgets.js +122 -0
  476. data/{public → app/assets}/javascripts/jquery_plugins/jquery.address.min.js +0 -0
  477. data/{public → app/assets}/javascripts/jquery_plugins/jquery.loadmask.min.js +0 -0
  478. data/app/assets/stylesheets/codemirror_compassae.css +14 -0
  479. data/app/assets/stylesheets/erp_app/desktop/applications/audit_log_viewer/app.css +11 -0
  480. data/app/assets/stylesheets/erp_app/desktop/applications/configuration_management/app.css +11 -0
  481. data/app/assets/stylesheets/erp_app/desktop/applications/file_manager/app.css +11 -0
  482. data/app/assets/stylesheets/erp_app/desktop/applications/job_tracker/app.css +11 -0
  483. data/app/assets/stylesheets/erp_app/desktop/applications/scaffold/app.css +11 -0
  484. data/app/assets/stylesheets/erp_app/desktop/applications/security_management/app.css +12 -0
  485. data/{public → app/assets}/stylesheets/erp_app/desktop/applications/security_management/styles.css +0 -0
  486. data/app/assets/stylesheets/erp_app/desktop/applications/tail/app.css +11 -0
  487. data/app/assets/stylesheets/erp_app/desktop/applications/user_management/app.css +11 -0
  488. data/app/assets/stylesheets/erp_app/desktop/base.css +262 -0
  489. data/app/assets/stylesheets/erp_app/login/main.css +17 -0
  490. data/app/assets/stylesheets/erp_app/organizer/applications/crm/app.css +12 -0
  491. data/app/assets/stylesheets/erp_app/organizer/base.css +19 -0
  492. data/app/assets/stylesheets/erp_app/shared/compass-ext-all.css +599 -0
  493. data/app/assets/stylesheets/erp_app/shared/crm.css +45 -0
  494. data/app/assets/stylesheets/erp_app/shared/erp_app_shared.css +12 -0
  495. data/{public → app/assets}/stylesheets/erp_app/shared/grid_cell.css +0 -0
  496. data/{public → app/assets}/stylesheets/erp_app/shared/hover_finger.css +0 -0
  497. data/app/assets/stylesheets/jquery_plugins/jquery.loadmask.css +53 -0
  498. data/app/controllers/api/v1/applications_controller.rb +179 -0
  499. data/app/controllers/erp_app/application_controller.rb +7 -1
  500. data/app/controllers/erp_app/desktop/base_controller.rb +0 -1
  501. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +5 -3
  502. data/app/controllers/erp_app/desktop/system_management/types_controller.rb +126 -0
  503. data/app/controllers/erp_app/desktop/user_management/application_management_controller.rb +68 -36
  504. data/app/controllers/erp_app/desktop/user_management/base_controller.rb +0 -0
  505. data/app/controllers/erp_app/desktop/user_management/role_management_controller.rb +0 -0
  506. data/app/controllers/erp_app/login_controller.rb +30 -2
  507. data/app/controllers/erp_app/organizer/base_controller.rb +3 -30
  508. data/app/controllers/erp_app/organizer/crm/contact_mechanisms_controller.rb +4 -2
  509. data/app/controllers/erp_app/organizer/crm/parties_controller.rb +26 -2
  510. data/app/controllers/erp_app/organizer/crm/users_controller.rb +22 -0
  511. data/app/controllers/erp_app/public_controller.rb +3 -0
  512. data/app/controllers/erp_app/shared/audit_log_controller.rb +1 -1
  513. data/app/controllers/erp_app/shared/configuration_controller.rb +1 -1
  514. data/app/controllers/erp_app/shared/notes_controller.rb +0 -6
  515. data/app/controllers/erp_app/widget_proxy_controller.rb +19 -5
  516. data/app/mailers/crm_mailer.rb +2 -1
  517. data/app/models/application.rb +88 -6
  518. data/app/models/configuration.rb +7 -0
  519. data/app/models/configuration_item.rb +6 -0
  520. data/app/models/extensions/party.rb +9 -0
  521. data/app/models/extensions/user.rb +42 -15
  522. data/app/models/preference_type.rb +1 -1
  523. data/app/views/erp_app/desktop/base/index.erb +253 -203
  524. data/app/views/erp_app/login/index.erb +28 -20
  525. data/app/views/erp_app/login/reset_password.erb +30 -0
  526. data/app/views/erp_app/organizer/base/index.erb +28 -23
  527. data/app/views/erp_app/organizer/crm/parties/details.erb +1 -1
  528. data/config/routes.rb +29 -17
  529. data/db/data_migrations/20110728201729_erp_app_setup.rb +168 -240
  530. data/db/data_migrations/20110728201730_add_system_management_tool.rb +27 -0
  531. data/db/data_migrations/20150929185612_add_applications_to_dba_org.rb +31 -0
  532. data/db/migrate/20080805000096_base_app_framework.rb +36 -44
  533. data/lib/erp_app.rb +2 -2
  534. data/lib/erp_app/config.rb +9 -3
  535. data/lib/erp_app/engine.rb +114 -12
  536. data/lib/erp_app/extensions/compass_ae/erp_tech_svcs/session_controller.rb +27 -0
  537. data/lib/erp_app/extensions/railties/action_view/base.rb +32 -6
  538. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +37 -30
  539. data/lib/erp_app/version.rb +1 -1
  540. data/lib/erp_app/widgets/base.rb +6 -4
  541. data/lib/erp_app/widgets/loader.rb +1 -1
  542. data/lib/erp_app/widgets/railties/action_view/helpers/widget_helper.rb +12 -12
  543. data/lib/generators/admin_tool/USAGE +23 -0
  544. data/lib/generators/admin_tool/admin_tool_generator.rb +28 -0
  545. data/lib/generators/admin_tool/templates/INSTALL +23 -0
  546. data/lib/generators/{desktop_application/templates/public/module.js.erb → admin_tool/templates/assets/javascripts/Module.js.erb} +0 -0
  547. data/lib/generators/admin_tool/templates/assets/javascripts/app.js.erb +17 -0
  548. data/lib/generators/admin_tool/templates/assets/stylesheets/app.css.erb +11 -0
  549. data/lib/generators/{desktop_application → admin_tool}/templates/controllers/controller_template.erb +0 -0
  550. data/lib/generators/{desktop_application → admin_tool}/templates/migrate/migration_template.erb +0 -0
  551. data/lib/generators/application/USAGE +23 -0
  552. data/lib/generators/application/application_generator.rb +28 -0
  553. data/lib/generators/application/templates/INSTALL +23 -0
  554. data/lib/generators/application/templates/assets/javascripts/Application.js.erb +20 -0
  555. data/lib/generators/application/templates/assets/javascripts/app.js.erb +17 -0
  556. data/lib/generators/application/templates/assets/stylesheets/app.css.erb +11 -0
  557. data/lib/generators/application/templates/controllers/controller_template.erb +9 -0
  558. data/lib/generators/application/templates/migrate/migration_template.erb +21 -0
  559. data/lib/generators/cms_widget/templates/engine/engine_template.erb +2 -2
  560. data/lib/generators/cms_widget/templates/helpers/controller/controller_helper_template.erb +1 -1
  561. data/lib/generators/cms_widget/templates/helpers/view/view_helper_template.erb +1 -1
  562. data/lib/generators/cms_widget/templates/javascript/base.js.erb +1 -1
  563. data/public/javascripts/{erp_app/ckeditor → ckeditor}/ckeditor.js +0 -0
  564. data/public/javascripts/ckeditor/config.js +14 -0
  565. data/public/javascripts/{erp_app/ckeditor → ckeditor}/contents.css +0 -0
  566. data/public/javascripts/{erp_app/ckeditor → ckeditor}/lang/en.js +0 -0
  567. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/a11yhelp.js +0 -0
  568. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/_translationstatus.txt +0 -0
  569. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ar.js +0 -0
  570. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/bg.js +0 -0
  571. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ca.js +0 -0
  572. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/cs.js +0 -0
  573. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/cy.js +0 -0
  574. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/da.js +0 -0
  575. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/de.js +0 -0
  576. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/el.js +0 -0
  577. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/en.js +0 -0
  578. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/eo.js +0 -0
  579. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/es.js +0 -0
  580. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/et.js +0 -0
  581. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fa.js +0 -0
  582. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fi.js +0 -0
  583. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fr-ca.js +0 -0
  584. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/fr.js +0 -0
  585. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/gl.js +0 -0
  586. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/gu.js +0 -0
  587. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/he.js +0 -0
  588. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hi.js +0 -0
  589. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hr.js +0 -0
  590. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/hu.js +0 -0
  591. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/id.js +0 -0
  592. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/it.js +0 -0
  593. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ja.js +0 -0
  594. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/km.js +0 -0
  595. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ku.js +0 -0
  596. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/lt.js +0 -0
  597. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/lv.js +0 -0
  598. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/mk.js +0 -0
  599. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/mn.js +0 -0
  600. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/nb.js +0 -0
  601. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/nl.js +0 -0
  602. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/no.js +0 -0
  603. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pl.js +0 -0
  604. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pt-br.js +0 -0
  605. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/pt.js +0 -0
  606. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ro.js +0 -0
  607. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ru.js +0 -0
  608. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/si.js +0 -0
  609. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sk.js +0 -0
  610. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sl.js +0 -0
  611. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sq.js +0 -0
  612. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sr-latn.js +0 -0
  613. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sr.js +0 -0
  614. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/sv.js +0 -0
  615. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/th.js +0 -0
  616. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/tr.js +0 -0
  617. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/ug.js +0 -0
  618. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/uk.js +0 -0
  619. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/vi.js +0 -0
  620. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/a11yhelp/dialogs/lang/zh-cn.js +0 -0
  621. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/about/dialogs/about.js +0 -0
  622. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/about/dialogs/hidpi/logo_ckeditor.png +0 -0
  623. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/about/dialogs/logo_ckeditor.png +0 -0
  624. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/clipboard/dialogs/paste.js +0 -0
  625. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/codemirror/lang/en.js +0 -0
  626. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/codemirror/plugin.js +0 -0
  627. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/colordialog/dialogs/colordialog.js +0 -0
  628. data/public/javascripts/ckeditor/plugins/compasssave/plugin.js +22 -0
  629. data/public/javascripts/ckeditor/plugins/dialog/dialogDefinition.js +1006 -0
  630. data/public/javascripts/ckeditor/plugins/dialog/plugin.js +3232 -0
  631. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/div/dialogs/div.js +0 -0
  632. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/fakeobjects/images/spacer.gif +0 -0
  633. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/find/dialogs/find.js +0 -0
  634. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/flash/dialogs/flash.js +0 -0
  635. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/flash/images/placeholder.png +0 -0
  636. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/button.js +0 -0
  637. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/checkbox.js +0 -0
  638. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/form.js +0 -0
  639. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/hiddenfield.js +0 -0
  640. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/radio.js +0 -0
  641. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/select.js +0 -0
  642. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/textarea.js +0 -0
  643. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/dialogs/textfield.js +0 -0
  644. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/forms/images/hiddenfield.gif +0 -0
  645. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/icons.png +0 -0
  646. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/icons_hidpi.png +0 -0
  647. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/iframe/dialogs/iframe.js +0 -0
  648. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/iframe/images/placeholder.png +0 -0
  649. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/image/dialogs/image.js +0 -0
  650. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/image/images/noimage.png +0 -0
  651. data/public/javascripts/ckeditor/plugins/inlineeditsave/plugin.js +42 -0
  652. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/config.js +0 -0
  653. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/dialogs/jwplayer.js +0 -0
  654. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/help.txt +0 -0
  655. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/JW Player Quick Start Guide.pdf b/data/public/javascripts/ckeditor/plugins/jwplayer/jwplayer/JW Player Quick Start → Guide.pdf +0 -0
  656. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/jwPlayer.gif +0 -0
  657. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/jwplayer.js +0 -0
  658. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/license.txt +0 -0
  659. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/player.swf +0 -0
  660. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/preview.jpg +0 -0
  661. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/readme.html +0 -0
  662. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/beelden.zip +0 -0
  663. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/glow.zip +0 -0
  664. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/modieus.zip +0 -0
  665. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/simple.zip +0 -0
  666. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/snel.zip +0 -0
  667. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/stijl.zip +0 -0
  668. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/skin/stormtrooper.zip +0 -0
  669. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/swfobject.js +0 -0
  670. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/video.mp4 +0 -0
  671. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/jwplayer/yt.swf +0 -0
  672. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/jwplayer/plugin.js +0 -0
  673. data/public/javascripts/ckeditor/plugins/knitkitthemes/plugin.js +116 -0
  674. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/link/dialogs/anchor.js +0 -0
  675. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/link/dialogs/link.js +0 -0
  676. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/link/images/anchor.png +0 -0
  677. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/link/images/hidpi/anchor.png +0 -0
  678. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/liststyle/dialogs/liststyle.js +0 -0
  679. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/magicline/images/hidpi/icon.png +0 -0
  680. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/magicline/images/icon.png +0 -0
  681. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/pagebreak/images/pagebreak.gif +0 -0
  682. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/pastefromword/filter/default.js +0 -0
  683. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/preview/preview.html +0 -0
  684. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/scayt/LICENSE.md +0 -0
  685. data/public/javascripts/ckeditor/plugins/scayt/README.md +25 -0
  686. data/public/javascripts/ckeditor/plugins/scayt/dialogs/options.js +473 -0
  687. data/public/javascripts/ckeditor/plugins/scayt/dialogs/toolbar.css +71 -0
  688. data/public/javascripts/ckeditor/plugins/scayt/icons/hidpi/scayt.png +0 -0
  689. data/public/javascripts/ckeditor/plugins/scayt/icons/scayt.png +0 -0
  690. data/public/javascripts/ckeditor/plugins/scayt/lang/af.js +34 -0
  691. data/public/javascripts/ckeditor/plugins/scayt/lang/ar.js +34 -0
  692. data/public/javascripts/ckeditor/plugins/scayt/lang/bg.js +34 -0
  693. data/public/javascripts/ckeditor/plugins/scayt/lang/bn.js +34 -0
  694. data/public/javascripts/ckeditor/plugins/scayt/lang/bs.js +34 -0
  695. data/public/javascripts/ckeditor/plugins/scayt/lang/ca.js +34 -0
  696. data/public/javascripts/ckeditor/plugins/scayt/lang/cs.js +34 -0
  697. data/public/javascripts/ckeditor/plugins/scayt/lang/cy.js +34 -0
  698. data/public/javascripts/ckeditor/plugins/scayt/lang/da.js +34 -0
  699. data/public/javascripts/ckeditor/plugins/scayt/lang/de.js +34 -0
  700. data/public/javascripts/ckeditor/plugins/scayt/lang/el.js +34 -0
  701. data/public/javascripts/ckeditor/plugins/scayt/lang/en-au.js +34 -0
  702. data/public/javascripts/ckeditor/plugins/scayt/lang/en-ca.js +34 -0
  703. data/public/javascripts/ckeditor/plugins/scayt/lang/en-gb.js +34 -0
  704. data/public/javascripts/ckeditor/plugins/scayt/lang/en.js +34 -0
  705. data/public/javascripts/ckeditor/plugins/scayt/lang/eo.js +34 -0
  706. data/public/javascripts/ckeditor/plugins/scayt/lang/es.js +34 -0
  707. data/public/javascripts/ckeditor/plugins/scayt/lang/et.js +34 -0
  708. data/public/javascripts/ckeditor/plugins/scayt/lang/eu.js +34 -0
  709. data/public/javascripts/ckeditor/plugins/scayt/lang/fa.js +34 -0
  710. data/public/javascripts/ckeditor/plugins/scayt/lang/fi.js +34 -0
  711. data/public/javascripts/ckeditor/plugins/scayt/lang/fo.js +34 -0
  712. data/public/javascripts/ckeditor/plugins/scayt/lang/fr-ca.js +34 -0
  713. data/public/javascripts/ckeditor/plugins/scayt/lang/fr.js +34 -0
  714. data/public/javascripts/ckeditor/plugins/scayt/lang/gl.js +34 -0
  715. data/public/javascripts/ckeditor/plugins/scayt/lang/gu.js +34 -0
  716. data/public/javascripts/ckeditor/plugins/scayt/lang/he.js +34 -0
  717. data/public/javascripts/ckeditor/plugins/scayt/lang/hi.js +34 -0
  718. data/public/javascripts/ckeditor/plugins/scayt/lang/hr.js +34 -0
  719. data/public/javascripts/ckeditor/plugins/scayt/lang/hu.js +34 -0
  720. data/public/javascripts/ckeditor/plugins/scayt/lang/is.js +34 -0
  721. data/public/javascripts/ckeditor/plugins/scayt/lang/it.js +34 -0
  722. data/public/javascripts/ckeditor/plugins/scayt/lang/ja.js +34 -0
  723. data/public/javascripts/ckeditor/plugins/scayt/lang/ka.js +34 -0
  724. data/public/javascripts/ckeditor/plugins/scayt/lang/km.js +34 -0
  725. data/public/javascripts/ckeditor/plugins/scayt/lang/ko.js +34 -0
  726. data/public/javascripts/ckeditor/plugins/scayt/lang/ku.js +34 -0
  727. data/public/javascripts/ckeditor/plugins/scayt/lang/lt.js +34 -0
  728. data/public/javascripts/ckeditor/plugins/scayt/lang/lv.js +34 -0
  729. data/public/javascripts/ckeditor/plugins/scayt/lang/mk.js +34 -0
  730. data/public/javascripts/ckeditor/plugins/scayt/lang/mn.js +34 -0
  731. data/public/javascripts/ckeditor/plugins/scayt/lang/ms.js +34 -0
  732. data/public/javascripts/ckeditor/plugins/scayt/lang/nb.js +34 -0
  733. data/public/javascripts/ckeditor/plugins/scayt/lang/nl.js +34 -0
  734. data/public/javascripts/ckeditor/plugins/scayt/lang/no.js +34 -0
  735. data/public/javascripts/ckeditor/plugins/scayt/lang/pl.js +34 -0
  736. data/public/javascripts/ckeditor/plugins/scayt/lang/pt-br.js +34 -0
  737. data/public/javascripts/ckeditor/plugins/scayt/lang/pt.js +34 -0
  738. data/public/javascripts/ckeditor/plugins/scayt/lang/ro.js +34 -0
  739. data/public/javascripts/ckeditor/plugins/scayt/lang/ru.js +34 -0
  740. data/public/javascripts/ckeditor/plugins/scayt/lang/sk.js +34 -0
  741. data/public/javascripts/ckeditor/plugins/scayt/lang/sl.js +34 -0
  742. data/public/javascripts/ckeditor/plugins/scayt/lang/sr-latn.js +34 -0
  743. data/public/javascripts/ckeditor/plugins/scayt/lang/sr.js +34 -0
  744. data/public/javascripts/ckeditor/plugins/scayt/lang/sv.js +34 -0
  745. data/public/javascripts/ckeditor/plugins/scayt/lang/th.js +34 -0
  746. data/public/javascripts/ckeditor/plugins/scayt/lang/tr.js +34 -0
  747. data/public/javascripts/ckeditor/plugins/scayt/lang/ug.js +34 -0
  748. data/public/javascripts/ckeditor/plugins/scayt/lang/uk.js +34 -0
  749. data/public/javascripts/ckeditor/plugins/scayt/lang/vi.js +34 -0
  750. data/public/javascripts/ckeditor/plugins/scayt/lang/zh-cn.js +34 -0
  751. data/public/javascripts/ckeditor/plugins/scayt/lang/zh.js +34 -0
  752. data/public/javascripts/ckeditor/plugins/scayt/plugin.js +894 -0
  753. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_address.png +0 -0
  754. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_blockquote.png +0 -0
  755. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_div.png +0 -0
  756. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h1.png +0 -0
  757. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h2.png +0 -0
  758. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h3.png +0 -0
  759. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h4.png +0 -0
  760. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h5.png +0 -0
  761. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_h6.png +0 -0
  762. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_p.png +0 -0
  763. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/showblocks/images/block_pre.png +0 -0
  764. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/dialogs/smiley.js +0 -0
  765. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/angel_smile.gif +0 -0
  766. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/angry_smile.gif +0 -0
  767. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/broken_heart.gif +0 -0
  768. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/confused_smile.gif +0 -0
  769. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/cry_smile.gif +0 -0
  770. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/devil_smile.gif +0 -0
  771. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/embaressed_smile.gif +0 -0
  772. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/embarrassed_smile.gif +0 -0
  773. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/envelope.gif +0 -0
  774. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/heart.gif +0 -0
  775. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/kiss.gif +0 -0
  776. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/lightbulb.gif +0 -0
  777. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/omg_smile.gif +0 -0
  778. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/regular_smile.gif +0 -0
  779. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/sad_smile.gif +0 -0
  780. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/shades_smile.gif +0 -0
  781. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/teeth_smile.gif +0 -0
  782. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/thumbs_down.gif +0 -0
  783. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/thumbs_up.gif +0 -0
  784. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/tongue_smile.gif +0 -0
  785. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/tounge_smile.gif +0 -0
  786. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/whatchutalkingabout_smile.gif +0 -0
  787. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/smiley/images/wink_smile.gif +0 -0
  788. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/_translationstatus.txt +0 -0
  789. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ar.js +0 -0
  790. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/bg.js +0 -0
  791. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ca.js +0 -0
  792. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/cs.js +0 -0
  793. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/cy.js +0 -0
  794. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/de.js +0 -0
  795. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/el.js +0 -0
  796. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/en.js +0 -0
  797. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/eo.js +0 -0
  798. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/es.js +0 -0
  799. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/et.js +0 -0
  800. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fa.js +0 -0
  801. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fi.js +0 -0
  802. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fr-ca.js +0 -0
  803. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/fr.js +0 -0
  804. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/gl.js +0 -0
  805. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/he.js +0 -0
  806. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/hr.js +0 -0
  807. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/hu.js +0 -0
  808. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/id.js +0 -0
  809. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/it.js +0 -0
  810. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ja.js +0 -0
  811. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ku.js +0 -0
  812. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/lv.js +0 -0
  813. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/nb.js +0 -0
  814. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/nl.js +0 -0
  815. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/no.js +0 -0
  816. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pl.js +0 -0
  817. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pt-br.js +0 -0
  818. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/pt.js +0 -0
  819. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ru.js +0 -0
  820. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/si.js +0 -0
  821. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sk.js +0 -0
  822. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sl.js +0 -0
  823. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sq.js +0 -0
  824. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/sv.js +0 -0
  825. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/th.js +0 -0
  826. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/tr.js +0 -0
  827. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/ug.js +0 -0
  828. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/uk.js +0 -0
  829. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/vi.js +0 -0
  830. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/lang/zh-cn.js +0 -0
  831. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/specialchar/dialogs/specialchar.js +0 -0
  832. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/dialogs/syntaxhighlight.js +0 -0
  833. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/icons/syntaxhighlight.png +0 -0
  834. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/lang/de.js +0 -0
  835. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/lang/en.js +0 -0
  836. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/lang/fr.js +0 -0
  837. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/lang/zh-cn.js +0 -0
  838. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/syntaxhighlight/plugin.js +0 -0
  839. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/table/dialogs/table.js +0 -0
  840. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/tabletools/dialogs/tableCell.js +0 -0
  841. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/dialogs/templates.css +0 -0
  842. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/dialogs/templates.js +0 -0
  843. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/templates/default.js +0 -0
  844. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/templates/images/template1.gif +0 -0
  845. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/templates/images/template2.gif +0 -0
  846. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/templates/templates/images/template3.gif +0 -0
  847. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/LICENSE.md +0 -0
  848. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/README.md +0 -0
  849. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/ciframe.html +0 -0
  850. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/tmp.html +0 -0
  851. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/tmpFrameset.html +0 -0
  852. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc.css +0 -0
  853. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc.js +0 -0
  854. data/public/javascripts/{erp_app/ckeditor → ckeditor}/plugins/wsc/dialogs/wsc_ie.js +0 -0
  855. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog.css +0 -0
  856. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog_ie.css +0 -0
  857. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog_ie7.css +0 -0
  858. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog_ie8.css +0 -0
  859. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog_iequirks.css +0 -0
  860. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/dialog_opera.css +0 -0
  861. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor.css +0 -0
  862. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor_gecko.css +0 -0
  863. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor_ie.css +0 -0
  864. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor_ie7.css +0 -0
  865. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor_ie8.css +0 -0
  866. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/editor_iequirks.css +0 -0
  867. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/icons.png +0 -0
  868. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/icons_hidpi.png +0 -0
  869. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/arrow.png +0 -0
  870. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/close.png +0 -0
  871. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/hidpi/close.png +0 -0
  872. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/hidpi/lock-open.png +0 -0
  873. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/hidpi/lock.png +0 -0
  874. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/hidpi/refresh.png +0 -0
  875. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/lock-open.png +0 -0
  876. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/lock.png +0 -0
  877. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/images/refresh.png +0 -0
  878. data/public/javascripts/{erp_app/ckeditor → ckeditor}/skins/moono/readme.md +0 -0
  879. data/public/javascripts/{erp_app/ckeditor → ckeditor}/styles.js +0 -0
  880. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/close.png +0 -0
  881. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/closeX.png +0 -0
  882. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar-black-border.gif +0 -0
  883. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar-text-buttons.png +0 -0
  884. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar-white-small.gif +0 -0
  885. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar-white.gif +0 -0
  886. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar2.gif +0 -0
  887. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar3.gif +0 -0
  888. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar4-hover.gif +0 -0
  889. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/controlbar4.gif +0 -0
  890. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/fullexpand.gif +0 -0
  891. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/geckodimmer.png +0 -0
  892. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/icon.gif +0 -0
  893. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/loader.gif +0 -0
  894. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/loader.white.gif +0 -0
  895. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/Outlines.psd +0 -0
  896. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/beveled.png +0 -0
  897. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/drop-shadow.png +0 -0
  898. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/glossy-dark.png +0 -0
  899. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/outer-glow.png +0 -0
  900. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/rounded-black.png +0 -0
  901. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/outlines/rounded-white.png +0 -0
  902. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/resize.gif +0 -0
  903. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/scrollarrows.png +0 -0
  904. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/zoomin.cur +0 -0
  905. data/public/javascripts/{erp_app/highslide/highslide → highslide}/graphics/zoomout.cur +0 -0
  906. data/public/javascripts/highslide/highslide-full.js +3320 -0
  907. data/public/javascripts/highslide/highslide-full.min.js +9 -0
  908. data/public/javascripts/highslide/highslide-full.packed.js +9 -0
  909. data/public/javascripts/{erp_app/highslide/highslide → highslide}/highslide-ie6.css +0 -0
  910. data/public/javascripts/highslide/highslide-with-gallery.js +2657 -0
  911. data/public/javascripts/highslide/highslide-with-gallery.min.js +9 -0
  912. data/public/javascripts/highslide/highslide-with-gallery.packed.js +9 -0
  913. data/public/javascripts/highslide/highslide-with-html.js +2481 -0
  914. data/public/javascripts/highslide/highslide-with-html.min.js +9 -0
  915. data/public/javascripts/highslide/highslide-with-html.packed.js +9 -0
  916. data/public/javascripts/highslide/highslide.cfg.js +27 -0
  917. data/public/javascripts/highslide/highslide.css +889 -0
  918. data/public/javascripts/highslide/highslide.js +1891 -0
  919. data/public/javascripts/highslide/highslide.min.js +9 -0
  920. data/public/javascripts/highslide/highslide.packed.js +9 -0
  921. data/spec/models/organizer_application_spec.rb +3 -3
  922. metadata +914 -980
  923. data/app/assets/stylesheets/erp_app/application.css +0 -7
  924. data/app/controllers/erp_app/desktop/scaffold/base_controller.rb +0 -90
  925. data/app/controllers/erp_app/desktop/security_management/base_controller.rb +0 -47
  926. data/app/controllers/erp_app/desktop/security_management/capabilities_controller.rb +0 -125
  927. data/app/controllers/erp_app/desktop/security_management/groups_controller.rb +0 -198
  928. data/app/controllers/erp_app/desktop/security_management/roles_controller.rb +0 -183
  929. data/app/controllers/erp_app/desktop/security_management/users_controller.rb +0 -140
  930. data/app/controllers/erp_app/mobile/base_controller.rb +0 -21
  931. data/app/controllers/erp_app/mobile/login_controller.rb +0 -11
  932. data/app/controllers/erp_app/mobile/user_management/base_controller.rb +0 -20
  933. data/app/models/app_container.rb +0 -31
  934. data/app/models/desktop.rb +0 -72
  935. data/app/models/mobile.rb +0 -9
  936. data/app/models/mobile_application.rb +0 -6
  937. data/app/models/organizer.rb +0 -11
  938. data/app/models/organizer_application.rb +0 -2
  939. data/app/observers/user_app_container_observer.rb +0 -20
  940. data/app/views/erp_app/mobile/base/index.erb +0 -44
  941. data/app/views/erp_app/mobile/login/index.erb +0 -21
  942. data/config/initializers/erp_app.rb +0 -5
  943. data/db/data_migrations/20110728201733_update_preferences.rb +0 -52
  944. data/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.rb +0 -23
  945. data/db/data_migrations/20110817160743_add_file_manager_application.rb +0 -31
  946. data/db/data_migrations/20111108183739_add_default_capabilities.rb +0 -22
  947. data/db/data_migrations/20111108183740_add_new_contact_widgets.rb +0 -41
  948. data/db/data_migrations/20120229160222_add_userinfo_widget.rb +0 -28
  949. data/db/data_migrations/20120405193721_create_party_and_role_type_for_communication_events.rb +0 -10
  950. data/db/data_migrations/20120411180756_create_user_management_mobile_application.rb +0 -16
  951. data/db/data_migrations/20120418164215_create_configuration_management_desktop_application.rb +0 -26
  952. data/db/data_migrations/20121018143910_create_job_tracker_desktop_application.rb +0 -22
  953. data/db/data_migrations/20121018172347_created_tracked_jobs.rb +0 -14
  954. data/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.rb +0 -15
  955. data/db/data_migrations/20121218175028_create_security_management_desktop_application.rb +0 -28
  956. data/db/data_migrations/20130411200351_add_job_tracker_mobile_app.rb +0 -16
  957. data/db/data_migrations/20130703181549_create_tail_desktop_application.rb +0 -19
  958. data/db/data_migrations/20131102171801_add_customer_role_type.rb +0 -11
  959. data/db/data_migrations/20131108191057_add_customer_employee_reln.rb +0 -26
  960. data/db/data_migrations/20140122205941_remove_theme_preference.rb +0 -21
  961. data/db/migrate/20120920145259_add_job_tracker.rb +0 -19
  962. data/db/migrate/20130410182333_update_mobile_application.rb +0 -27
  963. data/db/migrate/20131112013049_add_erp_app_missing_indexes.rb +0 -31
  964. data/db/migrate/20131129205550_add_precedence_to_configuration_item_types.rb +0 -7
  965. data/lib/active_ext/active_ext.rb +0 -587
  966. data/lib/active_ext/core.rb +0 -105
  967. data/lib/active_ext/data_structures/column.rb +0 -21
  968. data/lib/active_ext/data_structures/columns.rb +0 -69
  969. data/lib/active_ext/data_structures/data_structures.rb +0 -2
  970. data/lib/active_ext/ext_helpers/column_builder.rb +0 -136
  971. data/lib/active_ext/ext_helpers/data_helper.rb +0 -67
  972. data/lib/active_ext/ext_helpers/ext_helpers.rb +0 -5
  973. data/lib/active_ext/ext_helpers/field_builder.rb +0 -146
  974. data/lib/active_ext/ext_helpers/form_builder.rb +0 -49
  975. data/lib/active_ext/ext_helpers/table_builder.rb +0 -77
  976. data/lib/erp_app/application_resource_loader.rb +0 -4
  977. data/lib/erp_app/application_resource_loader/base_loader.rb +0 -17
  978. data/lib/erp_app/application_resource_loader/desktop_organizer_loader.rb +0 -71
  979. data/lib/erp_app/application_resource_loader/mobile_loader.rb +0 -46
  980. data/lib/erp_app/application_resource_loader/shared_loader.rb +0 -26
  981. data/lib/erp_app/extensions/railties/action_view/helpers/active_ext_helper.rb +0 -17
  982. data/lib/erp_app/extensions/railties/action_view/helpers/tag_helper.rb +0 -38
  983. data/lib/generators/active_ext/USAGE +0 -16
  984. data/lib/generators/active_ext/active_ext_generator.rb +0 -43
  985. data/lib/generators/active_ext/templates/INSTALL +0 -11
  986. data/lib/generators/active_ext/templates/controllers/controller_template.erb +0 -23
  987. data/lib/generators/active_ext/templates/public/module.js.erb +0 -16
  988. data/lib/generators/active_ext/templates/views/create.html.erb +0 -19
  989. data/lib/generators/active_ext/templates/views/edit.html.erb +0 -65
  990. data/lib/generators/active_ext/templates/views/new.html.erb +0 -41
  991. data/lib/generators/active_ext/templates/views/show.html.erb +0 -58
  992. data/lib/generators/active_ext/templates/views/update.html.erb +0 -1
  993. data/lib/generators/compass_ae_mobile/USAGE +0 -9
  994. data/lib/generators/compass_ae_mobile/compass_ae_mobile_generator.rb +0 -38
  995. data/lib/generators/compass_ae_mobile/templates/controllers/controller_template.erb +0 -4
  996. data/lib/generators/compass_ae_mobile/templates/javascripts/main_template.erb +0 -29
  997. data/lib/generators/compass_ae_mobile/templates/views/view_template.erb +0 -25
  998. data/lib/generators/desktop_application/USAGE +0 -24
  999. data/lib/generators/desktop_application/desktop_application_generator.rb +0 -25
  1000. data/lib/generators/desktop_application/templates/INSTALL +0 -25
  1001. data/lib/generators/mobile_application/USAGE +0 -24
  1002. data/lib/generators/mobile_application/mobile_application_generator.rb +0 -25
  1003. data/lib/generators/mobile_application/templates/controllers/controller_template.erb +0 -13
  1004. data/lib/generators/mobile_application/templates/migrate/migration_template.erb +0 -14
  1005. data/lib/generators/mobile_application/templates/public/app.js.erb +0 -24
  1006. data/lib/generators/organizer_application/USAGE +0 -27
  1007. data/lib/generators/organizer_application/organizer_application_generator.rb +0 -25
  1008. data/lib/generators/organizer_application/templates/INSTALL +0 -28
  1009. data/lib/generators/organizer_application/templates/controllers/controller_template.erb +0 -12
  1010. data/lib/generators/organizer_application/templates/migrate/migration_template.erb +0 -14
  1011. data/lib/generators/organizer_application/templates/public/base.js.erb +0 -28
  1012. data/public/images/art/compass-ae-logo-reverse-1.png +0 -0
  1013. data/public/images/erp_app/desktop/applications/security_management/manage_capabilities.png +0 -0
  1014. data/public/images/erp_app/desktop/applications/security_management/manage_groups.png +0 -0
  1015. data/public/images/erp_app/desktop/applications/security_management/manage_roles.png +0 -0
  1016. data/public/images/erp_app/desktop/applications/security_management/manage_users.png +0 -0
  1017. data/public/images/icons/fieldtypes/business_party.png +0 -0
  1018. data/public/images/icons/fieldtypes/check.png +0 -0
  1019. data/public/images/icons/fieldtypes/date.png +0 -0
  1020. data/public/images/icons/fieldtypes/display.png +0 -0
  1021. data/public/images/icons/fieldtypes/email.png +0 -0
  1022. data/public/images/icons/fieldtypes/file.png +0 -0
  1023. data/public/images/icons/fieldtypes/file_assets.png +0 -0
  1024. data/public/images/icons/fieldtypes/image.png +0 -0
  1025. data/public/images/icons/fieldtypes/money.png +0 -0
  1026. data/public/images/icons/fieldtypes/number.png +0 -0
  1027. data/public/images/icons/fieldtypes/password.png +0 -0
  1028. data/public/images/icons/fieldtypes/question.png +0 -0
  1029. data/public/images/icons/fieldtypes/radio.png +0 -0
  1030. data/public/images/icons/fieldtypes/select.png +0 -0
  1031. data/public/images/icons/fieldtypes/text.png +0 -0
  1032. data/public/images/icons/fieldtypes/text.psd +0 -0
  1033. data/public/images/icons/fieldtypes/text_area.png +0 -0
  1034. data/public/images/icons/fieldtypes/time.png +0 -0
  1035. data/public/images/icons/fieldtypes/yes_no.png +0 -0
  1036. data/public/images/icons/login/login_48x48.png +0 -0
  1037. data/public/images/icons/mail/mail_48x48.png +0 -0
  1038. data/public/images/icons/manage-profile/manage-profile_48x48.png +0 -0
  1039. data/public/images/icons/map/map_48x48.png +0 -0
  1040. data/public/images/icons/package/package_48x48.png +0 -0
  1041. data/public/images/icons/product/product_48x48.png +0 -0
  1042. data/public/images/icons/recycle/recycle_16x16.png +0 -0
  1043. data/public/images/icons/reset-password/reset-password_48x48.png +0 -0
  1044. data/public/images/icons/search/search_48x48.png +0 -0
  1045. data/public/images/icons/shopping_cart/shopping_cart_48x48.png +0 -0
  1046. data/public/images/icons/sign_up/sign_up_48x48.png +0 -0
  1047. data/public/images/icons/signup/signup_48x48.png +0 -0
  1048. data/public/javascripts/erp_app/authentication/compass_user.js +0 -94
  1049. data/public/javascripts/erp_app/ckeditor/config.js +0 -12
  1050. data/public/javascripts/erp_app/ckeditor/plugins/compasssave/plugin.js +0 -22
  1051. data/public/javascripts/erp_app/ckeditor/plugins/dialog/dialogDefinition.js +0 -4
  1052. data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +0 -42
  1053. data/public/javascripts/erp_app/ckeditor/plugins/knitkitthemes/plugin.js +0 -116
  1054. data/public/javascripts/erp_app/ckeditor/plugins/scayt/README.md +0 -25
  1055. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/options.js +0 -20
  1056. data/public/javascripts/erp_app/ckeditor/plugins/scayt/dialogs/toolbar.css +0 -71
  1057. data/public/javascripts/erp_app/ckeditor_example_config_override.js +0 -45
  1058. data/public/javascripts/erp_app/codemirror/lib/codemirror.css +0 -272
  1059. data/public/javascripts/erp_app/codemirror/lib/codemirror.js +0 -55
  1060. data/public/javascripts/erp_app/codemirror/theme/3024-day.css +0 -34
  1061. data/public/javascripts/erp_app/codemirror/theme/3024-night.css +0 -34
  1062. data/public/javascripts/erp_app/codemirror/theme/ambiance-mobile.css +0 -5
  1063. data/public/javascripts/erp_app/codemirror/theme/ambiance.css +0 -74
  1064. data/public/javascripts/erp_app/codemirror/theme/base16-dark.css +0 -34
  1065. data/public/javascripts/erp_app/codemirror/theme/base16-light.css +0 -34
  1066. data/public/javascripts/erp_app/codemirror/theme/blackboard.css +0 -28
  1067. data/public/javascripts/erp_app/codemirror/theme/cobalt.css +0 -21
  1068. data/public/javascripts/erp_app/codemirror/theme/eclipse.css +0 -23
  1069. data/public/javascripts/erp_app/codemirror/theme/elegant.css +0 -13
  1070. data/public/javascripts/erp_app/codemirror/theme/erlang-dark.css +0 -30
  1071. data/public/javascripts/erp_app/codemirror/theme/lesser-dark.css +0 -43
  1072. data/public/javascripts/erp_app/codemirror/theme/mbo.css +0 -37
  1073. data/public/javascripts/erp_app/codemirror/theme/mdn-like.css +0 -44
  1074. data/public/javascripts/erp_app/codemirror/theme/midnight.css +0 -43
  1075. data/public/javascripts/erp_app/codemirror/theme/monokai.css +0 -29
  1076. data/public/javascripts/erp_app/codemirror/theme/neat.css +0 -12
  1077. data/public/javascripts/erp_app/codemirror/theme/neo.css +0 -40
  1078. data/public/javascripts/erp_app/codemirror/theme/night.css +0 -24
  1079. data/public/javascripts/erp_app/codemirror/theme/paraiso-dark.css +0 -34
  1080. data/public/javascripts/erp_app/codemirror/theme/paraiso-light.css +0 -34
  1081. data/public/javascripts/erp_app/codemirror/theme/pastel-on-dark.css +0 -48
  1082. data/public/javascripts/erp_app/codemirror/theme/rubyblue.css +0 -21
  1083. data/public/javascripts/erp_app/codemirror/theme/solarized.css +0 -167
  1084. data/public/javascripts/erp_app/codemirror/theme/the-matrix.css +0 -26
  1085. data/public/javascripts/erp_app/codemirror/theme/tomorrow-night-eighties.css +0 -34
  1086. data/public/javascripts/erp_app/codemirror/theme/twilight.css +0 -28
  1087. data/public/javascripts/erp_app/codemirror/theme/vibrant-ink.css +0 -30
  1088. data/public/javascripts/erp_app/codemirror/theme/xq-dark.css +0 -49
  1089. data/public/javascripts/erp_app/codemirror/theme/xq-light.css +0 -43
  1090. data/public/javascripts/erp_app/codemirror_highlight.js +0 -17
  1091. data/public/javascripts/erp_app/desktop/applications/audit_log_viewer/module.js +0 -38
  1092. data/public/javascripts/erp_app/desktop/applications/configuration_management/module.js +0 -95
  1093. data/public/javascripts/erp_app/desktop/applications/control_panel/module.js +0 -73
  1094. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +0 -120
  1095. data/public/javascripts/erp_app/desktop/applications/job_tracker/module.js +0 -44
  1096. data/public/javascripts/erp_app/desktop/applications/scaffold/models_tree_panel.js +0 -86
  1097. data/public/javascripts/erp_app/desktop/applications/scaffold/module.js +0 -62
  1098. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_panel.js +0 -62
  1099. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +0 -241
  1100. data/public/javascripts/erp_app/desktop/applications/security_management/groups_effective_security.js +0 -94
  1101. data/public/javascripts/erp_app/desktop/applications/security_management/groups_panel.js +0 -298
  1102. data/public/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +0 -241
  1103. data/public/javascripts/erp_app/desktop/applications/security_management/module.js +0 -173
  1104. data/public/javascripts/erp_app/desktop/applications/security_management/north_panel.js +0 -31
  1105. data/public/javascripts/erp_app/desktop/applications/security_management/roles_panel.js +0 -309
  1106. data/public/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +0 -241
  1107. data/public/javascripts/erp_app/desktop/applications/security_management/south_panel.js +0 -126
  1108. data/public/javascripts/erp_app/desktop/applications/security_management/users_effective_security.js +0 -128
  1109. data/public/javascripts/erp_app/desktop/applications/security_management/users_panel.js +0 -59
  1110. data/public/javascripts/erp_app/desktop/applications/security_management/users_widget.js +0 -245
  1111. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +0 -469
  1112. data/public/javascripts/erp_app/desktop/applications/user_management/personal_info_panel.js +0 -117
  1113. data/public/javascripts/erp_app/desktop/applications/user_management/role_management_panel.js +0 -208
  1114. data/public/javascripts/erp_app/desktop/applications/user_management/user_application_mgt_panel.js +0 -206
  1115. data/public/javascripts/erp_app/desktop/ext_ux_desktop_module.js +0 -1014
  1116. data/public/javascripts/erp_app/ecommerce/credit_card_window.js +0 -329
  1117. data/public/javascripts/erp_app/highslide/examples/ajax.html +0 -51
  1118. data/public/javascripts/erp_app/highslide/examples/flash.html +0 -61
  1119. data/public/javascripts/erp_app/highslide/examples/gallery-controls-in-heading.html +0 -89
  1120. data/public/javascripts/erp_app/highslide/examples/gallery-dark.html +0 -93
  1121. data/public/javascripts/erp_app/highslide/examples/gallery-floating-caption.html +0 -91
  1122. data/public/javascripts/erp_app/highslide/examples/gallery-floating-thumbs.html +0 -144
  1123. data/public/javascripts/erp_app/highslide/examples/gallery-horizontal-strip.html +0 -147
  1124. data/public/javascripts/erp_app/highslide/examples/gallery-in-box.html +0 -95
  1125. data/public/javascripts/erp_app/highslide/examples/gallery-in-page.html +0 -221
  1126. data/public/javascripts/erp_app/highslide/examples/gallery-thumbstrip-above.html +0 -142
  1127. data/public/javascripts/erp_app/highslide/examples/gallery-vertical-strip.html +0 -178
  1128. data/public/javascripts/erp_app/highslide/examples/gallery-white.html +0 -90
  1129. data/public/javascripts/erp_app/highslide/examples/headline.html +0 -49
  1130. data/public/javascripts/erp_app/highslide/examples/html.html +0 -67
  1131. data/public/javascripts/erp_app/highslide/examples/iframe.html +0 -44
  1132. data/public/javascripts/erp_app/highslide/examples/image-map.html +0 -49
  1133. data/public/javascripts/erp_app/highslide/examples/includes/Flash.swf +0 -0
  1134. data/public/javascripts/erp_app/highslide/examples/includes/ajax.htm +0 -45
  1135. data/public/javascripts/erp_app/highslide/examples/includes/include-short.htm +0 -40
  1136. data/public/javascripts/erp_app/highslide/examples/inline.html +0 -50
  1137. data/public/javascripts/erp_app/highslide/examples/mini-galleries.html +0 -135
  1138. data/public/javascripts/erp_app/highslide/examples/mini-gallery.html +0 -89
  1139. data/public/javascripts/erp_app/highslide/examples/no-border.html +0 -62
  1140. data/public/javascripts/erp_app/highslide/examples/no-outline.html +0 -52
  1141. data/public/javascripts/erp_app/highslide/examples/outer-glow.html +0 -53
  1142. data/public/javascripts/erp_app/highslide/examples/white-10px.html +0 -51
  1143. data/public/javascripts/erp_app/highslide/examples/white-rounded-outline.html +0 -51
  1144. data/public/javascripts/erp_app/highslide/examples/youtube.html +0 -62
  1145. data/public/javascripts/erp_app/highslide/highslide/highslide-full.js +0 -3302
  1146. data/public/javascripts/erp_app/highslide/highslide/highslide-full.min.js +0 -9
  1147. data/public/javascripts/erp_app/highslide/highslide/highslide-full.packed.js +0 -9
  1148. data/public/javascripts/erp_app/highslide/highslide/highslide-with-gallery.js +0 -2639
  1149. data/public/javascripts/erp_app/highslide/highslide/highslide-with-gallery.min.js +0 -9
  1150. data/public/javascripts/erp_app/highslide/highslide/highslide-with-gallery.packed.js +0 -9
  1151. data/public/javascripts/erp_app/highslide/highslide/highslide-with-html.js +0 -2476
  1152. data/public/javascripts/erp_app/highslide/highslide/highslide-with-html.min.js +0 -9
  1153. data/public/javascripts/erp_app/highslide/highslide/highslide-with-html.packed.js +0 -9
  1154. data/public/javascripts/erp_app/highslide/highslide/highslide.css +0 -886
  1155. data/public/javascripts/erp_app/highslide/highslide/highslide.js +0 -1886
  1156. data/public/javascripts/erp_app/highslide/highslide/highslide.min.js +0 -9
  1157. data/public/javascripts/erp_app/highslide/highslide/highslide.packed.js +0 -9
  1158. data/public/javascripts/erp_app/highslide/images/full-image.jpg +0 -0
  1159. data/public/javascripts/erp_app/highslide/images/full6.jpg +0 -0
  1160. data/public/javascripts/erp_app/highslide/images/gallery1.jpg +0 -0
  1161. data/public/javascripts/erp_app/highslide/images/gallery1.thumb.jpg +0 -0
  1162. data/public/javascripts/erp_app/highslide/images/gallery2.jpg +0 -0
  1163. data/public/javascripts/erp_app/highslide/images/gallery2.thumb.jpg +0 -0
  1164. data/public/javascripts/erp_app/highslide/images/gallery3.jpg +0 -0
  1165. data/public/javascripts/erp_app/highslide/images/gallery3.thumb.jpg +0 -0
  1166. data/public/javascripts/erp_app/highslide/images/nordic.gif +0 -0
  1167. data/public/javascripts/erp_app/highslide/images/thumb6.jpg +0 -0
  1168. data/public/javascripts/erp_app/highslide/images/thumbnail.jpg +0 -0
  1169. data/public/javascripts/erp_app/highslide/images/thumbstrip01.jpg +0 -0
  1170. data/public/javascripts/erp_app/highslide/images/thumbstrip01.thumb.png +0 -0
  1171. data/public/javascripts/erp_app/highslide/images/thumbstrip02.jpg +0 -0
  1172. data/public/javascripts/erp_app/highslide/images/thumbstrip02.thumb.png +0 -0
  1173. data/public/javascripts/erp_app/highslide/images/thumbstrip03.jpg +0 -0
  1174. data/public/javascripts/erp_app/highslide/images/thumbstrip03.thumb.png +0 -0
  1175. data/public/javascripts/erp_app/highslide/images/thumbstrip04.jpg +0 -0
  1176. data/public/javascripts/erp_app/highslide/images/thumbstrip04.thumb.png +0 -0
  1177. data/public/javascripts/erp_app/highslide/images/thumbstrip05.jpg +0 -0
  1178. data/public/javascripts/erp_app/highslide/images/thumbstrip05.thumb.png +0 -0
  1179. data/public/javascripts/erp_app/highslide/images/thumbstrip06.jpg +0 -0
  1180. data/public/javascripts/erp_app/highslide/images/thumbstrip06.thumb.png +0 -0
  1181. data/public/javascripts/erp_app/highslide/images/thumbstrip07.jpg +0 -0
  1182. data/public/javascripts/erp_app/highslide/images/thumbstrip07.thumb.png +0 -0
  1183. data/public/javascripts/erp_app/highslide/images/thumbstrip08.jpg +0 -0
  1184. data/public/javascripts/erp_app/highslide/images/thumbstrip08.thumb.png +0 -0
  1185. data/public/javascripts/erp_app/highslide/images/thumbstrip09.jpg +0 -0
  1186. data/public/javascripts/erp_app/highslide/images/thumbstrip09.thumb.png +0 -0
  1187. data/public/javascripts/erp_app/highslide/images/thumbstrip10.jpg +0 -0
  1188. data/public/javascripts/erp_app/highslide/images/thumbstrip10.thumb.png +0 -0
  1189. data/public/javascripts/erp_app/highslide/images/thumbstrip11.jpg +0 -0
  1190. data/public/javascripts/erp_app/highslide/images/thumbstrip11.thumb.png +0 -0
  1191. data/public/javascripts/erp_app/highslide/images/thumbstrip12.jpg +0 -0
  1192. data/public/javascripts/erp_app/highslide/images/thumbstrip12.thumb.png +0 -0
  1193. data/public/javascripts/erp_app/highslide/images/thumbstrip13.jpg +0 -0
  1194. data/public/javascripts/erp_app/highslide/images/thumbstrip13.thumb.png +0 -0
  1195. data/public/javascripts/erp_app/highslide/images/thumbstrip14.jpg +0 -0
  1196. data/public/javascripts/erp_app/highslide/images/thumbstrip14.thumb.png +0 -0
  1197. data/public/javascripts/erp_app/highslide/images/thumbstrip15.jpg +0 -0
  1198. data/public/javascripts/erp_app/highslide/images/thumbstrip15.thumb.png +0 -0
  1199. data/public/javascripts/erp_app/highslide/images/thumbstrip16.jpg +0 -0
  1200. data/public/javascripts/erp_app/highslide/images/thumbstrip16.thumb.png +0 -0
  1201. data/public/javascripts/erp_app/highslide/images/thumbstrip17.jpg +0 -0
  1202. data/public/javascripts/erp_app/highslide/images/thumbstrip17.thumb.png +0 -0
  1203. data/public/javascripts/erp_app/highslide/images/thumbstrip18.jpg +0 -0
  1204. data/public/javascripts/erp_app/highslide/images/thumbstrip18.thumb.png +0 -0
  1205. data/public/javascripts/erp_app/highslide/images/thumbstrip19.jpg +0 -0
  1206. data/public/javascripts/erp_app/highslide/images/thumbstrip19.thumb.png +0 -0
  1207. data/public/javascripts/erp_app/highslide/images/thumbstrip20.jpg +0 -0
  1208. data/public/javascripts/erp_app/highslide/images/thumbstrip20.thumb.png +0 -0
  1209. data/public/javascripts/erp_app/highslide/images/thumbstrip21.jpg +0 -0
  1210. data/public/javascripts/erp_app/highslide/images/thumbstrip21.thumb.png +0 -0
  1211. data/public/javascripts/erp_app/highslide/images/thumbstrip22.jpg +0 -0
  1212. data/public/javascripts/erp_app/highslide/images/thumbstrip22.thumb.png +0 -0
  1213. data/public/javascripts/erp_app/highslide/images/thumbstrip23.jpg +0 -0
  1214. data/public/javascripts/erp_app/highslide/images/thumbstrip23.thumb.png +0 -0
  1215. data/public/javascripts/erp_app/highslide/images/thumbstrip24.jpg +0 -0
  1216. data/public/javascripts/erp_app/highslide/images/thumbstrip24.thumb.png +0 -0
  1217. data/public/javascripts/erp_app/highslide/index.htm +0 -68
  1218. data/public/javascripts/erp_app/jquery_support.js +0 -31
  1219. data/public/javascripts/erp_app/login/mobile.js +0 -58
  1220. data/public/javascripts/erp_app/login/window.js +0 -124
  1221. data/public/javascripts/erp_app/mobile/app.js +0 -74
  1222. data/public/javascripts/erp_app/mobile/applications/job_tracker/app.js +0 -177
  1223. data/public/javascripts/erp_app/mobile/applications/job_tracker/model/job.js +0 -15
  1224. data/public/javascripts/erp_app/mobile/applications/job_tracker/store/jobs.js +0 -16
  1225. data/public/javascripts/erp_app/mobile/applications/job_tracker/view/templates.js +0 -22
  1226. data/public/javascripts/erp_app/mobile/applications/user_management/app.js +0 -112
  1227. data/public/javascripts/erp_app/mobile/applications/user_management/app/model/user.js +0 -14
  1228. data/public/javascripts/erp_app/mobile/applications/user_management/app/store/users.js +0 -19
  1229. data/public/javascripts/erp_app/mobile/applications/user_management/app/view/templates.js +0 -34
  1230. data/public/javascripts/erp_app/mobile/mobile_base.js +0 -10
  1231. data/public/javascripts/erp_app/organizer/applications/crm/base.js +0 -64
  1232. data/public/javascripts/erp_app/organizer/default_menu_tree_panel.js +0 -69
  1233. data/public/javascripts/erp_app/organizer/layout.js +0 -267
  1234. data/public/javascripts/erp_app/shared/MoneyField.js +0 -119
  1235. data/public/javascripts/erp_app/shared/active_ext/active_ext_grid.js +0 -351
  1236. data/public/javascripts/erp_app/shared/audit_log/GridPanel.js +0 -214
  1237. data/public/javascripts/erp_app/shared/audit_log/TabPanel.js +0 -103
  1238. data/public/javascripts/erp_app/shared/compass_ckeditor.js +0 -264
  1239. data/public/javascripts/erp_app/shared/compass_codemirror.js +0 -466
  1240. data/public/javascripts/erp_app/shared/configuration/configuration_panel.js +0 -128
  1241. data/public/javascripts/erp_app/shared/crm/ContactMechanismGrid.js +0 -812
  1242. data/public/javascripts/erp_app/shared/crm/PartyDetailsPanel.js +0 -344
  1243. data/public/javascripts/erp_app/shared/crm/PartyForm.js +0 -321
  1244. data/public/javascripts/erp_app/shared/crm/PartyGrid.js +0 -591
  1245. data/public/javascripts/erp_app/shared/crm/UserForm.js +0 -307
  1246. data/public/javascripts/erp_app/shared/crm/UsersGrid.js +0 -492
  1247. data/public/javascripts/erp_app/shared/dynamic_editable_grid.js +0 -140
  1248. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +0 -64
  1249. data/public/javascripts/erp_app/shared/dynamic_form_fields.js +0 -99
  1250. data/public/javascripts/erp_app/shared/file_manager_tree.js +0 -722
  1251. data/public/javascripts/erp_app/shared/file_upload/Ext.ux.panel.UploadPanel.js +0 -580
  1252. data/public/javascripts/erp_app/shared/file_upload/upload_window.js +0 -63
  1253. data/public/javascripts/erp_app/shared/notes_grid.js +0 -338
  1254. data/public/javascripts/erp_app/shared/profile_management_panel.js +0 -137
  1255. data/public/javascripts/erp_app/utility.js +0 -654
  1256. data/public/javascripts/erp_app/widgets.js +0 -82
  1257. data/public/stylesheets/erp_app/desktop/base.css +0 -254
  1258. data/public/stylesheets/erp_app/login/main.css +0 -4
  1259. data/public/stylesheets/erp_app/mobile/applications/user_management/main.css +0 -21
  1260. data/public/stylesheets/erp_app/mobile/mobile.css +0 -47
  1261. data/public/stylesheets/erp_app/organizer/base.css +0 -6
  1262. data/public/stylesheets/erp_app/shared/compass-ext-all.css +0 -547
  1263. data/public/stylesheets/erp_app/shared/crm.css +0 -45
  1264. data/public/stylesheets/jquery_plugins/jquery.loadmask.css +0 -40
@@ -0,0 +1,3320 @@
1
+ /**
2
+ * Name: Highslide JS
3
+ * Version: 4.1.13 (2011-10-06)
4
+ * Config: default +events +unobtrusive +imagemap +slideshow +positioning +transitions +viewport +thumbstrip +inline +ajax +iframe +flash
5
+ * Author: Torstein Hønsi
6
+ * Support: www.highslide.com/support
7
+ * License: www.highslide.com/#license
8
+ */
9
+ if (!hs) { var hs = {
10
+ // Language strings
11
+ lang : {
12
+ cssDirection: 'ltr',
13
+ loadingText : 'Loading...',
14
+ loadingTitle : 'Click to cancel',
15
+ focusTitle : 'Click to bring to front',
16
+ fullExpandTitle : 'Expand to actual size (f)',
17
+ creditsText : 'Powered by <i>Highslide JS</i>',
18
+ creditsTitle : 'Go to the Highslide JS homepage',
19
+ previousText : 'Previous',
20
+ nextText : 'Next',
21
+ moveText : 'Move',
22
+ closeText : 'Close',
23
+ closeTitle : 'Close (esc)',
24
+ resizeTitle : 'Resize',
25
+ playText : 'Play',
26
+ playTitle : 'Play slideshow (spacebar)',
27
+ pauseText : 'Pause',
28
+ pauseTitle : 'Pause slideshow (spacebar)',
29
+ previousTitle : 'Previous (arrow left)',
30
+ nextTitle : 'Next (arrow right)',
31
+ moveTitle : 'Move',
32
+ fullExpandText : '1:1',
33
+ number: 'Image %1 of %2',
34
+ restoreTitle : 'Click to close image, click and drag to move. Use arrow keys for next and previous.'
35
+ },
36
+ // See http://highslide.com/ref for examples of settings
37
+ graphicsDir : 'highslide/graphics/',
38
+ expandCursor : 'zoomin.cur', // null disables
39
+ restoreCursor : 'zoomout.cur', // null disables
40
+ expandDuration : 250, // milliseconds
41
+ restoreDuration : 250,
42
+ marginLeft : 15,
43
+ marginRight : 15,
44
+ marginTop : 15,
45
+ marginBottom : 15,
46
+ zIndexCounter : 1001, // adjust to other absolutely positioned elements
47
+ loadingOpacity : 0.75,
48
+ allowMultipleInstances: true,
49
+ numberOfImagesToPreload : 5,
50
+ outlineWhileAnimating : 2, // 0 = never, 1 = always, 2 = HTML only
51
+ outlineStartOffset : 3, // ends at 10
52
+ padToMinWidth : false, // pad the popup width to make room for wide caption
53
+ fullExpandPosition : 'bottom right',
54
+ fullExpandOpacity : 1,
55
+ showCredits : true, // you can set this to false if you want
56
+ creditsHref : 'http://highslide.com/',
57
+ creditsTarget : '_self',
58
+ enableKeyListener : true,
59
+ openerTagNames : ['a', 'area'], // Add more to allow slideshow indexing
60
+ transitions : [],
61
+ transitionDuration: 250,
62
+ dimmingOpacity: 0, // Lightbox style dimming background
63
+ dimmingDuration: 50, // 0 for instant dimming
64
+
65
+ allowWidthReduction : false,
66
+ allowHeightReduction : true,
67
+ preserveContent : true, // Preserve changes made to the content and position of HTML popups.
68
+ objectLoadTime : 'before', // Load iframes 'before' or 'after' expansion.
69
+ cacheAjax : true, // Cache ajax popups for instant display. Can be overridden for each popup.
70
+ anchor : 'auto', // where the image expands from
71
+ align : 'auto', // position in the client (overrides anchor)
72
+ targetX: null, // the id of a target element
73
+ targetY: null,
74
+ dragByHeading: true,
75
+ minWidth: 200,
76
+ minHeight: 200,
77
+ allowSizeReduction: true, // allow the image to reduce to fit client size. If false, this overrides minWidth and minHeight
78
+ outlineType : 'drop-shadow', // set null to disable outlines
79
+ skin : {
80
+ controls:
81
+ '<div class="highslide-controls"><ul>'+
82
+ '<li class="highslide-previous">'+
83
+ '<a href="#" title="{hs.lang.previousTitle}">'+
84
+ '<span>{hs.lang.previousText}</span></a>'+
85
+ '</li>'+
86
+ '<li class="highslide-play">'+
87
+ '<a href="#" title="{hs.lang.playTitle}">'+
88
+ '<span>{hs.lang.playText}</span></a>'+
89
+ '</li>'+
90
+ '<li class="highslide-pause">'+
91
+ '<a href="#" title="{hs.lang.pauseTitle}">'+
92
+ '<span>{hs.lang.pauseText}</span></a>'+
93
+ '</li>'+
94
+ '<li class="highslide-next">'+
95
+ '<a href="#" title="{hs.lang.nextTitle}">'+
96
+ '<span>{hs.lang.nextText}</span></a>'+
97
+ '</li>'+
98
+ '<li class="highslide-move">'+
99
+ '<a href="#" title="{hs.lang.moveTitle}">'+
100
+ '<span>{hs.lang.moveText}</span></a>'+
101
+ '</li>'+
102
+ '<li class="highslide-full-expand">'+
103
+ '<a href="#" title="{hs.lang.fullExpandTitle}">'+
104
+ '<span>{hs.lang.fullExpandText}</span></a>'+
105
+ '</li>'+
106
+ '<li class="highslide-close">'+
107
+ '<a href="#" title="{hs.lang.closeTitle}" >'+
108
+ '<span>{hs.lang.closeText}</span></a>'+
109
+ '</li>'+
110
+ '</ul></div>'
111
+ ,
112
+ contentWrapper:
113
+ '<div class="highslide-header"><ul>'+
114
+ '<li class="highslide-previous">'+
115
+ '<a href="#" title="{hs.lang.previousTitle}" onclick="return hs.previous(this)">'+
116
+ '<span>{hs.lang.previousText}</span></a>'+
117
+ '</li>'+
118
+ '<li class="highslide-next">'+
119
+ '<a href="#" title="{hs.lang.nextTitle}" onclick="return hs.next(this)">'+
120
+ '<span>{hs.lang.nextText}</span></a>'+
121
+ '</li>'+
122
+ '<li class="highslide-move">'+
123
+ '<a href="#" title="{hs.lang.moveTitle}" onclick="return false">'+
124
+ '<span>{hs.lang.moveText}</span></a>'+
125
+ '</li>'+
126
+ '<li class="highslide-close">'+
127
+ '<a href="#" title="{hs.lang.closeTitle}" onclick="return hs.close(this)">'+
128
+ '<span>{hs.lang.closeText}</span></a>'+
129
+ '</li>'+
130
+ '</ul></div>'+
131
+ '<div class="highslide-body"></div>'+
132
+ '<div class="highslide-footer"><div>'+
133
+ '<span class="highslide-resize" title="{hs.lang.resizeTitle}"><span></span></span>'+
134
+ '</div></div>'
135
+ },
136
+ // END OF YOUR SETTINGS
137
+
138
+
139
+ // declare internal properties
140
+ preloadTheseImages : [],
141
+ continuePreloading: true,
142
+ expanders : [],
143
+ overrides : [
144
+ 'allowSizeReduction',
145
+ 'useBox',
146
+ 'anchor',
147
+ 'align',
148
+ 'targetX',
149
+ 'targetY',
150
+ 'outlineType',
151
+ 'outlineWhileAnimating',
152
+ 'captionId',
153
+ 'captionText',
154
+ 'captionEval',
155
+ 'captionOverlay',
156
+ 'headingId',
157
+ 'headingText',
158
+ 'headingEval',
159
+ 'headingOverlay',
160
+ 'creditsPosition',
161
+ 'dragByHeading',
162
+ 'autoplay',
163
+ 'numberPosition',
164
+ 'transitions',
165
+ 'dimmingOpacity',
166
+
167
+ 'width',
168
+ 'height',
169
+
170
+ 'contentId',
171
+ 'allowWidthReduction',
172
+ 'allowHeightReduction',
173
+ 'preserveContent',
174
+ 'maincontentId',
175
+ 'maincontentText',
176
+ 'maincontentEval',
177
+ 'objectType',
178
+ 'cacheAjax',
179
+ 'objectWidth',
180
+ 'objectHeight',
181
+ 'objectLoadTime',
182
+ 'swfOptions',
183
+ 'wrapperClassName',
184
+ 'minWidth',
185
+ 'minHeight',
186
+ 'maxWidth',
187
+ 'maxHeight',
188
+ 'pageOrigin',
189
+ 'slideshowGroup',
190
+ 'easing',
191
+ 'easingClose',
192
+ 'fadeInOut',
193
+ 'src'
194
+ ],
195
+ overlays : [],
196
+ idCounter : 0,
197
+ oPos : {
198
+ x: ['leftpanel', 'left', 'center', 'right', 'rightpanel'],
199
+ y: ['above', 'top', 'middle', 'bottom', 'below']
200
+ },
201
+ mouse: {},
202
+ headingOverlay: {},
203
+ captionOverlay: {},
204
+ swfOptions: { flashvars: {}, params: {}, attributes: {} },
205
+ timers : [],
206
+
207
+ slideshows : [],
208
+
209
+ pendingOutlines : {},
210
+ sleeping : [],
211
+ preloadTheseAjax : [],
212
+ cacheBindings : [],
213
+ cachedGets : {},
214
+ clones : {},
215
+ onReady: [],
216
+ uaVersion: /Trident\/4\.0/.test(navigator.userAgent) ? 8 :
217
+ parseFloat((navigator.userAgent.toLowerCase().match( /.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/ ) || [0,'0'])[1]),
218
+ ie : (document.all && !window.opera),
219
+ //ie : navigator && /MSIE [678]/.test(navigator.userAgent), // ie9 compliant?
220
+ safari : /Safari/.test(navigator.userAgent),
221
+ geckoMac : /Macintosh.+rv:1\.[0-8].+Gecko/.test(navigator.userAgent),
222
+
223
+ $ : function (id) {
224
+ if (id) return document.getElementById(id);
225
+ },
226
+
227
+ push : function (arr, val) {
228
+ arr[arr.length] = val;
229
+ },
230
+
231
+ createElement : function (tag, attribs, styles, parent, nopad) {
232
+ var el = document.createElement(tag);
233
+ if (attribs) hs.extend(el, attribs);
234
+ if (nopad) hs.setStyles(el, {padding: 0, border: 'none', margin: 0});
235
+ if (styles) hs.setStyles(el, styles);
236
+ if (parent) parent.appendChild(el);
237
+ return el;
238
+ },
239
+
240
+ extend : function (el, attribs) {
241
+ for (var x in attribs) el[x] = attribs[x];
242
+ return el;
243
+ },
244
+
245
+ setStyles : function (el, styles) {
246
+ for (var x in styles) {
247
+ if (hs.ieLt9 && x == 'opacity') {
248
+ if (styles[x] > 0.99) el.style.removeAttribute('filter');
249
+ else el.style.filter = 'alpha(opacity='+ (styles[x] * 100) +')';
250
+ }
251
+ else el.style[x] = styles[x];
252
+ }
253
+ },
254
+ animate: function(el, prop, opt) {
255
+ var start,
256
+ end,
257
+ unit;
258
+ if (typeof opt != 'object' || opt === null) {
259
+ var args = arguments;
260
+ opt = {
261
+ duration: args[2],
262
+ easing: args[3],
263
+ complete: args[4]
264
+ };
265
+ }
266
+ if (typeof opt.duration != 'number') opt.duration = 250;
267
+ opt.easing = Math[opt.easing] || Math.easeInQuad;
268
+ opt.curAnim = hs.extend({}, prop);
269
+ for (var name in prop) {
270
+ var e = new hs.fx(el, opt , name );
271
+
272
+ start = parseFloat(hs.css(el, name)) || 0;
273
+ end = parseFloat(prop[name]);
274
+ unit = name != 'opacity' ? 'px' : '';
275
+
276
+ e.custom( start, end, unit );
277
+ }
278
+ },
279
+ css: function(el, prop) {
280
+ if (el.style[prop]) {
281
+ return el.style[prop];
282
+ } else if (document.defaultView) {
283
+ return document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);
284
+
285
+ } else {
286
+ if (prop == 'opacity') prop = 'filter';
287
+ var val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ return b.toUpperCase(); })];
288
+ if (prop == 'filter')
289
+ val = val.replace(/alpha\(opacity=([0-9]+)\)/,
290
+ function (a, b) { return b / 100 });
291
+ return val === '' ? 1 : val;
292
+ }
293
+ },
294
+
295
+ getPageSize : function () {
296
+ var d = document, w = window, iebody = d.compatMode && d.compatMode != 'BackCompat'
297
+ ? d.documentElement : d.body,
298
+ ieLt9 = hs.ie && (hs.uaVersion < 9 || typeof pageXOffset == 'undefined');
299
+
300
+ var width = ieLt9 ? iebody.clientWidth :
301
+ (d.documentElement.clientWidth || self.innerWidth),
302
+ height = ieLt9 ? iebody.clientHeight : self.innerHeight;
303
+ hs.page = {
304
+ width: width,
305
+ height: height,
306
+ scrollLeft: ieLt9 ? iebody.scrollLeft : pageXOffset,
307
+ scrollTop: ieLt9 ? iebody.scrollTop : pageYOffset
308
+ };
309
+ return hs.page;
310
+ },
311
+
312
+ getPosition : function(el) {
313
+ if (/area/i.test(el.tagName)) {
314
+ var imgs = document.getElementsByTagName('img');
315
+ for (var i = 0; i < imgs.length; i++) {
316
+ var u = imgs[i].useMap;
317
+ if (u && u.replace(/^.*?#/, '') == el.parentNode.name) {
318
+ el = imgs[i];
319
+ break;
320
+ }
321
+ }
322
+ }
323
+ var p = { x: el.offsetLeft, y: el.offsetTop };
324
+ while (el.offsetParent) {
325
+ el = el.offsetParent;
326
+ p.x += el.offsetLeft;
327
+ p.y += el.offsetTop;
328
+ if (el != document.body && el != document.documentElement) {
329
+ p.x -= el.scrollLeft;
330
+ p.y -= el.scrollTop;
331
+ }
332
+ }
333
+ return p;
334
+ },
335
+
336
+ expand : function(a, params, custom, type) {
337
+ if (!a) a = hs.createElement('a', null, { display: 'none' }, hs.container);
338
+ if (typeof a.getParams == 'function') return params;
339
+ if (type == 'html') {
340
+ for (var i = 0; i < hs.sleeping.length; i++) {
341
+ if (hs.sleeping[i] && hs.sleeping[i].a == a) {
342
+ hs.sleeping[i].awake();
343
+ hs.sleeping[i] = null;
344
+ return false;
345
+ }
346
+ }
347
+ hs.hasHtmlExpanders = true;
348
+ }
349
+ try {
350
+ new hs.Expander(a, params, custom, type);
351
+ return false;
352
+ } catch (e) { return true; }
353
+ },
354
+
355
+ htmlExpand : function(a, params, custom) {
356
+ return hs.expand(a, params, custom, 'html');
357
+ },
358
+
359
+ getSelfRendered : function() {
360
+ return hs.createElement('div', {
361
+ className: 'highslide-html-content',
362
+ innerHTML: hs.replaceLang(hs.skin.contentWrapper)
363
+ });
364
+ },
365
+ getElementByClass : function (el, tagName, className) {
366
+ var els = el.getElementsByTagName(tagName);
367
+ for (var i = 0; i < els.length; i++) {
368
+ if ((new RegExp(className)).test(els[i].className)) {
369
+ return els[i];
370
+ }
371
+ }
372
+ return null;
373
+ },
374
+ replaceLang : function(s) {
375
+ s = s.replace(/\s/g, ' ');
376
+ var re = /{hs\.lang\.([^}]+)\}/g,
377
+ matches = s.match(re),
378
+ lang;
379
+ if (matches) for (var i = 0; i < matches.length; i++) {
380
+ lang = matches[i].replace(re, "$1");
381
+ if (typeof hs.lang[lang] != 'undefined') s = s.replace(matches[i], hs.lang[lang]);
382
+ }
383
+ return s;
384
+ },
385
+
386
+
387
+ setClickEvents : function () {
388
+ var els = document.getElementsByTagName('a');
389
+ for (var i = 0; i < els.length; i++) {
390
+ var type = hs.isUnobtrusiveAnchor(els[i]);
391
+ if (type && !els[i].hsHasSetClick) {
392
+ (function(){
393
+ var t = type;
394
+ if (hs.fireEvent(hs, 'onSetClickEvent', { element: els[i], type: t })) {
395
+ els[i].onclick =(type == 'image') ?function() { return hs.expand(this) }:
396
+ function() { return hs.htmlExpand(this, { objectType: t } );};
397
+ }
398
+ })();
399
+ els[i].hsHasSetClick = true;
400
+ }
401
+ }
402
+ hs.getAnchors();
403
+ },
404
+ isUnobtrusiveAnchor: function(el) {
405
+ if (el.rel == 'highslide') return 'image';
406
+ else if (el.rel == 'highslide-ajax') return 'ajax';
407
+ else if (el.rel == 'highslide-iframe') return 'iframe';
408
+ else if (el.rel == 'highslide-swf') return 'swf';
409
+ },
410
+
411
+ getCacheBinding : function (a) {
412
+ for (var i = 0; i < hs.cacheBindings.length; i++) {
413
+ if (hs.cacheBindings[i][0] == a) {
414
+ var c = hs.cacheBindings[i][1];
415
+ hs.cacheBindings[i][1] = c.cloneNode(1);
416
+ return c;
417
+ }
418
+ }
419
+ return null;
420
+ },
421
+
422
+ preloadAjax : function (e) {
423
+ var arr = hs.getAnchors();
424
+ for (var i = 0; i < arr.htmls.length; i++) {
425
+ var a = arr.htmls[i];
426
+ if (hs.getParam(a, 'objectType') == 'ajax' && hs.getParam(a, 'cacheAjax'))
427
+ hs.push(hs.preloadTheseAjax, a);
428
+ }
429
+
430
+ hs.preloadAjaxElement(0);
431
+ },
432
+
433
+ preloadAjaxElement : function (i) {
434
+ if (!hs.preloadTheseAjax[i]) return;
435
+ var a = hs.preloadTheseAjax[i];
436
+ var cache = hs.getNode(hs.getParam(a, 'contentId'));
437
+ if (!cache) cache = hs.getSelfRendered();
438
+ var ajax = new hs.Ajax(a, cache, 1);
439
+ ajax.onError = function () { };
440
+ ajax.onLoad = function () {
441
+ hs.push(hs.cacheBindings, [a, cache]);
442
+ hs.preloadAjaxElement(i + 1);
443
+ };
444
+ ajax.run();
445
+ },
446
+
447
+ focusTopmost : function() {
448
+ var topZ = 0,
449
+ topmostKey = -1,
450
+ expanders = hs.expanders,
451
+ exp,
452
+ zIndex;
453
+ for (var i = 0; i < expanders.length; i++) {
454
+ exp = expanders[i];
455
+ if (exp) {
456
+ zIndex = exp.wrapper.style.zIndex;
457
+ if (zIndex && zIndex > topZ) {
458
+ topZ = zIndex;
459
+ topmostKey = i;
460
+ }
461
+ }
462
+ }
463
+ if (topmostKey == -1) hs.focusKey = -1;
464
+ else expanders[topmostKey].focus();
465
+ },
466
+
467
+ getParam : function (a, param) {
468
+ a.getParams = a.onclick;
469
+ var p = a.getParams ? a.getParams() : null;
470
+ a.getParams = null;
471
+
472
+ return (p && typeof p[param] != 'undefined') ? p[param] :
473
+ (typeof hs[param] != 'undefined' ? hs[param] : null);
474
+ },
475
+
476
+ getSrc : function (a) {
477
+ var src = hs.getParam(a, 'src');
478
+ if (src) return src;
479
+ return a.href;
480
+ },
481
+
482
+ getNode : function (id) {
483
+ var node = hs.$(id), clone = hs.clones[id], a = {};
484
+ if (!node && !clone) return null;
485
+ if (!clone) {
486
+ clone = node.cloneNode(true);
487
+ clone.id = '';
488
+ hs.clones[id] = clone;
489
+ return node;
490
+ } else {
491
+ return clone.cloneNode(true);
492
+ }
493
+ },
494
+
495
+ discardElement : function(d) {
496
+ if (d) hs.garbageBin.appendChild(d);
497
+ hs.garbageBin.innerHTML = '';
498
+ },
499
+ dim : function(exp) {
500
+ if (!hs.dimmer) {
501
+ isNew = true;
502
+ hs.dimmer = hs.createElement ('div', {
503
+ className: 'highslide-dimming highslide-viewport-size',
504
+ owner: '',
505
+ onclick: function() {
506
+ if (hs.fireEvent(hs, 'onDimmerClick'))
507
+
508
+ hs.close();
509
+ }
510
+ }, {
511
+ visibility: 'visible',
512
+ opacity: 0
513
+ }, hs.container, true);
514
+
515
+ if (/(Android|iPad|iPhone|iPod)/.test(navigator.userAgent)) {
516
+ var body = document.body;
517
+ function pixDimmerSize() {
518
+ hs.setStyles(hs.dimmer, {
519
+ width: body.scrollWidth +'px',
520
+ height: body.scrollHeight +'px'
521
+ });
522
+ }
523
+ pixDimmerSize();
524
+ hs.addEventListener(window, 'resize', pixDimmerSize);
525
+ }
526
+ }
527
+ hs.dimmer.style.display = '';
528
+
529
+ var isNew = hs.dimmer.owner == '';
530
+ hs.dimmer.owner += '|'+ exp.key;
531
+
532
+ if (isNew) {
533
+ if (hs.geckoMac && hs.dimmingGeckoFix)
534
+ hs.setStyles(hs.dimmer, {
535
+ background: 'url('+ hs.graphicsDir + 'geckodimmer.png)',
536
+ opacity: 1
537
+ });
538
+ else
539
+ hs.animate(hs.dimmer, { opacity: exp.dimmingOpacity }, hs.dimmingDuration);
540
+ }
541
+ },
542
+ undim : function(key) {
543
+ if (!hs.dimmer) return;
544
+ if (typeof key != 'undefined') hs.dimmer.owner = hs.dimmer.owner.replace('|'+ key, '');
545
+
546
+ if (
547
+ (typeof key != 'undefined' && hs.dimmer.owner != '')
548
+ || (hs.upcoming && hs.getParam(hs.upcoming, 'dimmingOpacity'))
549
+ ) return;
550
+
551
+ if (hs.geckoMac && hs.dimmingGeckoFix) hs.dimmer.style.display = 'none';
552
+ else hs.animate(hs.dimmer, { opacity: 0 }, hs.dimmingDuration, null, function() {
553
+ hs.dimmer.style.display = 'none';
554
+ });
555
+ },
556
+ transit : function (adj, exp) {
557
+ var last = exp || hs.getExpander();
558
+ exp = last;
559
+ if (hs.upcoming) return false;
560
+ else hs.last = last;
561
+ hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
562
+ try {
563
+ hs.upcoming = adj;
564
+ adj.onclick();
565
+ } catch (e){
566
+ hs.last = hs.upcoming = null;
567
+ }
568
+ try {
569
+ if (!adj || exp.transitions[1] != 'crossfade')
570
+ exp.close();
571
+ } catch (e) {}
572
+ return false;
573
+ },
574
+
575
+ previousOrNext : function (el, op) {
576
+ var exp = hs.getExpander(el);
577
+ if (exp) return hs.transit(exp.getAdjacentAnchor(op), exp);
578
+ else return false;
579
+ },
580
+
581
+ previous : function (el) {
582
+ return hs.previousOrNext(el, -1);
583
+ },
584
+
585
+ next : function (el) {
586
+ return hs.previousOrNext(el, 1);
587
+ },
588
+
589
+ keyHandler : function(e) {
590
+ if (!e) e = window.event;
591
+ if (!e.target) e.target = e.srcElement; // ie
592
+ if (typeof e.target.form != 'undefined') return true; // form element has focus
593
+ if (!hs.fireEvent(hs, 'onKeyDown', e)) return true;
594
+ var exp = hs.getExpander();
595
+
596
+ var op = null;
597
+ switch (e.keyCode) {
598
+ case 70: // f
599
+ if (exp) exp.doFullExpand();
600
+ return true;
601
+ case 32: // Space
602
+ op = 2;
603
+ break;
604
+ case 34: // Page Down
605
+ case 39: // Arrow right
606
+ case 40: // Arrow down
607
+ op = 1;
608
+ break;
609
+ case 8: // Backspace
610
+ case 33: // Page Up
611
+ case 37: // Arrow left
612
+ case 38: // Arrow up
613
+ op = -1;
614
+ break;
615
+ case 27: // Escape
616
+ case 13: // Enter
617
+ op = 0;
618
+ }
619
+ if (op !== null) {if (op != 2)hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
620
+ if (!hs.enableKeyListener) return true;
621
+
622
+ if (e.preventDefault) e.preventDefault();
623
+ else e.returnValue = false;
624
+ if (exp) {
625
+ if (op == 0) {
626
+ exp.close();
627
+ } else if (op == 2) {
628
+ if (exp.slideshow) exp.slideshow.hitSpace();
629
+ } else {
630
+ if (exp.slideshow) exp.slideshow.pause();
631
+ hs.previousOrNext(exp.key, op);
632
+ }
633
+ return false;
634
+ }
635
+ }
636
+ return true;
637
+ },
638
+
639
+
640
+ registerOverlay : function (overlay) {
641
+ hs.push(hs.overlays, hs.extend(overlay, { hsId: 'hsId'+ hs.idCounter++ } ));
642
+ },
643
+
644
+
645
+ addSlideshow : function (options) {
646
+ var sg = options.slideshowGroup;
647
+ if (typeof sg == 'object') {
648
+ for (var i = 0; i < sg.length; i++) {
649
+ var o = {};
650
+ for (var x in options) o[x] = options[x];
651
+ o.slideshowGroup = sg[i];
652
+ hs.push(hs.slideshows, o);
653
+ }
654
+ } else {
655
+ hs.push(hs.slideshows, options);
656
+ }
657
+ },
658
+
659
+ getWrapperKey : function (element, expOnly) {
660
+ var el, re = /^highslide-wrapper-([0-9]+)$/;
661
+ // 1. look in open expanders
662
+ el = element;
663
+ while (el.parentNode) {
664
+ if (el.hsKey !== undefined) return el.hsKey;
665
+ if (el.id && re.test(el.id)) return el.id.replace(re, "$1");
666
+ el = el.parentNode;
667
+ }
668
+ // 2. look in thumbnail
669
+ if (!expOnly) {
670
+ el = element;
671
+ while (el.parentNode) {
672
+ if (el.tagName && hs.isHsAnchor(el)) {
673
+ for (var key = 0; key < hs.expanders.length; key++) {
674
+ var exp = hs.expanders[key];
675
+ if (exp && exp.a == el) return key;
676
+ }
677
+ }
678
+ el = el.parentNode;
679
+ }
680
+ }
681
+ return null;
682
+ },
683
+
684
+ getExpander : function (el, expOnly) {
685
+ if (typeof el == 'undefined') return hs.expanders[hs.focusKey] || null;
686
+ if (typeof el == 'number') return hs.expanders[el] || null;
687
+ if (typeof el == 'string') el = hs.$(el);
688
+ return hs.expanders[hs.getWrapperKey(el, expOnly)] || null;
689
+ },
690
+
691
+ isHsAnchor : function (a) {
692
+ return (a.onclick && a.onclick.toString().replace(/\s/g, ' ').match(/hs.(htmlE|e)xpand/));
693
+ },
694
+
695
+ reOrder : function () {
696
+ for (var i = 0; i < hs.expanders.length; i++)
697
+ if (hs.expanders[i] && hs.expanders[i].isExpanded) hs.focusTopmost();
698
+ },
699
+ fireEvent : function (obj, evt, args) {
700
+ return obj && obj[evt] ? (obj[evt](obj, args) !== false) : true;
701
+ },
702
+
703
+ mouseClickHandler : function(e)
704
+ {
705
+ if (!e) e = window.event;
706
+ if (e.button > 1) return true;
707
+ if (!e.target) e.target = e.srcElement;
708
+
709
+ var el = e.target;
710
+ while (el.parentNode
711
+ && !(/highslide-(image|move|html|resize)/.test(el.className)))
712
+ {
713
+ el = el.parentNode;
714
+ }
715
+ var exp = hs.getExpander(el);
716
+ if (exp && (exp.isClosing || !exp.isExpanded)) return true;
717
+
718
+ if (exp && e.type == 'mousedown') {
719
+ if (e.target.form) return true;
720
+ var match = el.className.match(/highslide-(image|move|resize)/);
721
+ if (match) {
722
+ hs.dragArgs = {
723
+ exp: exp ,
724
+ type: match[1],
725
+ left: exp.x.pos,
726
+ width: exp.x.size,
727
+ top: exp.y.pos,
728
+ height: exp.y.size,
729
+ clickX: e.clientX,
730
+ clickY: e.clientY
731
+ };
732
+
733
+
734
+ hs.addEventListener(document, 'mousemove', hs.dragHandler);
735
+ if (e.preventDefault) e.preventDefault(); // FF
736
+
737
+ if (/highslide-(image|html)-blur/.test(exp.content.className)) {
738
+ exp.focus();
739
+ hs.hasFocused = true;
740
+ }
741
+ return false;
742
+ }
743
+ else if (/highslide-html/.test(el.className) && hs.focusKey != exp.key) {
744
+ exp.focus();
745
+ exp.doShowHide('hidden');
746
+ }
747
+ } else if (e.type == 'mouseup') {
748
+
749
+ hs.removeEventListener(document, 'mousemove', hs.dragHandler);
750
+
751
+ if (hs.dragArgs) {
752
+ if (hs.styleRestoreCursor && hs.dragArgs.type == 'image')
753
+ hs.dragArgs.exp.content.style.cursor = hs.styleRestoreCursor;
754
+ var hasDragged = hs.dragArgs.hasDragged;
755
+
756
+ if (!hasDragged &&!hs.hasFocused && !/(move|resize)/.test(hs.dragArgs.type)) {
757
+ if (hs.fireEvent(exp, 'onImageClick'))
758
+ exp.close();
759
+ }
760
+ else if (hasDragged || (!hasDragged && hs.hasHtmlExpanders)) {
761
+ hs.dragArgs.exp.doShowHide('hidden');
762
+ }
763
+
764
+ if (hs.dragArgs.exp.releaseMask)
765
+ hs.dragArgs.exp.releaseMask.style.display = 'none';
766
+
767
+ if (hasDragged) hs.fireEvent(hs.dragArgs.exp, 'onDrop', hs.dragArgs);
768
+ hs.hasFocused = false;
769
+ hs.dragArgs = null;
770
+
771
+ } else if (/highslide-image-blur/.test(el.className)) {
772
+ el.style.cursor = hs.styleRestoreCursor;
773
+ }
774
+ }
775
+ return false;
776
+ },
777
+
778
+ dragHandler : function(e)
779
+ {
780
+ if (!hs.dragArgs) return true;
781
+ if (!e) e = window.event;
782
+ var a = hs.dragArgs, exp = a.exp;
783
+ if (exp.iframe) {
784
+ if (!exp.releaseMask) exp.releaseMask = hs.createElement('div', null,
785
+ { position: 'absolute', width: exp.x.size+'px', height: exp.y.size+'px',
786
+ left: exp.x.cb+'px', top: exp.y.cb+'px', zIndex: 4, background: (hs.ieLt9 ? 'white' : 'none'),
787
+ opacity: 0.01 },
788
+ exp.wrapper, true);
789
+ if (exp.releaseMask.style.display == 'none')
790
+ exp.releaseMask.style.display = '';
791
+ }
792
+
793
+ a.dX = e.clientX - a.clickX;
794
+ a.dY = e.clientY - a.clickY;
795
+
796
+ var distance = Math.sqrt(Math.pow(a.dX, 2) + Math.pow(a.dY, 2));
797
+ if (!a.hasDragged) a.hasDragged = (a.type != 'image' && distance > 0)
798
+ || (distance > (hs.dragSensitivity || 5));
799
+
800
+ if (a.hasDragged && e.clientX > 5 && e.clientY > 5) {
801
+ if (!hs.fireEvent(exp, 'onDrag', a)) return false;
802
+
803
+ if (a.type == 'resize') exp.resize(a);
804
+ else {
805
+ exp.moveTo(a.left + a.dX, a.top + a.dY);
806
+ if (a.type == 'image') exp.content.style.cursor = 'move';
807
+ }
808
+ }
809
+ return false;
810
+ },
811
+
812
+ wrapperMouseHandler : function (e) {
813
+ try {
814
+ if (!e) e = window.event;
815
+ var over = /mouseover/i.test(e.type);
816
+ if (!e.target) e.target = e.srcElement; // ie
817
+ if (!e.relatedTarget) e.relatedTarget =
818
+ over ? e.fromElement : e.toElement; // ie
819
+ var exp = hs.getExpander(e.target);
820
+ if (!exp.isExpanded) return;
821
+ if (!exp || !e.relatedTarget || hs.getExpander(e.relatedTarget, true) == exp
822
+ || hs.dragArgs) return;
823
+ hs.fireEvent(exp, over ? 'onMouseOver' : 'onMouseOut', e);
824
+ for (var i = 0; i < exp.overlays.length; i++) (function() {
825
+ var o = hs.$('hsId'+ exp.overlays[i]);
826
+ if (o && o.hideOnMouseOut) {
827
+ if (over) hs.setStyles(o, { visibility: 'visible', display: '' });
828
+ hs.animate(o, { opacity: over ? o.opacity : 0 }, o.dur);
829
+ }
830
+ })();
831
+ } catch (e) {}
832
+ },
833
+ addEventListener : function (el, event, func) {
834
+ if (el == document && event == 'ready') {
835
+ hs.push(hs.onReady, func);
836
+ }
837
+ try {
838
+ el.addEventListener(event, func, false);
839
+ } catch (e) {
840
+ try {
841
+ el.detachEvent('on'+ event, func);
842
+ el.attachEvent('on'+ event, func);
843
+ } catch (e) {
844
+ el['on'+ event] = func;
845
+ }
846
+ }
847
+ },
848
+
849
+ removeEventListener : function (el, event, func) {
850
+ try {
851
+ el.removeEventListener(event, func, false);
852
+ } catch (e) {
853
+ try {
854
+ el.detachEvent('on'+ event, func);
855
+ } catch (e) {
856
+ el['on'+ event] = null;
857
+ }
858
+ }
859
+ },
860
+
861
+ preloadFullImage : function (i) {
862
+ if (hs.continuePreloading && hs.preloadTheseImages[i] && hs.preloadTheseImages[i] != 'undefined') {
863
+ var img = document.createElement('img');
864
+ img.onload = function() {
865
+ img = null;
866
+ hs.preloadFullImage(i + 1);
867
+ };
868
+ img.src = hs.preloadTheseImages[i];
869
+ }
870
+ },
871
+ preloadImages : function (number) {
872
+ if (number && typeof number != 'object') hs.numberOfImagesToPreload = number;
873
+
874
+ var arr = hs.getAnchors();
875
+ for (var i = 0; i < arr.images.length && i < hs.numberOfImagesToPreload; i++) {
876
+ hs.push(hs.preloadTheseImages, hs.getSrc(arr.images[i]));
877
+ }
878
+
879
+ // preload outlines
880
+ if (hs.outlineType) new hs.Outline(hs.outlineType, function () { hs.preloadFullImage(0)} );
881
+ else
882
+
883
+ hs.preloadFullImage(0);
884
+
885
+ // preload cursor
886
+ if (hs.restoreCursor) var cur = hs.createElement('img', { src: hs.graphicsDir + hs.restoreCursor });
887
+ },
888
+
889
+
890
+ init : function () {
891
+ if (!hs.container) {
892
+
893
+ hs.ieLt7 = hs.ie && hs.uaVersion < 7;
894
+ hs.ieLt9 = hs.ie && hs.uaVersion < 9;
895
+
896
+ hs.getPageSize();
897
+ hs.ie6SSL = hs.ieLt7 && location.protocol == 'https:';
898
+ for (var x in hs.langDefaults) {
899
+ if (typeof hs[x] != 'undefined') hs.lang[x] = hs[x];
900
+ else if (typeof hs.lang[x] == 'undefined' && typeof hs.langDefaults[x] != 'undefined')
901
+ hs.lang[x] = hs.langDefaults[x];
902
+ }
903
+
904
+ hs.container = hs.createElement('div', {
905
+ className: 'highslide-container'
906
+ }, {
907
+ position: 'absolute',
908
+ left: 0,
909
+ top: 0,
910
+ width: '100%',
911
+ zIndex: hs.zIndexCounter,
912
+ direction: 'ltr'
913
+ },
914
+ document.body,
915
+ true
916
+ );
917
+ hs.loading = hs.createElement('a', {
918
+ className: 'highslide-loading',
919
+ title: hs.lang.loadingTitle,
920
+ innerHTML: hs.lang.loadingText,
921
+ href: 'javascript:;'
922
+ }, {
923
+ position: 'absolute',
924
+ top: '-9999px',
925
+ opacity: hs.loadingOpacity,
926
+ zIndex: 1
927
+ }, hs.container
928
+ );
929
+ hs.garbageBin = hs.createElement('div', null, { display: 'none' }, hs.container);
930
+ hs.viewport = hs.createElement('div', {
931
+ className: 'highslide-viewport highslide-viewport-size'
932
+ }, {
933
+ visibility: (hs.safari && hs.uaVersion < 525) ? 'visible' : 'hidden'
934
+ }, hs.container, 1
935
+ );
936
+ hs.clearing = hs.createElement('div', null,
937
+ { clear: 'both', paddingTop: '1px' }, null, true);
938
+
939
+ // http://www.robertpenner.com/easing/
940
+ Math.linearTween = function (t, b, c, d) {
941
+ return c*t/d + b;
942
+ };
943
+ Math.easeInQuad = function (t, b, c, d) {
944
+ return c*(t/=d)*t + b;
945
+ };
946
+ Math.easeOutQuad = function (t, b, c, d) {
947
+ return -c *(t/=d)*(t-2) + b;
948
+ };
949
+
950
+ hs.hideSelects = hs.ieLt7;
951
+ hs.hideIframes = ((window.opera && hs.uaVersion < 9) || navigator.vendor == 'KDE'
952
+ || (hs.ieLt7 && hs.uaVersion < 5.5));
953
+ hs.fireEvent(this, 'onActivate');
954
+ }
955
+ },
956
+ ready : function() {
957
+ if (hs.isReady) return;
958
+ hs.isReady = true;
959
+ for (var i = 0; i < hs.onReady.length; i++) hs.onReady[i]();
960
+ },
961
+
962
+ updateAnchors : function() {
963
+ var el, els, all = [], images = [], htmls = [],groups = {}, re;
964
+
965
+ for (var i = 0; i < hs.openerTagNames.length; i++) {
966
+ els = document.getElementsByTagName(hs.openerTagNames[i]);
967
+ for (var j = 0; j < els.length; j++) {
968
+ el = els[j];
969
+ re = hs.isHsAnchor(el);
970
+ if (re) {
971
+ hs.push(all, el);
972
+ if (re[0] == 'hs.expand') hs.push(images, el);
973
+ else if (re[0] == 'hs.htmlExpand') hs.push(htmls, el);
974
+ var g = hs.getParam(el, 'slideshowGroup') || 'none';
975
+ if (!groups[g]) groups[g] = [];
976
+ hs.push(groups[g], el);
977
+ }
978
+ }
979
+ }
980
+ hs.anchors = { all: all, groups: groups, images: images, htmls: htmls };
981
+ return hs.anchors;
982
+
983
+ },
984
+
985
+ getAnchors : function() {
986
+ return hs.anchors || hs.updateAnchors();
987
+ },
988
+
989
+
990
+ close : function(el) {
991
+ var exp = hs.getExpander(el);
992
+ if (exp) exp.close();
993
+ return false;
994
+ }
995
+ }; // end hs object
996
+ hs.fx = function( elem, options, prop ){
997
+ this.options = options;
998
+ this.elem = elem;
999
+ this.prop = prop;
1000
+
1001
+ if (!options.orig) options.orig = {};
1002
+ };
1003
+ hs.fx.prototype = {
1004
+ update: function(){
1005
+ (hs.fx.step[this.prop] || hs.fx.step._default)(this);
1006
+
1007
+ if (this.options.step)
1008
+ this.options.step.call(this.elem, this.now, this);
1009
+
1010
+ },
1011
+ custom: function(from, to, unit){
1012
+ this.startTime = (new Date()).getTime();
1013
+ this.start = from;
1014
+ this.end = to;
1015
+ this.unit = unit;// || this.unit || "px";
1016
+ this.now = this.start;
1017
+ this.pos = this.state = 0;
1018
+
1019
+ var self = this;
1020
+ function t(gotoEnd){
1021
+ return self.step(gotoEnd);
1022
+ }
1023
+
1024
+ t.elem = this.elem;
1025
+
1026
+ if ( t() && hs.timers.push(t) == 1 ) {
1027
+ hs.timerId = setInterval(function(){
1028
+ var timers = hs.timers;
1029
+
1030
+ for ( var i = 0; i < timers.length; i++ )
1031
+ if ( !timers[i]() )
1032
+ timers.splice(i--, 1);
1033
+
1034
+ if ( !timers.length ) {
1035
+ clearInterval(hs.timerId);
1036
+ }
1037
+ }, 13);
1038
+ }
1039
+ },
1040
+ step: function(gotoEnd){
1041
+ var t = (new Date()).getTime();
1042
+ if ( gotoEnd || t >= this.options.duration + this.startTime ) {
1043
+ this.now = this.end;
1044
+ this.pos = this.state = 1;
1045
+ this.update();
1046
+
1047
+ this.options.curAnim[ this.prop ] = true;
1048
+
1049
+ var done = true;
1050
+ for ( var i in this.options.curAnim )
1051
+ if ( this.options.curAnim[i] !== true )
1052
+ done = false;
1053
+
1054
+ if ( done ) {
1055
+ if (this.options.complete) this.options.complete.call(this.elem);
1056
+ }
1057
+ return false;
1058
+ } else {
1059
+ var n = t - this.startTime;
1060
+ this.state = n / this.options.duration;
1061
+ this.pos = this.options.easing(n, 0, 1, this.options.duration);
1062
+ this.now = this.start + ((this.end - this.start) * this.pos);
1063
+ this.update();
1064
+ }
1065
+ return true;
1066
+ }
1067
+
1068
+ };
1069
+
1070
+ hs.extend( hs.fx, {
1071
+ step: {
1072
+
1073
+ opacity: function(fx){
1074
+ hs.setStyles(fx.elem, { opacity: fx.now });
1075
+ },
1076
+
1077
+ _default: function(fx){
1078
+ try {
1079
+ if ( fx.elem.style && fx.elem.style[ fx.prop ] != null )
1080
+ fx.elem.style[ fx.prop ] = fx.now + fx.unit;
1081
+ else
1082
+ fx.elem[ fx.prop ] = fx.now;
1083
+ } catch (e) {}
1084
+ }
1085
+ }
1086
+ });
1087
+
1088
+ hs.Outline = function (outlineType, onLoad) {
1089
+ this.onLoad = onLoad;
1090
+ this.outlineType = outlineType;
1091
+ var v = hs.uaVersion, tr;
1092
+
1093
+ this.hasAlphaImageLoader = hs.ie && hs.uaVersion < 7;
1094
+ if (!outlineType) {
1095
+ if (onLoad) onLoad();
1096
+ return;
1097
+ }
1098
+
1099
+ hs.init();
1100
+ this.table = hs.createElement(
1101
+ 'table', {
1102
+ cellSpacing: 0
1103
+ }, {
1104
+ visibility: 'hidden',
1105
+ position: 'absolute',
1106
+ borderCollapse: 'collapse',
1107
+ width: 0
1108
+ },
1109
+ hs.container,
1110
+ true
1111
+ );
1112
+ var tbody = hs.createElement('tbody', null, null, this.table, 1);
1113
+
1114
+ this.td = [];
1115
+ for (var i = 0; i <= 8; i++) {
1116
+ if (i % 3 == 0) tr = hs.createElement('tr', null, { height: 'auto' }, tbody, true);
1117
+ this.td[i] = hs.createElement('td', null, null, tr, true);
1118
+ var style = i != 4 ? { lineHeight: 0, fontSize: 0} : { position : 'relative' };
1119
+ hs.setStyles(this.td[i], style);
1120
+ }
1121
+ this.td[4].className = outlineType +' highslide-outline';
1122
+
1123
+ this.preloadGraphic();
1124
+ };
1125
+
1126
+ hs.Outline.prototype = {
1127
+ preloadGraphic : function () {
1128
+ var src = hs.graphicsDir + (hs.outlinesDir || "outlines/")+ this.outlineType +".png";
1129
+
1130
+ var appendTo = hs.safari && hs.uaVersion < 525 ? hs.container : null;
1131
+ this.graphic = hs.createElement('img', null, { position: 'absolute',
1132
+ top: '-9999px' }, appendTo, true); // for onload trigger
1133
+
1134
+ var pThis = this;
1135
+ this.graphic.onload = function() { pThis.onGraphicLoad(); };
1136
+
1137
+ this.graphic.src = src;
1138
+ },
1139
+
1140
+ onGraphicLoad : function () {
1141
+ var o = this.offset = this.graphic.width / 4,
1142
+ pos = [[0,0],[0,-4],[-2,0],[0,-8],0,[-2,-8],[0,-2],[0,-6],[-2,-2]],
1143
+ dim = { height: (2*o) +'px', width: (2*o) +'px' };
1144
+ for (var i = 0; i <= 8; i++) {
1145
+ if (pos[i]) {
1146
+ if (this.hasAlphaImageLoader) {
1147
+ var w = (i == 1 || i == 7) ? '100%' : this.graphic.width +'px';
1148
+ var div = hs.createElement('div', null, { width: '100%', height: '100%', position: 'relative', overflow: 'hidden'}, this.td[i], true);
1149
+ hs.createElement ('div', null, {
1150
+ filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale, src='"+ this.graphic.src + "')",
1151
+ position: 'absolute',
1152
+ width: w,
1153
+ height: this.graphic.height +'px',
1154
+ left: (pos[i][0]*o)+'px',
1155
+ top: (pos[i][1]*o)+'px'
1156
+ },
1157
+ div,
1158
+ true);
1159
+ } else {
1160
+ hs.setStyles(this.td[i], { background: 'url('+ this.graphic.src +') '+ (pos[i][0]*o)+'px '+(pos[i][1]*o)+'px'});
1161
+ }
1162
+
1163
+ if (window.opera && (i == 3 || i ==5))
1164
+ hs.createElement('div', null, dim, this.td[i], true);
1165
+
1166
+ hs.setStyles (this.td[i], dim);
1167
+ }
1168
+ }
1169
+ this.graphic = null;
1170
+ if (hs.pendingOutlines[this.outlineType]) hs.pendingOutlines[this.outlineType].destroy();
1171
+ hs.pendingOutlines[this.outlineType] = this;
1172
+ if (this.onLoad) this.onLoad();
1173
+ },
1174
+
1175
+ setPosition : function (pos, offset, vis, dur, easing) {
1176
+ var exp = this.exp,
1177
+ stl = exp.wrapper.style,
1178
+ offset = offset || 0,
1179
+ pos = pos || {
1180
+ x: exp.x.pos + offset,
1181
+ y: exp.y.pos + offset,
1182
+ w: exp.x.get('wsize') - 2 * offset,
1183
+ h: exp.y.get('wsize') - 2 * offset
1184
+ };
1185
+ if (vis) this.table.style.visibility = (pos.h >= 4 * this.offset)
1186
+ ? 'visible' : 'hidden';
1187
+ hs.setStyles(this.table, {
1188
+ left: (pos.x - this.offset) +'px',
1189
+ top: (pos.y - this.offset) +'px',
1190
+ width: (pos.w + 2 * this.offset) +'px'
1191
+ });
1192
+
1193
+ pos.w -= 2 * this.offset;
1194
+ pos.h -= 2 * this.offset;
1195
+ hs.setStyles (this.td[4], {
1196
+ width: pos.w >= 0 ? pos.w +'px' : 0,
1197
+ height: pos.h >= 0 ? pos.h +'px' : 0
1198
+ });
1199
+ if (this.hasAlphaImageLoader) this.td[3].style.height
1200
+ = this.td[5].style.height = this.td[4].style.height;
1201
+
1202
+ },
1203
+
1204
+ destroy : function(hide) {
1205
+ if (hide) this.table.style.visibility = 'hidden';
1206
+ else hs.discardElement(this.table);
1207
+ }
1208
+ };
1209
+
1210
+ hs.Dimension = function(exp, dim) {
1211
+ this.exp = exp;
1212
+ this.dim = dim;
1213
+ this.ucwh = dim == 'x' ? 'Width' : 'Height';
1214
+ this.wh = this.ucwh.toLowerCase();
1215
+ this.uclt = dim == 'x' ? 'Left' : 'Top';
1216
+ this.lt = this.uclt.toLowerCase();
1217
+ this.ucrb = dim == 'x' ? 'Right' : 'Bottom';
1218
+ this.rb = this.ucrb.toLowerCase();
1219
+ this.p1 = this.p2 = 0;
1220
+ };
1221
+ hs.Dimension.prototype = {
1222
+ get : function(key) {
1223
+ switch (key) {
1224
+ case 'loadingPos':
1225
+ return this.tpos + this.tb + (this.t - hs.loading['offset'+ this.ucwh]) / 2;
1226
+ case 'loadingPosXfade':
1227
+ return this.pos + this.cb+ this.p1 + (this.size - hs.loading['offset'+ this.ucwh]) / 2;
1228
+ case 'wsize':
1229
+ return this.size + 2 * this.cb + this.p1 + this.p2;
1230
+ case 'fitsize':
1231
+ return this.clientSize - this.marginMin - this.marginMax;
1232
+ case 'maxsize':
1233
+ return this.get('fitsize') - 2 * this.cb - this.p1 - this.p2 ;
1234
+ case 'opos':
1235
+ return this.pos - (this.exp.outline ? this.exp.outline.offset : 0);
1236
+ case 'osize':
1237
+ return this.get('wsize') + (this.exp.outline ? 2*this.exp.outline.offset : 0);
1238
+ case 'imgPad':
1239
+ return this.imgSize ? Math.round((this.size - this.imgSize) / 2) : 0;
1240
+
1241
+ }
1242
+ },
1243
+ calcBorders: function() {
1244
+ // correct for borders
1245
+ this.cb = (this.exp.content['offset'+ this.ucwh] - this.t) / 2;
1246
+
1247
+ this.marginMax = hs['margin'+ this.ucrb];
1248
+ },
1249
+ calcThumb: function() {
1250
+ this.t = this.exp.el[this.wh] ? parseInt(this.exp.el[this.wh]) :
1251
+ this.exp.el['offset'+ this.ucwh];
1252
+ this.tpos = this.exp.tpos[this.dim];
1253
+ this.tb = (this.exp.el['offset'+ this.ucwh] - this.t) / 2;
1254
+ if (this.tpos == 0 || this.tpos == -1) {
1255
+ this.tpos = (hs.page[this.wh] / 2) + hs.page['scroll'+ this.uclt];
1256
+ };
1257
+ },
1258
+ calcExpanded: function() {
1259
+ var exp = this.exp;
1260
+ this.justify = 'auto';
1261
+
1262
+ // get alignment
1263
+ if (exp.align == 'center') this.justify = 'center';
1264
+ else if (new RegExp(this.lt).test(exp.anchor)) this.justify = null;
1265
+ else if (new RegExp(this.rb).test(exp.anchor)) this.justify = 'max';
1266
+
1267
+
1268
+ // size and position
1269
+ this.pos = this.tpos - this.cb + this.tb;
1270
+
1271
+ if (this.maxHeight && this.dim == 'x')
1272
+ exp.maxWidth = Math.min(exp.maxWidth || this.full, exp.maxHeight * this.full / exp.y.full);
1273
+
1274
+ this.size = Math.min(this.full, exp['max'+ this.ucwh] || this.full);
1275
+ this.minSize = exp.allowSizeReduction ?
1276
+ Math.min(exp['min'+ this.ucwh], this.full) :this.full;
1277
+ if (exp.isImage && exp.useBox) {
1278
+ this.size = exp[this.wh];
1279
+ this.imgSize = this.full;
1280
+ }
1281
+ if (this.dim == 'x' && hs.padToMinWidth) this.minSize = exp.minWidth;
1282
+ this.target = exp['target'+ this.dim.toUpperCase()];
1283
+ this.marginMin = hs['margin'+ this.uclt];
1284
+ this.scroll = hs.page['scroll'+ this.uclt];
1285
+ this.clientSize = hs.page[this.wh];
1286
+ },
1287
+ setSize: function(i) {
1288
+ var exp = this.exp;
1289
+ if (exp.isImage && (exp.useBox || hs.padToMinWidth)) {
1290
+ this.imgSize = i;
1291
+ this.size = Math.max(this.size, this.imgSize);
1292
+ exp.content.style[this.lt] = this.get('imgPad')+'px';
1293
+ } else
1294
+ this.size = i;
1295
+
1296
+ exp.content.style[this.wh] = i +'px';
1297
+ exp.wrapper.style[this.wh] = this.get('wsize') +'px';
1298
+ if (exp.outline) exp.outline.setPosition();
1299
+ if (exp.releaseMask) exp.releaseMask.style[this.wh] = i +'px';
1300
+ if (this.dim == 'y' && exp.iDoc && exp.body.style.height != 'auto') try {
1301
+ exp.iDoc.body.style.overflow = 'auto';
1302
+ } catch (e) {}
1303
+ if (exp.isHtml) {
1304
+ var d = exp.scrollerDiv;
1305
+ if (this.sizeDiff === undefined)
1306
+ this.sizeDiff = exp.innerContent['offset'+ this.ucwh] - d['offset'+ this.ucwh];
1307
+ d.style[this.wh] = (this.size - this.sizeDiff) +'px';
1308
+
1309
+ if (this.dim == 'x') exp.mediumContent.style.width = 'auto';
1310
+ if (exp.body) exp.body.style[this.wh] = 'auto';
1311
+ }
1312
+ if (this.dim == 'x' && exp.overlayBox) exp.sizeOverlayBox(true);
1313
+ if (this.dim == 'x' && exp.slideshow && exp.isImage) {
1314
+ if (i == this.full) exp.slideshow.disable('full-expand');
1315
+ else exp.slideshow.enable('full-expand');
1316
+ }
1317
+ },
1318
+ setPos: function(i) {
1319
+ this.pos = i;
1320
+ this.exp.wrapper.style[this.lt] = i +'px';
1321
+
1322
+ if (this.exp.outline) this.exp.outline.setPosition();
1323
+
1324
+ }
1325
+ };
1326
+
1327
+ hs.Expander = function(a, params, custom, contentType) {
1328
+ if (document.readyState && hs.ie && !hs.isReady) {
1329
+ hs.addEventListener(document, 'ready', function() {
1330
+ new hs.Expander(a, params, custom, contentType);
1331
+ });
1332
+ return;
1333
+ }
1334
+ this.a = a;
1335
+ this.custom = custom;
1336
+ this.contentType = contentType || 'image';
1337
+ this.isHtml = (contentType == 'html');
1338
+ this.isImage = !this.isHtml;
1339
+
1340
+ hs.continuePreloading = false;
1341
+ this.overlays = [];
1342
+ this.last = hs.last;
1343
+ hs.last = null;
1344
+ hs.init();
1345
+ var key = this.key = hs.expanders.length;
1346
+ // override inline parameters
1347
+ for (var i = 0; i < hs.overrides.length; i++) {
1348
+ var name = hs.overrides[i];
1349
+ this[name] = params && typeof params[name] != 'undefined' ?
1350
+ params[name] : hs[name];
1351
+ }
1352
+ if (!this.src) this.src = a.href;
1353
+
1354
+ // get thumb
1355
+ var el = (params && params.thumbnailId) ? hs.$(params.thumbnailId) : a;
1356
+ el = this.thumb = el.getElementsByTagName('img')[0] || el;
1357
+ this.thumbsUserSetId = el.id || a.id;
1358
+ if (!hs.fireEvent(this, 'onInit')) return true;
1359
+
1360
+ // check if already open
1361
+ for (var i = 0; i < hs.expanders.length; i++) {
1362
+ if (hs.expanders[i] && hs.expanders[i].a == a
1363
+ && !(this.last && this.transitions[1] == 'crossfade')) {
1364
+ hs.expanders[i].focus();
1365
+ return false;
1366
+ }
1367
+ }
1368
+
1369
+ // cancel other
1370
+ if (!hs.allowSimultaneousLoading) for (var i = 0; i < hs.expanders.length; i++) {
1371
+ if (hs.expanders[i] && hs.expanders[i].thumb != el && !hs.expanders[i].onLoadStarted) {
1372
+ hs.expanders[i].cancelLoading();
1373
+ }
1374
+ }
1375
+ hs.expanders[key] = this;
1376
+ if (!hs.allowMultipleInstances && !hs.upcoming) {
1377
+ if (hs.expanders[key-1]) hs.expanders[key-1].close();
1378
+ if (typeof hs.focusKey != 'undefined' && hs.expanders[hs.focusKey])
1379
+ hs.expanders[hs.focusKey].close();
1380
+ }
1381
+
1382
+ // initiate metrics
1383
+ this.el = el;
1384
+ this.tpos = this.pageOrigin || hs.getPosition(el);
1385
+ hs.getPageSize();
1386
+ var x = this.x = new hs.Dimension(this, 'x');
1387
+ x.calcThumb();
1388
+ var y = this.y = new hs.Dimension(this, 'y');
1389
+ y.calcThumb();
1390
+ if (/area/i.test(el.tagName)) this.getImageMapAreaCorrection(el);
1391
+ this.wrapper = hs.createElement(
1392
+ 'div', {
1393
+ id: 'highslide-wrapper-'+ this.key,
1394
+ className: 'highslide-wrapper '+ this.wrapperClassName
1395
+ }, {
1396
+ visibility: 'hidden',
1397
+ position: 'absolute',
1398
+ zIndex: hs.zIndexCounter += 2
1399
+ }, null, true );
1400
+
1401
+ this.wrapper.onmouseover = this.wrapper.onmouseout = hs.wrapperMouseHandler;
1402
+ if (this.contentType == 'image' && this.outlineWhileAnimating == 2)
1403
+ this.outlineWhileAnimating = 0;
1404
+
1405
+ // get the outline
1406
+ if (!this.outlineType
1407
+ || (this.last && this.isImage && this.transitions[1] == 'crossfade')) {
1408
+ this[this.contentType +'Create']();
1409
+
1410
+ } else if (hs.pendingOutlines[this.outlineType]) {
1411
+ this.connectOutline();
1412
+ this[this.contentType +'Create']();
1413
+
1414
+ } else {
1415
+ this.showLoading();
1416
+ var exp = this;
1417
+ new hs.Outline(this.outlineType,
1418
+ function () {
1419
+ exp.connectOutline();
1420
+ exp[exp.contentType +'Create']();
1421
+ }
1422
+ );
1423
+ }
1424
+ return true;
1425
+ };
1426
+
1427
+ hs.Expander.prototype = {
1428
+ error : function(e) {
1429
+ if (hs.debug) alert ('Line '+ e.lineNumber +': '+ e.message);
1430
+ else window.location.href = this.src;
1431
+ },
1432
+
1433
+ connectOutline : function() {
1434
+ var outline = this.outline = hs.pendingOutlines[this.outlineType];
1435
+ outline.exp = this;
1436
+ outline.table.style.zIndex = this.wrapper.style.zIndex - 1;
1437
+ hs.pendingOutlines[this.outlineType] = null;
1438
+ },
1439
+
1440
+ showLoading : function() {
1441
+ if (this.onLoadStarted || this.loading) return;
1442
+
1443
+ this.loading = hs.loading;
1444
+ var exp = this;
1445
+ this.loading.onclick = function() {
1446
+ exp.cancelLoading();
1447
+ };
1448
+
1449
+
1450
+ if (!hs.fireEvent(this, 'onShowLoading')) return;
1451
+ var exp = this,
1452
+ l = this.x.get('loadingPos') +'px',
1453
+ t = this.y.get('loadingPos') +'px';
1454
+ if (!tgt && this.last && this.transitions[1] == 'crossfade')
1455
+ var tgt = this.last;
1456
+ if (tgt) {
1457
+ l = tgt.x.get('loadingPosXfade') +'px';
1458
+ t = tgt.y.get('loadingPosXfade') +'px';
1459
+ this.loading.style.zIndex = hs.zIndexCounter++;
1460
+ }
1461
+ setTimeout(function () {
1462
+ if (exp.loading) hs.setStyles(exp.loading, { left: l, top: t, zIndex: hs.zIndexCounter++ })}
1463
+ , 100);
1464
+ },
1465
+
1466
+ imageCreate : function() {
1467
+ var exp = this;
1468
+
1469
+ var img = document.createElement('img');
1470
+ this.content = img;
1471
+ img.onload = function () {
1472
+ if (hs.expanders[exp.key]) exp.contentLoaded();
1473
+ };
1474
+ if (hs.blockRightClick) img.oncontextmenu = function() { return false; };
1475
+ img.className = 'highslide-image';
1476
+ hs.setStyles(img, {
1477
+ visibility: 'hidden',
1478
+ display: 'block',
1479
+ position: 'absolute',
1480
+ maxWidth: '9999px',
1481
+ zIndex: 3
1482
+ });
1483
+ img.title = hs.lang.restoreTitle;
1484
+ if (hs.safari && hs.uaVersion < 525) hs.container.appendChild(img);
1485
+ if (hs.ie && hs.flushImgSize) img.src = null;
1486
+ img.src = this.src;
1487
+
1488
+ this.showLoading();
1489
+ },
1490
+
1491
+ htmlCreate : function () {
1492
+ if (!hs.fireEvent(this, 'onBeforeGetContent')) return;
1493
+
1494
+ this.content = hs.getCacheBinding(this.a);
1495
+ if (!this.content)
1496
+ this.content = hs.getNode(this.contentId);
1497
+ if (!this.content)
1498
+ this.content = hs.getSelfRendered();
1499
+ this.getInline(['maincontent']);
1500
+ if (this.maincontent) {
1501
+ var body = hs.getElementByClass(this.content, 'div', 'highslide-body');
1502
+ if (body) body.appendChild(this.maincontent);
1503
+ this.maincontent.style.display = 'block';
1504
+ }
1505
+ hs.fireEvent(this, 'onAfterGetContent');
1506
+
1507
+ var innerContent = this.innerContent = this.content;
1508
+
1509
+ if (/(swf|iframe)/.test(this.objectType)) this.setObjContainerSize(innerContent);
1510
+
1511
+ // the content tree
1512
+ hs.container.appendChild(this.wrapper);
1513
+ hs.setStyles( this.wrapper, {
1514
+ position: 'static',
1515
+ padding: '0 '+ hs.marginRight +'px 0 '+ hs.marginLeft +'px'
1516
+ });
1517
+ this.content = hs.createElement(
1518
+ 'div', {
1519
+ className: 'highslide-html'
1520
+ }, {
1521
+ position: 'relative',
1522
+ zIndex: 3,
1523
+ height: 0,
1524
+ overflow: 'hidden'
1525
+ },
1526
+ this.wrapper
1527
+ );
1528
+ this.mediumContent = hs.createElement('div', null, null, this.content, 1);
1529
+ this.mediumContent.appendChild(innerContent);
1530
+
1531
+ hs.setStyles (innerContent, {
1532
+ position: 'relative',
1533
+ display: 'block',
1534
+ direction: hs.lang.cssDirection || ''
1535
+ });
1536
+ if (this.width) innerContent.style.width = this.width +'px';
1537
+ if (this.height) hs.setStyles(innerContent, {
1538
+ height: this.height +'px',
1539
+ overflow: 'hidden'
1540
+ });
1541
+ if (innerContent.offsetWidth < this.minWidth)
1542
+ innerContent.style.width = this.minWidth +'px';
1543
+
1544
+
1545
+
1546
+ if (this.objectType == 'ajax' && !hs.getCacheBinding(this.a)) {
1547
+ this.showLoading();
1548
+ var exp = this;
1549
+ var ajax = new hs.Ajax(this.a, innerContent);
1550
+ ajax.src = this.src;
1551
+ ajax.onLoad = function () { if (hs.expanders[exp.key]) exp.contentLoaded(); };
1552
+ ajax.onError = function () { location.href = exp.src; };
1553
+ ajax.run();
1554
+ }
1555
+ else
1556
+
1557
+ if (this.objectType == 'iframe' && this.objectLoadTime == 'before') {
1558
+ this.writeExtendedContent();
1559
+ }
1560
+ else
1561
+ this.contentLoaded();
1562
+ },
1563
+
1564
+ contentLoaded : function() {
1565
+ try {
1566
+ if (!this.content) return;
1567
+ this.content.onload = null;
1568
+ if (this.onLoadStarted) return;
1569
+ else this.onLoadStarted = true;
1570
+
1571
+ var x = this.x, y = this.y;
1572
+
1573
+ if (this.loading) {
1574
+ hs.setStyles(this.loading, { top: '-9999px' });
1575
+ this.loading = null;
1576
+ hs.fireEvent(this, 'onHideLoading');
1577
+ }
1578
+ if (this.isImage) {
1579
+ x.full = this.content.width;
1580
+ y.full = this.content.height;
1581
+
1582
+ hs.setStyles(this.content, {
1583
+ width: x.t +'px',
1584
+ height: y.t +'px'
1585
+ });
1586
+ this.wrapper.appendChild(this.content);
1587
+ hs.container.appendChild(this.wrapper);
1588
+ } else if (this.htmlGetSize) this.htmlGetSize();
1589
+
1590
+ x.calcBorders();
1591
+ y.calcBorders();
1592
+
1593
+ hs.setStyles (this.wrapper, {
1594
+ left: (x.tpos + x.tb - x.cb) +'px',
1595
+ top: (y.tpos + x.tb - y.cb) +'px'
1596
+ });
1597
+
1598
+
1599
+ this.initSlideshow();
1600
+ this.getOverlays();
1601
+
1602
+ var ratio = x.full / y.full;
1603
+ x.calcExpanded();
1604
+ this.justify(x);
1605
+
1606
+ y.calcExpanded();
1607
+ this.justify(y);
1608
+ if (this.isHtml) this.htmlSizeOperations();
1609
+ if (this.overlayBox) this.sizeOverlayBox(0, 1);
1610
+
1611
+
1612
+ if (this.allowSizeReduction) {
1613
+ if (this.isImage)
1614
+ this.correctRatio(ratio);
1615
+ else this.fitOverlayBox();
1616
+ var ss = this.slideshow;
1617
+ if (ss && this.last && ss.controls && ss.fixedControls) {
1618
+ var pos = ss.overlayOptions.position || '', p;
1619
+ for (var dim in hs.oPos) for (var i = 0; i < 5; i++) {
1620
+ p = this[dim];
1621
+ if (pos.match(hs.oPos[dim][i])) {
1622
+ p.pos = this.last[dim].pos
1623
+ + (this.last[dim].p1 - p.p1)
1624
+ + (this.last[dim].size - p.size) * [0, 0, .5, 1, 1][i];
1625
+ if (ss.fixedControls == 'fit') {
1626
+ if (p.pos + p.size + p.p1 + p.p2 > p.scroll + p.clientSize - p.marginMax)
1627
+ p.pos = p.scroll + p.clientSize - p.size - p.marginMin - p.marginMax - p.p1 - p.p2;
1628
+ if (p.pos < p.scroll + p.marginMin) p.pos = p.scroll + p.marginMin;
1629
+ }
1630
+ }
1631
+ }
1632
+ }
1633
+ if (this.isImage && this.x.full > (this.x.imgSize || this.x.size)) {
1634
+ this.createFullExpand();
1635
+ if (this.overlays.length == 1) this.sizeOverlayBox();
1636
+ }
1637
+ }
1638
+ this.show();
1639
+
1640
+ } catch (e) {
1641
+ this.error(e);
1642
+ }
1643
+ },
1644
+
1645
+
1646
+ setObjContainerSize : function(parent, auto) {
1647
+ var c = hs.getElementByClass(parent, 'DIV', 'highslide-body');
1648
+ if (/(iframe|swf)/.test(this.objectType)) {
1649
+ if (this.objectWidth) c.style.width = this.objectWidth +'px';
1650
+ if (this.objectHeight) c.style.height = this.objectHeight +'px';
1651
+ }
1652
+ },
1653
+
1654
+ writeExtendedContent : function () {
1655
+ if (this.hasExtendedContent) return;
1656
+ var exp = this;
1657
+ this.body = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
1658
+ if (this.objectType == 'iframe') {
1659
+ this.showLoading();
1660
+ var ruler = hs.clearing.cloneNode(1);
1661
+ this.body.appendChild(ruler);
1662
+ this.newWidth = this.innerContent.offsetWidth;
1663
+ if (!this.objectWidth) this.objectWidth = ruler.offsetWidth;
1664
+ var hDiff = this.innerContent.offsetHeight - this.body.offsetHeight,
1665
+ h = this.objectHeight || hs.page.height - hDiff - hs.marginTop - hs.marginBottom,
1666
+ onload = this.objectLoadTime == 'before' ?
1667
+ ' onload="if (hs.expanders['+ this.key +']) hs.expanders['+ this.key +'].contentLoaded()" ' : '';
1668
+ this.body.innerHTML += '<iframe name="hs'+ (new Date()).getTime() +'" frameborder="0" key="'+ this.key +'" '
1669
+ +' style="width:'+ this.objectWidth +'px; height:'+ h +'px" '
1670
+ + onload +' src="'+ this.src +'" ></iframe>';
1671
+ this.ruler = this.body.getElementsByTagName('div')[0];
1672
+ this.iframe = this.body.getElementsByTagName('iframe')[0];
1673
+
1674
+ if (this.objectLoadTime == 'after') this.correctIframeSize();
1675
+
1676
+ }
1677
+ if (this.objectType == 'swf') {
1678
+ this.body.id = this.body.id || 'hs-flash-id-' + this.key;
1679
+ var a = this.swfOptions;
1680
+ if (!a.params) a.params = {};
1681
+ if (typeof a.params.wmode == 'undefined') a.params.wmode = 'transparent';
1682
+ if (swfobject) swfobject.embedSWF(this.src, this.body.id, this.objectWidth, this.objectHeight,
1683
+ a.version || '7', a.expressInstallSwfurl, a.flashvars, a.params, a.attributes);
1684
+ }
1685
+ this.hasExtendedContent = true;
1686
+ },
1687
+ htmlGetSize : function() {
1688
+ if (this.iframe && !this.objectHeight) { // loadtime before
1689
+ this.iframe.style.height = this.body.style.height = this.getIframePageHeight() +'px';
1690
+ }
1691
+ this.innerContent.appendChild(hs.clearing);
1692
+ if (!this.x.full) this.x.full = this.innerContent.offsetWidth;
1693
+ this.y.full = this.innerContent.offsetHeight;
1694
+ this.innerContent.removeChild(hs.clearing);
1695
+ if (hs.ie && this.newHeight > parseInt(this.innerContent.currentStyle.height)) { // ie css bug
1696
+ this.newHeight = parseInt(this.innerContent.currentStyle.height);
1697
+ }
1698
+ hs.setStyles( this.wrapper, { position: 'absolute', padding: '0'});
1699
+ hs.setStyles( this.content, { width: this.x.t +'px', height: this.y.t +'px'});
1700
+
1701
+ },
1702
+
1703
+ getIframePageHeight : function() {
1704
+ var h;
1705
+ try {
1706
+ var doc = this.iDoc = this.iframe.contentDocument || this.iframe.contentWindow.document;
1707
+ var clearing = doc.createElement('div');
1708
+ clearing.style.clear = 'both';
1709
+ doc.body.appendChild(clearing);
1710
+ h = clearing.offsetTop;
1711
+ if (hs.ie) h += parseInt(doc.body.currentStyle.marginTop)
1712
+ + parseInt(doc.body.currentStyle.marginBottom) - 1;
1713
+ } catch (e) { // other domain
1714
+ h = 300;
1715
+ }
1716
+ return h;
1717
+ },
1718
+ correctIframeSize : function () {
1719
+ var wDiff = this.innerContent.offsetWidth - this.ruler.offsetWidth;
1720
+ hs.discardElement(this.ruler);
1721
+ if (wDiff < 0) wDiff = 0;
1722
+
1723
+ var hDiff = this.innerContent.offsetHeight - this.iframe.offsetHeight;
1724
+ if (this.iDoc && !this.objectHeight && !this.height && this.y.size == this.y.full) try {
1725
+ this.iDoc.body.style.overflow = 'hidden';
1726
+ } catch (e) {}
1727
+ hs.setStyles(this.iframe, {
1728
+ width: Math.abs(this.x.size - wDiff) +'px',
1729
+ height: Math.abs(this.y.size - hDiff) +'px'
1730
+ });
1731
+ hs.setStyles(this.body, {
1732
+ width: this.iframe.style.width,
1733
+ height: this.iframe.style.height
1734
+ });
1735
+
1736
+ this.scrollingContent = this.iframe;
1737
+ this.scrollerDiv = this.scrollingContent;
1738
+
1739
+ },
1740
+ htmlSizeOperations : function () {
1741
+
1742
+ this.setObjContainerSize(this.innerContent);
1743
+
1744
+
1745
+ if (this.objectType == 'swf' && this.objectLoadTime == 'before') this.writeExtendedContent();
1746
+
1747
+ // handle minimum size
1748
+ if (this.x.size < this.x.full && !this.allowWidthReduction) this.x.size = this.x.full;
1749
+ if (this.y.size < this.y.full && !this.allowHeightReduction) this.y.size = this.y.full;
1750
+ this.scrollerDiv = this.innerContent;
1751
+ hs.setStyles(this.mediumContent, {
1752
+ position: 'relative',
1753
+ width: this.x.size +'px'
1754
+ });
1755
+ hs.setStyles(this.innerContent, {
1756
+ border: 'none',
1757
+ width: 'auto',
1758
+ height: 'auto'
1759
+ });
1760
+ var node = hs.getElementByClass(this.innerContent, 'DIV', 'highslide-body');
1761
+ if (node && !/(iframe|swf)/.test(this.objectType)) {
1762
+ var cNode = node; // wrap to get true size
1763
+ node = hs.createElement(cNode.nodeName, null, {overflow: 'hidden'}, null, true);
1764
+ cNode.parentNode.insertBefore(node, cNode);
1765
+ node.appendChild(hs.clearing); // IE6
1766
+ node.appendChild(cNode);
1767
+
1768
+ var wDiff = this.innerContent.offsetWidth - node.offsetWidth;
1769
+ var hDiff = this.innerContent.offsetHeight - node.offsetHeight;
1770
+ node.removeChild(hs.clearing);
1771
+
1772
+ var kdeBugCorr = hs.safari || navigator.vendor == 'KDE' ? 1 : 0; // KDE repainting bug
1773
+ hs.setStyles(node, {
1774
+ width: (this.x.size - wDiff - kdeBugCorr) +'px',
1775
+ height: (this.y.size - hDiff) +'px',
1776
+ overflow: 'auto',
1777
+ position: 'relative'
1778
+ }
1779
+ );
1780
+ if (kdeBugCorr && cNode.offsetHeight > node.offsetHeight) {
1781
+ node.style.width = (parseInt(node.style.width) + kdeBugCorr) + 'px';
1782
+ }
1783
+ this.scrollingContent = node;
1784
+ this.scrollerDiv = this.scrollingContent;
1785
+ }
1786
+ if (this.iframe && this.objectLoadTime == 'before') this.correctIframeSize();
1787
+ if (!this.scrollingContent && this.y.size < this.mediumContent.offsetHeight) this.scrollerDiv = this.content;
1788
+
1789
+ if (this.scrollerDiv == this.content && !this.allowWidthReduction && !/(iframe|swf)/.test(this.objectType)) {
1790
+ this.x.size += 17; // room for scrollbars
1791
+ }
1792
+ if (this.scrollerDiv && this.scrollerDiv.offsetHeight > this.scrollerDiv.parentNode.offsetHeight) {
1793
+ setTimeout("try { hs.expanders["+ this.key +"].scrollerDiv.style.overflow = 'auto'; } catch(e) {}",
1794
+ hs.expandDuration);
1795
+ }
1796
+ },
1797
+
1798
+ getImageMapAreaCorrection : function(area) {
1799
+ var c = area.coords.split(',');
1800
+ for (var i = 0; i < c.length; i++) c[i] = parseInt(c[i]);
1801
+
1802
+ if (area.shape.toLowerCase() == 'circle') {
1803
+ this.x.tpos += c[0] - c[2];
1804
+ this.y.tpos += c[1] - c[2];
1805
+ this.x.t = this.y.t = 2 * c[2];
1806
+ } else {
1807
+ var maxX, maxY, minX = maxX = c[0], minY = maxY = c[1];
1808
+ for (var i = 0; i < c.length; i++) {
1809
+ if (i % 2 == 0) {
1810
+ minX = Math.min(minX, c[i]);
1811
+ maxX = Math.max(maxX, c[i]);
1812
+ } else {
1813
+ minY = Math.min(minY, c[i]);
1814
+ maxY = Math.max(maxY, c[i]);
1815
+ }
1816
+ }
1817
+ this.x.tpos += minX;
1818
+ this.x.t = maxX - minX;
1819
+ this.y.tpos += minY;
1820
+ this.y.t = maxY - minY;
1821
+ }
1822
+ },
1823
+ justify : function (p, moveOnly) {
1824
+ var tgtArr, tgt = p.target, dim = p == this.x ? 'x' : 'y';
1825
+
1826
+ if (tgt && tgt.match(/ /)) {
1827
+ tgtArr = tgt.split(' ');
1828
+ tgt = tgtArr[0];
1829
+ }
1830
+ if (tgt && hs.$(tgt)) {
1831
+ p.pos = hs.getPosition(hs.$(tgt))[dim];
1832
+ if (tgtArr && tgtArr[1] && tgtArr[1].match(/^[-]?[0-9]+px$/))
1833
+ p.pos += parseInt(tgtArr[1]);
1834
+ if (p.size < p.minSize) p.size = p.minSize;
1835
+
1836
+ } else if (p.justify == 'auto' || p.justify == 'center') {
1837
+
1838
+ var hasMovedMin = false;
1839
+
1840
+ var allowReduce = p.exp.allowSizeReduction;
1841
+ if (p.justify == 'center')
1842
+ p.pos = Math.round(p.scroll + (p.clientSize + p.marginMin - p.marginMax - p.get('wsize')) / 2);
1843
+ else
1844
+ p.pos = Math.round(p.pos - ((p.get('wsize') - p.t) / 2));
1845
+ if (p.pos < p.scroll + p.marginMin) {
1846
+ p.pos = p.scroll + p.marginMin;
1847
+ hasMovedMin = true;
1848
+ }
1849
+ if (!moveOnly && p.size < p.minSize) {
1850
+ p.size = p.minSize;
1851
+ allowReduce = false;
1852
+ }
1853
+ if (p.pos + p.get('wsize') > p.scroll + p.clientSize - p.marginMax) {
1854
+ if (!moveOnly && hasMovedMin && allowReduce) {
1855
+ p.size = Math.min(p.size, p.get(dim == 'y' ? 'fitsize' : 'maxsize'));
1856
+ } else if (p.get('wsize') < p.get('fitsize')) {
1857
+ p.pos = p.scroll + p.clientSize - p.marginMax - p.get('wsize');
1858
+ } else { // image larger than viewport
1859
+ p.pos = p.scroll + p.marginMin;
1860
+ if (!moveOnly && allowReduce) p.size = p.get(dim == 'y' ? 'fitsize' : 'maxsize');
1861
+ }
1862
+ }
1863
+
1864
+ if (!moveOnly && p.size < p.minSize) {
1865
+ p.size = p.minSize;
1866
+ allowReduce = false;
1867
+ }
1868
+
1869
+
1870
+ } else if (p.justify == 'max') {
1871
+ p.pos = Math.floor(p.pos - p.size + p.t);
1872
+ }
1873
+
1874
+
1875
+ if (p.pos < p.marginMin) {
1876
+ var tmpMin = p.pos;
1877
+ p.pos = p.marginMin;
1878
+
1879
+ if (allowReduce && !moveOnly) p.size = p.size - (p.pos - tmpMin);
1880
+
1881
+ }
1882
+ },
1883
+
1884
+ correctRatio : function(ratio) {
1885
+ var x = this.x,
1886
+ y = this.y,
1887
+ changed = false,
1888
+ xSize = Math.min(x.full, x.size),
1889
+ ySize = Math.min(y.full, y.size),
1890
+ useBox = (this.useBox || hs.padToMinWidth);
1891
+
1892
+ if (xSize / ySize > ratio) { // width greater
1893
+ xSize = ySize * ratio;
1894
+ if (xSize < x.minSize) { // below minWidth
1895
+ xSize = x.minSize;
1896
+ ySize = xSize / ratio;
1897
+ }
1898
+ changed = true;
1899
+
1900
+ } else if (xSize / ySize < ratio) { // height greater
1901
+ ySize = xSize / ratio;
1902
+ changed = true;
1903
+ }
1904
+
1905
+ if (hs.padToMinWidth && x.full < x.minSize) {
1906
+ x.imgSize = x.full;
1907
+ y.size = y.imgSize = y.full;
1908
+ } else if (this.useBox) {
1909
+ x.imgSize = xSize;
1910
+ y.imgSize = ySize;
1911
+ } else {
1912
+ x.size = xSize;
1913
+ y.size = ySize;
1914
+ }
1915
+ changed = this.fitOverlayBox(this.useBox ? null : ratio, changed);
1916
+ if (useBox && y.size < y.imgSize) {
1917
+ y.imgSize = y.size;
1918
+ x.imgSize = y.size * ratio;
1919
+ }
1920
+ if (changed || useBox) {
1921
+ x.pos = x.tpos - x.cb + x.tb;
1922
+ x.minSize = x.size;
1923
+ this.justify(x, true);
1924
+
1925
+ y.pos = y.tpos - y.cb + y.tb;
1926
+ y.minSize = y.size;
1927
+ this.justify(y, true);
1928
+ if (this.overlayBox) this.sizeOverlayBox();
1929
+ }
1930
+
1931
+
1932
+ },
1933
+ fitOverlayBox : function(ratio, changed) {
1934
+ var x = this.x, y = this.y;
1935
+ if (this.overlayBox && (this.isImage || this.allowHeightReduction)) {
1936
+ while (y.size > this.minHeight && x.size > this.minWidth
1937
+ && y.get('wsize') > y.get('fitsize')) {
1938
+ y.size -= 10;
1939
+ if (ratio) x.size = y.size * ratio;
1940
+ this.sizeOverlayBox(0, 1);
1941
+ changed = true;
1942
+ }
1943
+ }
1944
+ return changed;
1945
+ },
1946
+
1947
+ reflow : function () {
1948
+ if (this.scrollerDiv) {
1949
+ var h = /iframe/i.test(this.scrollerDiv.tagName) ? (this.getIframePageHeight() + 1) +'px' : 'auto';
1950
+ if (this.body) this.body.style.height = h;
1951
+ this.scrollerDiv.style.height = h;
1952
+ this.y.setSize(this.innerContent.offsetHeight);
1953
+ }
1954
+ },
1955
+
1956
+ show : function () {
1957
+ var x = this.x, y = this.y;
1958
+ this.doShowHide('hidden');
1959
+ hs.fireEvent(this, 'onBeforeExpand');
1960
+ if (this.slideshow && this.slideshow.thumbstrip) this.slideshow.thumbstrip.selectThumb();
1961
+
1962
+ // Apply size change
1963
+ this.changeSize(
1964
+ 1, {
1965
+ wrapper: {
1966
+ width : x.get('wsize'),
1967
+ height : y.get('wsize'),
1968
+ left: x.pos,
1969
+ top: y.pos
1970
+ },
1971
+ content: {
1972
+ left: x.p1 + x.get('imgPad'),
1973
+ top: y.p1 + y.get('imgPad'),
1974
+ width:x.imgSize ||x.size,
1975
+ height:y.imgSize ||y.size
1976
+ }
1977
+ },
1978
+ hs.expandDuration
1979
+ );
1980
+ },
1981
+
1982
+ changeSize : function(up, to, dur) {
1983
+ // transition
1984
+ var trans = this.transitions,
1985
+ other = up ? (this.last ? this.last.a : null) : hs.upcoming,
1986
+ t = (trans[1] && other
1987
+ && hs.getParam(other, 'transitions')[1] == trans[1]) ?
1988
+ trans[1] : trans[0];
1989
+
1990
+ if (this[t] && t != 'expand') {
1991
+ this[t](up, to);
1992
+ return;
1993
+ }
1994
+
1995
+ if (this.outline && !this.outlineWhileAnimating) {
1996
+ if (up) this.outline.setPosition();
1997
+ else this.outline.destroy(
1998
+ (this.isHtml && this.preserveContent));
1999
+ }
2000
+
2001
+
2002
+ if (!up) this.destroyOverlays();
2003
+
2004
+ var exp = this,
2005
+ x = exp.x,
2006
+ y = exp.y,
2007
+ easing = this.easing;
2008
+ if (!up) easing = this.easingClose || easing;
2009
+ var after = up ?
2010
+ function() {
2011
+
2012
+ if (exp.outline) exp.outline.table.style.visibility = "visible";
2013
+ setTimeout(function() {
2014
+ exp.afterExpand();
2015
+ }, 50);
2016
+ } :
2017
+ function() {
2018
+ exp.afterClose();
2019
+ };
2020
+ if (up) hs.setStyles( this.wrapper, {
2021
+ width: x.t +'px',
2022
+ height: y.t +'px'
2023
+ });
2024
+ if (up && this.isHtml) {
2025
+ hs.setStyles(this.wrapper, {
2026
+ left: (x.tpos - x.cb + x.tb) +'px',
2027
+ top: (y.tpos - y.cb + y.tb) +'px'
2028
+ });
2029
+ }
2030
+ if (this.fadeInOut) {
2031
+ hs.setStyles(this.wrapper, { opacity: up ? 0 : 1 });
2032
+ hs.extend(to.wrapper, { opacity: up });
2033
+ }
2034
+ hs.animate( this.wrapper, to.wrapper, {
2035
+ duration: dur,
2036
+ easing: easing,
2037
+ step: function(val, args) {
2038
+ if (exp.outline && exp.outlineWhileAnimating && args.prop == 'top') {
2039
+ var fac = up ? args.pos : 1 - args.pos;
2040
+ var pos = {
2041
+ w: x.t + (x.get('wsize') - x.t) * fac,
2042
+ h: y.t + (y.get('wsize') - y.t) * fac,
2043
+ x: x.tpos + (x.pos - x.tpos) * fac,
2044
+ y: y.tpos + (y.pos - y.tpos) * fac
2045
+ };
2046
+ exp.outline.setPosition(pos, 0, 1);
2047
+ }
2048
+ if (exp.isHtml) {
2049
+ if (args.prop == 'left')
2050
+ exp.mediumContent.style.left = (x.pos - val) +'px';
2051
+ if (args.prop == 'top')
2052
+ exp.mediumContent.style.top = (y.pos - val) +'px';
2053
+ }
2054
+ }
2055
+ });
2056
+ hs.animate( this.content, to.content, dur, easing, after);
2057
+ if (up) {
2058
+ this.wrapper.style.visibility = 'visible';
2059
+ this.content.style.visibility = 'visible';
2060
+ if (this.isHtml) this.innerContent.style.visibility = 'visible';
2061
+ this.a.className += ' highslide-active-anchor';
2062
+ }
2063
+ },
2064
+
2065
+
2066
+
2067
+ fade : function(up, to) {
2068
+ this.outlineWhileAnimating = false;
2069
+ var exp = this, t = up ? hs.expandDuration : 0;
2070
+
2071
+ if (up) {
2072
+ hs.animate(this.wrapper, to.wrapper, 0);
2073
+ hs.setStyles(this.wrapper, { opacity: 0, visibility: 'visible' });
2074
+ hs.animate(this.content, to.content, 0);
2075
+ this.content.style.visibility = 'visible';
2076
+
2077
+ hs.animate(this.wrapper, { opacity: 1 }, t, null,
2078
+ function() { exp.afterExpand(); });
2079
+ }
2080
+
2081
+ if (this.outline) {
2082
+ this.outline.table.style.zIndex = this.wrapper.style.zIndex;
2083
+ var dir = up || -1,
2084
+ offset = this.outline.offset,
2085
+ startOff = up ? 3 : offset,
2086
+ endOff = up? offset : 3;
2087
+ for (var i = startOff; dir * i <= dir * endOff; i += dir, t += 25) {
2088
+ (function() {
2089
+ var o = up ? endOff - i : startOff - i;
2090
+ setTimeout(function() {
2091
+ exp.outline.setPosition(0, o, 1);
2092
+ }, t);
2093
+ })();
2094
+ }
2095
+ }
2096
+
2097
+
2098
+ if (up) {}//setTimeout(function() { exp.afterExpand(); }, t+50);
2099
+ else {
2100
+ setTimeout( function() {
2101
+ if (exp.outline) exp.outline.destroy(exp.preserveContent);
2102
+
2103
+ exp.destroyOverlays();
2104
+
2105
+ hs.animate( exp.wrapper, { opacity: 0 }, hs.restoreDuration, null, function(){
2106
+ exp.afterClose();
2107
+ });
2108
+ }, t);
2109
+ }
2110
+ },
2111
+ crossfade : function (up, to, from) {
2112
+ if (!up) return;
2113
+ var exp = this,
2114
+ last = this.last,
2115
+ x = this.x,
2116
+ y = this.y,
2117
+ lastX = last.x,
2118
+ lastY = last.y,
2119
+ wrapper = this.wrapper,
2120
+ content = this.content,
2121
+ overlayBox = this.overlayBox;
2122
+ hs.removeEventListener(document, 'mousemove', hs.dragHandler);
2123
+
2124
+ hs.setStyles(content, {
2125
+ width: (x.imgSize || x.size) +'px',
2126
+ height: (y.imgSize || y.size) +'px'
2127
+ });
2128
+ if (overlayBox) overlayBox.style.overflow = 'visible';
2129
+ this.outline = last.outline;
2130
+ if (this.outline) this.outline.exp = exp;
2131
+ last.outline = null;
2132
+ var fadeBox = hs.createElement('div', {
2133
+ className: 'highslide-'+ this.contentType
2134
+ }, {
2135
+ position: 'absolute',
2136
+ zIndex: 4,
2137
+ overflow: 'hidden',
2138
+ display: 'none'
2139
+ }
2140
+ );
2141
+ var names = { oldImg: last, newImg: this };
2142
+ for (var n in names) {
2143
+ this[n] = names[n].content.cloneNode(1);
2144
+ hs.setStyles(this[n], {
2145
+ position: 'absolute',
2146
+ border: 0,
2147
+ visibility: 'visible'
2148
+ });
2149
+ fadeBox.appendChild(this[n]);
2150
+ }
2151
+ wrapper.appendChild(fadeBox);
2152
+ if (this.isHtml) hs.setStyles(this.mediumContent, {
2153
+ left: 0,
2154
+ top: 0
2155
+ });
2156
+ if (overlayBox) {
2157
+ overlayBox.className = '';
2158
+ wrapper.appendChild(overlayBox);
2159
+ }
2160
+ fadeBox.style.display = '';
2161
+ last.content.style.display = 'none';
2162
+
2163
+
2164
+ if (hs.safari && hs.uaVersion < 525) {
2165
+ this.wrapper.style.visibility = 'visible';
2166
+ }
2167
+ hs.animate(wrapper, {
2168
+ width: x.size
2169
+ }, {
2170
+ duration: hs.transitionDuration,
2171
+ step: function(val, args) {
2172
+ var pos = args.pos,
2173
+ invPos = 1 - pos;
2174
+ var prop,
2175
+ size = {},
2176
+ props = ['pos', 'size', 'p1', 'p2'];
2177
+ for (var n in props) {
2178
+ prop = props[n];
2179
+ size['x'+ prop] = Math.round(invPos * lastX[prop] + pos * x[prop]);
2180
+ size['y'+ prop] = Math.round(invPos * lastY[prop] + pos * y[prop]);
2181
+ size.ximgSize = Math.round(
2182
+ invPos * (lastX.imgSize || lastX.size) + pos * (x.imgSize || x.size));
2183
+ size.ximgPad = Math.round(invPos * lastX.get('imgPad') + pos * x.get('imgPad'));
2184
+ size.yimgSize = Math.round(
2185
+ invPos * (lastY.imgSize || lastY.size) + pos * (y.imgSize || y.size));
2186
+ size.yimgPad = Math.round(invPos * lastY.get('imgPad') + pos * y.get('imgPad'));
2187
+ }
2188
+ if (exp.outline) exp.outline.setPosition({
2189
+ x: size.xpos,
2190
+ y: size.ypos,
2191
+ w: size.xsize + size.xp1 + size.xp2 + 2 * x.cb,
2192
+ h: size.ysize + size.yp1 + size.yp2 + 2 * y.cb
2193
+ });
2194
+ last.wrapper.style.clip = 'rect('
2195
+ + (size.ypos - lastY.pos)+'px, '
2196
+ + (size.xsize + size.xp1 + size.xp2 + size.xpos + 2 * lastX.cb - lastX.pos) +'px, '
2197
+ + (size.ysize + size.yp1 + size.yp2 + size.ypos + 2 * lastY.cb - lastY.pos) +'px, '
2198
+ + (size.xpos - lastX.pos)+'px)';
2199
+
2200
+ hs.setStyles(content, {
2201
+ top: (size.yp1 + y.get('imgPad')) +'px',
2202
+ left: (size.xp1 + x.get('imgPad')) +'px',
2203
+ marginTop: (y.pos - size.ypos) +'px',
2204
+ marginLeft: (x.pos - size.xpos) +'px'
2205
+ });
2206
+ hs.setStyles(wrapper, {
2207
+ top: size.ypos +'px',
2208
+ left: size.xpos +'px',
2209
+ width: (size.xp1 + size.xp2 + size.xsize + 2 * x.cb)+ 'px',
2210
+ height: (size.yp1 + size.yp2 + size.ysize + 2 * y.cb) + 'px'
2211
+ });
2212
+ hs.setStyles(fadeBox, {
2213
+ width: (size.ximgSize || size.xsize) + 'px',
2214
+ height: (size.yimgSize || size.ysize) +'px',
2215
+ left: (size.xp1 + size.ximgPad) +'px',
2216
+ top: (size.yp1 + size.yimgPad) +'px',
2217
+ visibility: 'visible'
2218
+ });
2219
+
2220
+ hs.setStyles(exp.oldImg, {
2221
+ top: (lastY.pos - size.ypos + lastY.p1 - size.yp1 + lastY.get('imgPad') - size.yimgPad)+'px',
2222
+ left: (lastX.pos - size.xpos + lastX.p1 - size.xp1 + lastX.get('imgPad') - size.ximgPad)+'px'
2223
+ });
2224
+
2225
+ hs.setStyles(exp.newImg, {
2226
+ opacity: pos,
2227
+ top: (y.pos - size.ypos + y.p1 - size.yp1 + y.get('imgPad') - size.yimgPad) +'px',
2228
+ left: (x.pos - size.xpos + x.p1 - size.xp1 + x.get('imgPad') - size.ximgPad) +'px'
2229
+ });
2230
+ if (overlayBox) hs.setStyles(overlayBox, {
2231
+ width: size.xsize + 'px',
2232
+ height: size.ysize +'px',
2233
+ left: (size.xp1 + x.cb) +'px',
2234
+ top: (size.yp1 + y.cb) +'px'
2235
+ });
2236
+ },
2237
+ complete: function () {
2238
+ wrapper.style.visibility = content.style.visibility = 'visible';
2239
+ content.style.display = 'block';
2240
+ hs.discardElement(fadeBox);
2241
+ exp.afterExpand();
2242
+ last.afterClose();
2243
+ exp.last = null;
2244
+ }
2245
+
2246
+ });
2247
+ },
2248
+ reuseOverlay : function(o, el) {
2249
+ if (!this.last) return false;
2250
+ for (var i = 0; i < this.last.overlays.length; i++) {
2251
+ var oDiv = hs.$('hsId'+ this.last.overlays[i]);
2252
+ if (oDiv && oDiv.hsId == o.hsId) {
2253
+ this.genOverlayBox();
2254
+ oDiv.reuse = this.key;
2255
+ hs.push(this.overlays, this.last.overlays[i]);
2256
+ return true;
2257
+ }
2258
+ }
2259
+ return false;
2260
+ },
2261
+
2262
+
2263
+ afterExpand : function() {
2264
+ this.isExpanded = true;
2265
+ this.focus();
2266
+
2267
+ if (this.isHtml && this.objectLoadTime == 'after') this.writeExtendedContent();
2268
+ if (this.iframe) {
2269
+ try {
2270
+ var exp = this,
2271
+ doc = this.iframe.contentDocument || this.iframe.contentWindow.document;
2272
+ hs.addEventListener(doc, 'mousedown', function () {
2273
+ if (hs.focusKey != exp.key) exp.focus();
2274
+ });
2275
+ } catch(e) {}
2276
+ if (hs.ie && typeof this.isClosing != 'boolean') // first open
2277
+ this.iframe.style.width = (this.objectWidth - 1) +'px'; // hasLayout
2278
+ }
2279
+ if (this.dimmingOpacity) hs.dim(this);
2280
+ if (hs.upcoming && hs.upcoming == this.a) hs.upcoming = null;
2281
+ this.prepareNextOutline();
2282
+ var p = hs.page, mX = hs.mouse.x + p.scrollLeft, mY = hs.mouse.y + p.scrollTop;
2283
+ this.mouseIsOver = this.x.pos < mX && mX < this.x.pos + this.x.get('wsize')
2284
+ && this.y.pos < mY && mY < this.y.pos + this.y.get('wsize');
2285
+ if (this.overlayBox) this.showOverlays();
2286
+ hs.fireEvent(this, 'onAfterExpand');
2287
+
2288
+ },
2289
+
2290
+
2291
+ prepareNextOutline : function() {
2292
+ var key = this.key;
2293
+ var outlineType = this.outlineType;
2294
+ new hs.Outline(outlineType,
2295
+ function () { try { hs.expanders[key].preloadNext(); } catch (e) {} });
2296
+ },
2297
+
2298
+
2299
+ preloadNext : function() {
2300
+ var next = this.getAdjacentAnchor(1);
2301
+ if (next && next.onclick.toString().match(/hs\.expand/))
2302
+ var img = hs.createElement('img', { src: hs.getSrc(next) });
2303
+ },
2304
+
2305
+
2306
+ getAdjacentAnchor : function(op) {
2307
+ var current = this.getAnchorIndex(), as = hs.anchors.groups[this.slideshowGroup || 'none'];
2308
+ if (as && !as[current + op] && this.slideshow && this.slideshow.repeat) {
2309
+ if (op == 1) return as[0];
2310
+ else if (op == -1) return as[as.length-1];
2311
+ }
2312
+ return (as && as[current + op]) || null;
2313
+ },
2314
+
2315
+ getAnchorIndex : function() {
2316
+ var arr = hs.getAnchors().groups[this.slideshowGroup || 'none'];
2317
+ if (arr) for (var i = 0; i < arr.length; i++) {
2318
+ if (arr[i] == this.a) return i;
2319
+ }
2320
+ return null;
2321
+ },
2322
+
2323
+
2324
+ getNumber : function() {
2325
+ if (this[this.numberPosition]) {
2326
+ var arr = hs.anchors.groups[this.slideshowGroup || 'none'];
2327
+ if (arr) {
2328
+ var s = hs.lang.number.replace('%1', this.getAnchorIndex() + 1).replace('%2', arr.length);
2329
+ this[this.numberPosition].innerHTML =
2330
+ '<div class="highslide-number">'+ s +'</div>'+ this[this.numberPosition].innerHTML;
2331
+ }
2332
+ }
2333
+ },
2334
+ initSlideshow : function() {
2335
+ if (!this.last) {
2336
+ for (var i = 0; i < hs.slideshows.length; i++) {
2337
+ var ss = hs.slideshows[i], sg = ss.slideshowGroup;
2338
+ if (typeof sg == 'undefined' || sg === null || sg === this.slideshowGroup)
2339
+ this.slideshow = new hs.Slideshow(this.key, ss);
2340
+ }
2341
+ } else {
2342
+ this.slideshow = this.last.slideshow;
2343
+ }
2344
+ var ss = this.slideshow;
2345
+ if (!ss) return;
2346
+ var key = ss.expKey = this.key;
2347
+
2348
+ ss.checkFirstAndLast();
2349
+ ss.disable('full-expand');
2350
+ if (ss.controls) {
2351
+ this.createOverlay(hs.extend(ss.overlayOptions || {}, {
2352
+ overlayId: ss.controls,
2353
+ hsId: 'controls',
2354
+ zIndex: 5
2355
+ }));
2356
+ }
2357
+ if (ss.thumbstrip) ss.thumbstrip.add(this);
2358
+ if (!this.last && this.autoplay) ss.play(true);
2359
+ if (ss.autoplay) {
2360
+ ss.autoplay = setTimeout(function() {
2361
+ hs.next(key);
2362
+ }, (ss.interval || 500));
2363
+ }
2364
+ },
2365
+
2366
+ cancelLoading : function() {
2367
+ hs.discardElement (this.wrapper);
2368
+ hs.expanders[this.key] = null;
2369
+ if (hs.upcoming == this.a) hs.upcoming = null;
2370
+ hs.undim(this.key);
2371
+ if (this.loading) hs.loading.style.left = '-9999px';
2372
+ hs.fireEvent(this, 'onHideLoading');
2373
+ },
2374
+
2375
+ writeCredits : function () {
2376
+ if (this.credits) return;
2377
+ this.credits = hs.createElement('a', {
2378
+ href: hs.creditsHref,
2379
+ target: hs.creditsTarget,
2380
+ className: 'highslide-credits',
2381
+ innerHTML: hs.lang.creditsText,
2382
+ title: hs.lang.creditsTitle
2383
+ });
2384
+ this.createOverlay({
2385
+ overlayId: this.credits,
2386
+ position: this.creditsPosition || 'top left',
2387
+ hsId: 'credits'
2388
+ });
2389
+ },
2390
+
2391
+ getInline : function(types, addOverlay) {
2392
+ for (var i = 0; i < types.length; i++) {
2393
+ var type = types[i], s = null;
2394
+ if (type == 'caption' && !hs.fireEvent(this, 'onBeforeGetCaption')) return;
2395
+ else if (type == 'heading' && !hs.fireEvent(this, 'onBeforeGetHeading')) return;
2396
+ if (!this[type +'Id'] && this.thumbsUserSetId)
2397
+ this[type +'Id'] = type +'-for-'+ this.thumbsUserSetId;
2398
+ if (this[type +'Id']) this[type] = hs.getNode(this[type +'Id']);
2399
+ if (!this[type] && !this[type +'Text'] && this[type +'Eval']) try {
2400
+ s = eval(this[type +'Eval']);
2401
+ } catch (e) {}
2402
+ if (!this[type] && this[type +'Text']) {
2403
+ s = this[type +'Text'];
2404
+ }
2405
+ if (!this[type] && !s) {
2406
+ this[type] = hs.getNode(this.a['_'+ type + 'Id']);
2407
+ if (!this[type]) {
2408
+ var next = this.a.nextSibling;
2409
+ while (next && !hs.isHsAnchor(next)) {
2410
+ if ((new RegExp('highslide-'+ type)).test(next.className || null)) {
2411
+ if (!next.id) this.a['_'+ type + 'Id'] = next.id = 'hsId'+ hs.idCounter++;
2412
+ this[type] = hs.getNode(next.id);
2413
+ break;
2414
+ }
2415
+ next = next.nextSibling;
2416
+ }
2417
+ }
2418
+ }
2419
+ if (!this[type] && !s && this.numberPosition == type) s = '\n';
2420
+
2421
+ if (!this[type] && s) this[type] = hs.createElement('div',
2422
+ { className: 'highslide-'+ type, innerHTML: s } );
2423
+
2424
+ if (addOverlay && this[type]) {
2425
+ var o = { position: (type == 'heading') ? 'above' : 'below' };
2426
+ for (var x in this[type+'Overlay']) o[x] = this[type+'Overlay'][x];
2427
+ o.overlayId = this[type];
2428
+ this.createOverlay(o);
2429
+ }
2430
+ }
2431
+ },
2432
+
2433
+
2434
+ // on end move and resize
2435
+ doShowHide : function(visibility) {
2436
+ if (hs.hideSelects) this.showHideElements('SELECT', visibility);
2437
+ if (hs.hideIframes) this.showHideElements('IFRAME', visibility);
2438
+ if (hs.geckoMac) this.showHideElements('*', visibility);
2439
+ },
2440
+ showHideElements : function (tagName, visibility) {
2441
+ var els = document.getElementsByTagName(tagName);
2442
+ var prop = tagName == '*' ? 'overflow' : 'visibility';
2443
+ for (var i = 0; i < els.length; i++) {
2444
+ if (prop == 'visibility' || (document.defaultView.getComputedStyle(
2445
+ els[i], "").getPropertyValue('overflow') == 'auto'
2446
+ || els[i].getAttribute('hidden-by') != null)) {
2447
+ var hiddenBy = els[i].getAttribute('hidden-by');
2448
+ if (visibility == 'visible' && hiddenBy) {
2449
+ hiddenBy = hiddenBy.replace('['+ this.key +']', '');
2450
+ els[i].setAttribute('hidden-by', hiddenBy);
2451
+ if (!hiddenBy) els[i].style[prop] = els[i].origProp;
2452
+ } else if (visibility == 'hidden') { // hide if behind
2453
+ var elPos = hs.getPosition(els[i]);
2454
+ elPos.w = els[i].offsetWidth;
2455
+ elPos.h = els[i].offsetHeight;
2456
+ if (!this.dimmingOpacity) { // hide all if dimming
2457
+
2458
+ var clearsX = (elPos.x + elPos.w < this.x.get('opos')
2459
+ || elPos.x > this.x.get('opos') + this.x.get('osize'));
2460
+ var clearsY = (elPos.y + elPos.h < this.y.get('opos')
2461
+ || elPos.y > this.y.get('opos') + this.y.get('osize'));
2462
+ }
2463
+ var wrapperKey = hs.getWrapperKey(els[i]);
2464
+ if (!clearsX && !clearsY && wrapperKey != this.key) { // element falls behind image
2465
+ if (!hiddenBy) {
2466
+ els[i].setAttribute('hidden-by', '['+ this.key +']');
2467
+ els[i].origProp = els[i].style[prop];
2468
+ els[i].style[prop] = 'hidden';
2469
+
2470
+ } else if (hiddenBy.indexOf('['+ this.key +']') == -1) {
2471
+ els[i].setAttribute('hidden-by', hiddenBy + '['+ this.key +']');
2472
+ }
2473
+ } else if ((hiddenBy == '['+ this.key +']' || hs.focusKey == wrapperKey)
2474
+ && wrapperKey != this.key) { // on move
2475
+ els[i].setAttribute('hidden-by', '');
2476
+ els[i].style[prop] = els[i].origProp || '';
2477
+ } else if (hiddenBy && hiddenBy.indexOf('['+ this.key +']') > -1) {
2478
+ els[i].setAttribute('hidden-by', hiddenBy.replace('['+ this.key +']', ''));
2479
+ }
2480
+
2481
+ }
2482
+ }
2483
+ }
2484
+ },
2485
+
2486
+ focus : function() {
2487
+ this.wrapper.style.zIndex = hs.zIndexCounter += 2;
2488
+ // blur others
2489
+ for (var i = 0; i < hs.expanders.length; i++) {
2490
+ if (hs.expanders[i] && i == hs.focusKey) {
2491
+ var blurExp = hs.expanders[i];
2492
+ blurExp.content.className += ' highslide-'+ blurExp.contentType +'-blur';
2493
+ if (blurExp.isImage) {
2494
+ blurExp.content.style.cursor = hs.ieLt7 ? 'hand' : 'pointer';
2495
+ blurExp.content.title = hs.lang.focusTitle;
2496
+ }
2497
+ hs.fireEvent(blurExp, 'onBlur');
2498
+ }
2499
+ }
2500
+
2501
+ // focus this
2502
+ if (this.outline) this.outline.table.style.zIndex
2503
+ = this.wrapper.style.zIndex - 1;
2504
+ this.content.className = 'highslide-'+ this.contentType;
2505
+ if (this.isImage) {
2506
+ this.content.title = hs.lang.restoreTitle;
2507
+
2508
+ if (hs.restoreCursor) {
2509
+ hs.styleRestoreCursor = window.opera ? 'pointer' : 'url('+ hs.graphicsDir + hs.restoreCursor +'), pointer';
2510
+ if (hs.ieLt7 && hs.uaVersion < 6) hs.styleRestoreCursor = 'hand';
2511
+ this.content.style.cursor = hs.styleRestoreCursor;
2512
+ }
2513
+ }
2514
+ hs.focusKey = this.key;
2515
+ hs.addEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
2516
+ hs.fireEvent(this, 'onFocus');
2517
+ },
2518
+ moveTo: function(x, y) {
2519
+ this.x.setPos(x);
2520
+ this.y.setPos(y);
2521
+ },
2522
+ resize : function (e) {
2523
+ var w, h, r = e.width / e.height;
2524
+ w = Math.max(e.width + e.dX, Math.min(this.minWidth, this.x.full));
2525
+ if (this.isImage && Math.abs(w - this.x.full) < 12) w = this.x.full;
2526
+ h = this.isHtml ? e.height + e.dY : w / r;
2527
+ if (h < Math.min(this.minHeight, this.y.full)) {
2528
+ h = Math.min(this.minHeight, this.y.full);
2529
+ if (this.isImage) w = h * r;
2530
+ }
2531
+ this.resizeTo(w, h);
2532
+ },
2533
+ resizeTo: function(w, h) {
2534
+ this.y.setSize(h);
2535
+ this.x.setSize(w);
2536
+ this.wrapper.style.height = this.y.get('wsize') +'px';
2537
+ },
2538
+
2539
+ close : function() {
2540
+ if (this.isClosing || !this.isExpanded) return;
2541
+ if (this.transitions[1] == 'crossfade' && hs.upcoming) {
2542
+ hs.getExpander(hs.upcoming).cancelLoading();
2543
+ hs.upcoming = null;
2544
+ }
2545
+ if (!hs.fireEvent(this, 'onBeforeClose')) return;
2546
+ this.isClosing = true;
2547
+ if (this.slideshow && !hs.upcoming) this.slideshow.pause();
2548
+
2549
+ hs.removeEventListener(document, window.opera ? 'keypress' : 'keydown', hs.keyHandler);
2550
+
2551
+ try {
2552
+ if (this.isHtml) this.htmlPrepareClose();
2553
+ this.content.style.cursor = 'default';
2554
+ this.changeSize(
2555
+ 0, {
2556
+ wrapper: {
2557
+ width : this.x.t,
2558
+ height : this.y.t,
2559
+ left: this.x.tpos - this.x.cb + this.x.tb,
2560
+ top: this.y.tpos - this.y.cb + this.y.tb
2561
+ },
2562
+ content: {
2563
+ left: 0,
2564
+ top: 0,
2565
+ width: this.x.t,
2566
+ height: this.y.t
2567
+ }
2568
+ }, hs.restoreDuration
2569
+ );
2570
+ } catch (e) { this.afterClose(); }
2571
+ },
2572
+
2573
+ htmlPrepareClose : function() {
2574
+ if (hs.geckoMac) { // bad redraws
2575
+ if (!hs.mask) hs.mask = hs.createElement('div', null,
2576
+ { position: 'absolute' }, hs.container);
2577
+ hs.setStyles(hs.mask, { width: this.x.size +'px', height: this.y.size +'px',
2578
+ left: this.x.pos +'px', top: this.y.pos +'px', display: 'block' });
2579
+ }
2580
+ if (this.objectType == 'swf') try { hs.$(this.body.id).StopPlay(); } catch (e) {}
2581
+
2582
+ if (this.objectLoadTime == 'after' && !this.preserveContent) this.destroyObject();
2583
+ if (this.scrollerDiv && this.scrollerDiv != this.scrollingContent)
2584
+ this.scrollerDiv.style.overflow = 'hidden';
2585
+ },
2586
+
2587
+ destroyObject : function () {
2588
+ if (hs.ie && this.iframe)
2589
+ try { this.iframe.contentWindow.document.body.innerHTML = ''; } catch (e) {}
2590
+ if (this.objectType == 'swf') swfobject.removeSWF(this.body.id);
2591
+ this.body.innerHTML = '';
2592
+ },
2593
+
2594
+ sleep : function() {
2595
+ if (this.outline) this.outline.table.style.display = 'none';
2596
+ this.releaseMask = null;
2597
+ this.wrapper.style.display = 'none';
2598
+ this.isExpanded = false;
2599
+ hs.push(hs.sleeping, this);
2600
+ },
2601
+
2602
+ awake : function() {try {
2603
+
2604
+ hs.expanders[this.key] = this;
2605
+
2606
+ if (!hs.allowMultipleInstances &&hs.focusKey != this.key) {
2607
+ try { hs.expanders[hs.focusKey].close(); } catch (e){}
2608
+ }
2609
+
2610
+ var z = hs.zIndexCounter++, stl = { display: '', zIndex: z };
2611
+ hs.setStyles (this.wrapper, stl);
2612
+ this.isClosing = false;
2613
+
2614
+ var o = this.outline || 0;
2615
+ if (o) {
2616
+ if (!this.outlineWhileAnimating) stl.visibility = 'hidden';
2617
+ hs.setStyles (o.table, stl);
2618
+ }
2619
+ if (this.slideshow) {
2620
+ this.initSlideshow();
2621
+ }
2622
+
2623
+ this.show();
2624
+ } catch (e) {}
2625
+
2626
+
2627
+ },
2628
+
2629
+ createOverlay : function (o) {
2630
+ var el = o.overlayId,
2631
+ relToVP = (o.relativeTo == 'viewport' && !/panel$/.test(o.position));
2632
+ if (typeof el == 'string') el = hs.getNode(el);
2633
+ if (o.html) el = hs.createElement('div', { innerHTML: o.html });
2634
+ if (!el || typeof el == 'string') return;
2635
+ if (!hs.fireEvent(this, 'onCreateOverlay', { overlay: el })) return;
2636
+ el.style.display = 'block';
2637
+ o.hsId = o.hsId || o.overlayId;
2638
+ if (this.transitions[1] == 'crossfade' && this.reuseOverlay(o, el)) return;
2639
+ this.genOverlayBox();
2640
+ var width = o.width && /^[0-9]+(px|%)$/.test(o.width) ? o.width : 'auto';
2641
+ if (/^(left|right)panel$/.test(o.position) && !/^[0-9]+px$/.test(o.width)) width = '200px';
2642
+ var overlay = hs.createElement(
2643
+ 'div', {
2644
+ id: 'hsId'+ hs.idCounter++,
2645
+ hsId: o.hsId
2646
+ }, {
2647
+ position: 'absolute',
2648
+ visibility: 'hidden',
2649
+ width: width,
2650
+ direction: hs.lang.cssDirection || '',
2651
+ opacity: 0
2652
+ },
2653
+ relToVP ? hs.viewport :this.overlayBox,
2654
+ true
2655
+ );
2656
+ if (relToVP) overlay.hsKey = this.key;
2657
+
2658
+ overlay.appendChild(el);
2659
+ hs.extend(overlay, {
2660
+ opacity: 1,
2661
+ offsetX: 0,
2662
+ offsetY: 0,
2663
+ dur: (o.fade === 0 || o.fade === false || (o.fade == 2 && hs.ie)) ? 0 : 250
2664
+ });
2665
+ hs.extend(overlay, o);
2666
+
2667
+
2668
+ if (this.gotOverlays) {
2669
+ this.positionOverlay(overlay);
2670
+ if (!overlay.hideOnMouseOut || this.mouseIsOver)
2671
+ hs.animate(overlay, { opacity: overlay.opacity }, overlay.dur);
2672
+ }
2673
+ hs.push(this.overlays, hs.idCounter - 1);
2674
+ },
2675
+ positionOverlay : function(overlay) {
2676
+ var p = overlay.position || 'middle center',
2677
+ relToVP = (overlay.relativeTo == 'viewport'),
2678
+ offX = overlay.offsetX,
2679
+ offY = overlay.offsetY;
2680
+ if (relToVP) {
2681
+ hs.viewport.style.display = 'block';
2682
+ overlay.hsKey = this.key;
2683
+ if (overlay.offsetWidth > overlay.parentNode.offsetWidth)
2684
+ overlay.style.width = '100%';
2685
+ } else
2686
+ if (overlay.parentNode != this.overlayBox) this.overlayBox.appendChild(overlay);
2687
+ if (/left$/.test(p)) overlay.style.left = offX +'px';
2688
+
2689
+ if (/center$/.test(p)) hs.setStyles (overlay, {
2690
+ left: '50%',
2691
+ marginLeft: (offX - Math.round(overlay.offsetWidth / 2)) +'px'
2692
+ });
2693
+
2694
+ if (/right$/.test(p)) overlay.style.right = - offX +'px';
2695
+
2696
+ if (/^leftpanel$/.test(p)) {
2697
+ hs.setStyles(overlay, {
2698
+ right: '100%',
2699
+ marginRight: this.x.cb +'px',
2700
+ top: - this.y.cb +'px',
2701
+ bottom: - this.y.cb +'px',
2702
+ overflow: 'auto'
2703
+ });
2704
+ this.x.p1 = overlay.offsetWidth;
2705
+
2706
+ } else if (/^rightpanel$/.test(p)) {
2707
+ hs.setStyles(overlay, {
2708
+ left: '100%',
2709
+ marginLeft: this.x.cb +'px',
2710
+ top: - this.y.cb +'px',
2711
+ bottom: - this.y.cb +'px',
2712
+ overflow: 'auto'
2713
+ });
2714
+ this.x.p2 = overlay.offsetWidth;
2715
+ }
2716
+ var parOff = overlay.parentNode.offsetHeight;
2717
+ overlay.style.height = 'auto';
2718
+ if (relToVP && overlay.offsetHeight > parOff)
2719
+ overlay.style.height = hs.ieLt7 ? parOff +'px' : '100%';
2720
+
2721
+ if (/^top/.test(p)) overlay.style.top = offY +'px';
2722
+ if (/^middle/.test(p)) hs.setStyles (overlay, {
2723
+ top: '50%',
2724
+ marginTop: (offY - Math.round(overlay.offsetHeight / 2)) +'px'
2725
+ });
2726
+ if (/^bottom/.test(p)) overlay.style.bottom = - offY +'px';
2727
+ if (/^above$/.test(p)) {
2728
+ hs.setStyles(overlay, {
2729
+ left: (- this.x.p1 - this.x.cb) +'px',
2730
+ right: (- this.x.p2 - this.x.cb) +'px',
2731
+ bottom: '100%',
2732
+ marginBottom: this.y.cb +'px',
2733
+ width: 'auto'
2734
+ });
2735
+ this.y.p1 = overlay.offsetHeight;
2736
+
2737
+ } else if (/^below$/.test(p)) {
2738
+ hs.setStyles(overlay, {
2739
+ position: 'relative',
2740
+ left: (- this.x.p1 - this.x.cb) +'px',
2741
+ right: (- this.x.p2 - this.x.cb) +'px',
2742
+ top: '100%',
2743
+ marginTop: this.y.cb +'px',
2744
+ width: 'auto'
2745
+ });
2746
+ this.y.p2 = overlay.offsetHeight;
2747
+ overlay.style.position = 'absolute';
2748
+ }
2749
+ },
2750
+
2751
+ getOverlays : function() {
2752
+ this.getInline(['heading', 'caption'], true);
2753
+ this.getNumber();
2754
+ if (this.caption) hs.fireEvent(this, 'onAfterGetCaption');
2755
+ if (this.heading) hs.fireEvent(this, 'onAfterGetHeading');
2756
+ if (this.heading && this.dragByHeading) this.heading.className += ' highslide-move';
2757
+ if (hs.showCredits) this.writeCredits();
2758
+ for (var i = 0; i < hs.overlays.length; i++) {
2759
+ var o = hs.overlays[i], tId = o.thumbnailId, sg = o.slideshowGroup;
2760
+ if ((!tId && !sg) || (tId && tId == this.thumbsUserSetId)
2761
+ || (sg && sg === this.slideshowGroup)) {
2762
+ if (this.isImage || (this.isHtml && o.useOnHtml))
2763
+ this.createOverlay(o);
2764
+ }
2765
+ }
2766
+ var os = [];
2767
+ for (var i = 0; i < this.overlays.length; i++) {
2768
+ var o = hs.$('hsId'+ this.overlays[i]);
2769
+ if (/panel$/.test(o.position)) this.positionOverlay(o);
2770
+ else hs.push(os, o);
2771
+ }
2772
+ for (var i = 0; i < os.length; i++) this.positionOverlay(os[i]);
2773
+ this.gotOverlays = true;
2774
+ },
2775
+ genOverlayBox : function() {
2776
+ if (!this.overlayBox) this.overlayBox = hs.createElement (
2777
+ 'div', {
2778
+ className: this.wrapperClassName
2779
+ }, {
2780
+ position : 'absolute',
2781
+ width: (this.x.size || (this.useBox ? this.width : null)
2782
+ || this.x.full) +'px',
2783
+ height: (this.y.size || this.y.full) +'px',
2784
+ visibility : 'hidden',
2785
+ overflow : 'hidden',
2786
+ zIndex : hs.ie ? 4 : 'auto'
2787
+ },
2788
+ hs.container,
2789
+ true
2790
+ );
2791
+ },
2792
+ sizeOverlayBox : function(doWrapper, doPanels) {
2793
+ var overlayBox = this.overlayBox,
2794
+ x = this.x,
2795
+ y = this.y;
2796
+ hs.setStyles( overlayBox, {
2797
+ width: x.size +'px',
2798
+ height: y.size +'px'
2799
+ });
2800
+ if (doWrapper || doPanels) {
2801
+ for (var i = 0; i < this.overlays.length; i++) {
2802
+ var o = hs.$('hsId'+ this.overlays[i]);
2803
+ var ie6 = (hs.ieLt7 || document.compatMode == 'BackCompat');
2804
+ if (o && /^(above|below)$/.test(o.position)) {
2805
+ if (ie6) {
2806
+ o.style.width = (overlayBox.offsetWidth + 2 * x.cb
2807
+ + x.p1 + x.p2) +'px';
2808
+ }
2809
+ y[o.position == 'above' ? 'p1' : 'p2'] = o.offsetHeight;
2810
+ }
2811
+ if (o && ie6 && /^(left|right)panel$/.test(o.position)) {
2812
+ o.style.height = (overlayBox.offsetHeight + 2* y.cb) +'px';
2813
+ }
2814
+ }
2815
+ }
2816
+ if (doWrapper) {
2817
+ hs.setStyles(this.content, {
2818
+ top: y.p1 +'px'
2819
+ });
2820
+ hs.setStyles(overlayBox, {
2821
+ top: (y.p1 + y.cb) +'px'
2822
+ });
2823
+ }
2824
+ },
2825
+
2826
+ showOverlays : function() {
2827
+ var b = this.overlayBox;
2828
+ b.className = '';
2829
+ hs.setStyles(b, {
2830
+ top: (this.y.p1 + this.y.cb) +'px',
2831
+ left: (this.x.p1 + this.x.cb) +'px',
2832
+ overflow : 'visible'
2833
+ });
2834
+ if (hs.safari) b.style.visibility = 'visible';
2835
+ this.wrapper.appendChild (b);
2836
+ for (var i = 0; i < this.overlays.length; i++) {
2837
+ var o = hs.$('hsId'+ this.overlays[i]);
2838
+ o.style.zIndex = o.zIndex || 4;
2839
+ if (!o.hideOnMouseOut || this.mouseIsOver) {
2840
+ o.style.visibility = 'visible';
2841
+ hs.setStyles(o, { visibility: 'visible', display: '' });
2842
+ hs.animate(o, { opacity: o.opacity }, o.dur);
2843
+ }
2844
+ }
2845
+ },
2846
+
2847
+ destroyOverlays : function() {
2848
+ if (!this.overlays.length) return;
2849
+ if (this.slideshow) {
2850
+ var c = this.slideshow.controls;
2851
+ if (c && hs.getExpander(c) == this) c.parentNode.removeChild(c);
2852
+ }
2853
+ for (var i = 0; i < this.overlays.length; i++) {
2854
+ var o = hs.$('hsId'+ this.overlays[i]);
2855
+ if (o && o.parentNode == hs.viewport && hs.getExpander(o) == this) hs.discardElement(o);
2856
+ }
2857
+ if (this.isHtml && this.preserveContent) {
2858
+ this.overlayBox.style.top = '-9999px';
2859
+ hs.container.appendChild(this.overlayBox);
2860
+ } else
2861
+ hs.discardElement(this.overlayBox);
2862
+ },
2863
+
2864
+
2865
+
2866
+ createFullExpand : function () {
2867
+ if (this.slideshow && this.slideshow.controls) {
2868
+ this.slideshow.enable('full-expand');
2869
+ return;
2870
+ }
2871
+ this.fullExpandLabel = hs.createElement(
2872
+ 'a', {
2873
+ href: 'javascript:hs.expanders['+ this.key +'].doFullExpand();',
2874
+ title: hs.lang.fullExpandTitle,
2875
+ className: 'highslide-full-expand'
2876
+ }
2877
+ );
2878
+ if (!hs.fireEvent(this, 'onCreateFullExpand')) return;
2879
+
2880
+ this.createOverlay({
2881
+ overlayId: this.fullExpandLabel,
2882
+ position: hs.fullExpandPosition,
2883
+ hideOnMouseOut: true,
2884
+ opacity: hs.fullExpandOpacity
2885
+ });
2886
+ },
2887
+
2888
+ doFullExpand : function () {
2889
+ try {
2890
+ if (!hs.fireEvent(this, 'onDoFullExpand')) return;
2891
+ if (this.fullExpandLabel) hs.discardElement(this.fullExpandLabel);
2892
+
2893
+ this.focus();
2894
+ var xSize = this.x.size,
2895
+ ySize = this.y.size;
2896
+ this.resizeTo(this.x.full, this.y.full);
2897
+
2898
+ var xpos = this.x.pos - (this.x.size - xSize) / 2;
2899
+ if (xpos < hs.marginLeft) xpos = hs.marginLeft;
2900
+
2901
+ var ypos = this.y.pos - (this.y.size - ySize) / 2;
2902
+ if (ypos < hs.marginTop) ypos = hs.marginTop;
2903
+
2904
+ this.moveTo(xpos, ypos);
2905
+ this.doShowHide('hidden');
2906
+
2907
+ } catch (e) {
2908
+ this.error(e);
2909
+ }
2910
+ },
2911
+
2912
+
2913
+ afterClose : function () {
2914
+ this.a.className = this.a.className.replace('highslide-active-anchor', '');
2915
+
2916
+ this.doShowHide('visible');
2917
+
2918
+ if (this.isHtml && this.preserveContent
2919
+ && this.transitions[1] != 'crossfade') {
2920
+ this.sleep();
2921
+ } else {
2922
+ if (this.outline && this.outlineWhileAnimating) this.outline.destroy();
2923
+
2924
+ hs.discardElement(this.wrapper);
2925
+ }
2926
+ if (hs.mask) hs.mask.style.display = 'none';
2927
+ this.destroyOverlays();
2928
+ if (!hs.viewport.childNodes.length) hs.viewport.style.display = 'none';
2929
+
2930
+ if (this.dimmingOpacity) hs.undim(this.key);
2931
+ hs.fireEvent(this, 'onAfterClose');
2932
+ hs.expanders[this.key] = null;
2933
+ hs.reOrder();
2934
+ }
2935
+
2936
+ };
2937
+
2938
+
2939
+ // hs.Ajax object prototype
2940
+ hs.Ajax = function (a, content, pre) {
2941
+ this.a = a;
2942
+ this.content = content;
2943
+ this.pre = pre;
2944
+ };
2945
+
2946
+ hs.Ajax.prototype = {
2947
+ run : function () {
2948
+ var xhr;
2949
+ if (!this.src) this.src = hs.getSrc(this.a);
2950
+ if (this.src.match('#')) {
2951
+ var arr = this.src.split('#');
2952
+ this.src = arr[0];
2953
+ this.id = arr[1];
2954
+ }
2955
+ if (hs.cachedGets[this.src]) {
2956
+ this.cachedGet = hs.cachedGets[this.src];
2957
+ if (this.id) this.getElementContent();
2958
+ else this.loadHTML();
2959
+ return;
2960
+ }
2961
+ try { xhr = new XMLHttpRequest(); }
2962
+ catch (e) {
2963
+ try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); }
2964
+ catch (e) {
2965
+ try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
2966
+ catch (e) { this.onError(); }
2967
+ }
2968
+ }
2969
+ var pThis = this;
2970
+ xhr.onreadystatechange = function() {
2971
+ if(pThis.xhr.readyState == 4) {
2972
+ if (pThis.id) pThis.getElementContent();
2973
+ else pThis.loadHTML();
2974
+ }
2975
+ };
2976
+ var src = this.src;
2977
+ this.xhr = xhr;
2978
+ if (hs.forceAjaxReload)
2979
+ src = src.replace(/$/, (/\?/.test(src) ? '&' : '?') +'dummy='+ (new Date()).getTime());
2980
+ xhr.open('GET', src, true);
2981
+ xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');
2982
+ xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
2983
+ xhr.send(null);
2984
+ },
2985
+
2986
+ getElementContent : function() {
2987
+ hs.init();
2988
+ var attribs = window.opera || hs.ie6SSL ? { src: 'about:blank' } : null;
2989
+
2990
+ this.iframe = hs.createElement('iframe', attribs,
2991
+ { position: 'absolute', top: '-9999px' }, hs.container);
2992
+
2993
+ this.loadHTML();
2994
+ },
2995
+
2996
+ loadHTML : function() {
2997
+ var s = this.cachedGet || this.xhr.responseText,
2998
+ regBody;
2999
+ if (this.pre) hs.cachedGets[this.src] = s;
3000
+ if (!hs.ie || hs.uaVersion >= 5.5) {
3001
+ s = s.replace(new RegExp('<link[^>]*>', 'gi'), '')
3002
+ .replace(new RegExp('<script[^>]*>.*?</script>', 'gi'), '');
3003
+ if (this.iframe) {
3004
+ var doc = this.iframe.contentDocument;
3005
+ if (!doc && this.iframe.contentWindow) doc = this.iframe.contentWindow.document;
3006
+ if (!doc) { // Opera
3007
+ var pThis = this;
3008
+ setTimeout(function() { pThis.loadHTML(); }, 25);
3009
+ return;
3010
+ }
3011
+ doc.open();
3012
+ doc.write(s);
3013
+ doc.close();
3014
+ try { s = doc.getElementById(this.id).innerHTML; } catch (e) {
3015
+ try { s = this.iframe.document.getElementById(this.id).innerHTML; } catch (e) {} // opera
3016
+ }
3017
+ hs.discardElement(this.iframe);
3018
+ } else {
3019
+ regBody = /(<body[^>]*>|<\/body>)/ig;
3020
+ if (regBody.test(s)) s = s.split(regBody)[hs.ieLt9 ? 1 : 2];
3021
+
3022
+ }
3023
+ }
3024
+ hs.getElementByClass(this.content, 'DIV', 'highslide-body').innerHTML = s;
3025
+ this.onLoad();
3026
+ for (var x in this) this[x] = null;
3027
+ }
3028
+ };
3029
+
3030
+
3031
+ hs.Slideshow = function (expKey, options) {
3032
+ if (hs.dynamicallyUpdateAnchors !== false) hs.updateAnchors();
3033
+ this.expKey = expKey;
3034
+ for (var x in options) this[x] = options[x];
3035
+ if (this.useControls) this.getControls();
3036
+ if (this.thumbstrip) this.thumbstrip = hs.Thumbstrip(this);
3037
+ };
3038
+ hs.Slideshow.prototype = {
3039
+ getControls: function() {
3040
+ this.controls = hs.createElement('div', { innerHTML: hs.replaceLang(hs.skin.controls) },
3041
+ null, hs.container);
3042
+
3043
+ var buttons = ['play', 'pause', 'previous', 'next', 'move', 'full-expand', 'close'];
3044
+ this.btn = {};
3045
+ var pThis = this;
3046
+ for (var i = 0; i < buttons.length; i++) {
3047
+ this.btn[buttons[i]] = hs.getElementByClass(this.controls, 'li', 'highslide-'+ buttons[i]);
3048
+ this.enable(buttons[i]);
3049
+ }
3050
+ this.btn.pause.style.display = 'none';
3051
+ //this.disable('full-expand');
3052
+ },
3053
+ checkFirstAndLast: function() {
3054
+ if (this.repeat || !this.controls) return;
3055
+ var exp = hs.expanders[this.expKey],
3056
+ cur = exp.getAnchorIndex(),
3057
+ re = /disabled$/;
3058
+ if (cur == 0)
3059
+ this.disable('previous');
3060
+ else if (re.test(this.btn.previous.getElementsByTagName('a')[0].className))
3061
+ this.enable('previous');
3062
+ if (cur + 1 == hs.anchors.groups[exp.slideshowGroup || 'none'].length) {
3063
+ this.disable('next');
3064
+ this.disable('play');
3065
+ } else if (re.test(this.btn.next.getElementsByTagName('a')[0].className)) {
3066
+ this.enable('next');
3067
+ this.enable('play');
3068
+ }
3069
+ },
3070
+ enable: function(btn) {
3071
+ if (!this.btn) return;
3072
+ var sls = this, a = this.btn[btn].getElementsByTagName('a')[0], re = /disabled$/;
3073
+ a.onclick = function() {
3074
+ sls[btn]();
3075
+ return false;
3076
+ };
3077
+ if (re.test(a.className)) a.className = a.className.replace(re, '');
3078
+ },
3079
+ disable: function(btn) {
3080
+ if (!this.btn) return;
3081
+ var a = this.btn[btn].getElementsByTagName('a')[0];
3082
+ a.onclick = function() { return false; };
3083
+ if (!/disabled$/.test(a.className)) a.className += ' disabled';
3084
+ },
3085
+ hitSpace: function() {
3086
+ if (this.autoplay) this.pause();
3087
+ else this.play();
3088
+ },
3089
+ play: function(wait) {
3090
+ if (this.btn) {
3091
+ this.btn.play.style.display = 'none';
3092
+ this.btn.pause.style.display = '';
3093
+ }
3094
+
3095
+ this.autoplay = true;
3096
+ if (!wait) hs.next(this.expKey);
3097
+ },
3098
+ pause: function() {
3099
+ if (this.btn) {
3100
+ this.btn.pause.style.display = 'none';
3101
+ this.btn.play.style.display = '';
3102
+ }
3103
+
3104
+ clearTimeout(this.autoplay);
3105
+ this.autoplay = null;
3106
+ },
3107
+ previous: function() {
3108
+ this.pause();
3109
+ hs.previous(this.btn.previous);
3110
+ },
3111
+ next: function() {
3112
+ this.pause();
3113
+ hs.next(this.btn.next);
3114
+ },
3115
+ move: function() {},
3116
+ 'full-expand': function() {
3117
+ hs.getExpander().doFullExpand();
3118
+ },
3119
+ close: function() {
3120
+ hs.close(this.btn.close);
3121
+ }
3122
+ };
3123
+ hs.Thumbstrip = function(slideshow) {
3124
+ function add (exp) {
3125
+ hs.extend(options || {}, {
3126
+ overlayId: dom,
3127
+ hsId: 'thumbstrip',
3128
+ className: 'highslide-thumbstrip-'+ mode +'-overlay ' + (options.className || '')
3129
+ });
3130
+ if (hs.ieLt7) options.fade = 0;
3131
+ exp.createOverlay(options);
3132
+ hs.setStyles(dom.parentNode, { overflow: 'hidden' });
3133
+ };
3134
+
3135
+ function scroll (delta) {
3136
+ selectThumb(undefined, Math.round(delta * dom[isX ? 'offsetWidth' : 'offsetHeight'] * 0.7));
3137
+ };
3138
+
3139
+ function selectThumb (i, scrollBy) {
3140
+ if (i === undefined) for (var j = 0; j < group.length; j++) {
3141
+ if (group[j] == hs.expanders[slideshow.expKey].a) {
3142
+ i = j;
3143
+ break;
3144
+ }
3145
+ }
3146
+ if (i === undefined) return;
3147
+ var as = dom.getElementsByTagName('a'),
3148
+ active = as[i],
3149
+ cell = active.parentNode,
3150
+ left = isX ? 'Left' : 'Top',
3151
+ right = isX ? 'Right' : 'Bottom',
3152
+ width = isX ? 'Width' : 'Height',
3153
+ offsetLeft = 'offset' + left,
3154
+ offsetWidth = 'offset' + width,
3155
+ overlayWidth = div.parentNode.parentNode[offsetWidth],
3156
+ minTblPos = overlayWidth - table[offsetWidth],
3157
+ curTblPos = parseInt(table.style[isX ? 'left' : 'top']) || 0,
3158
+ tblPos = curTblPos,
3159
+ mgnRight = 20;
3160
+ if (scrollBy !== undefined) {
3161
+ tblPos = curTblPos - scrollBy;
3162
+
3163
+ if (minTblPos > 0) minTblPos = 0;
3164
+ if (tblPos > 0) tblPos = 0;
3165
+ if (tblPos < minTblPos) tblPos = minTblPos;
3166
+
3167
+
3168
+ } else {
3169
+ for (var j = 0; j < as.length; j++) as[j].className = '';
3170
+ active.className = 'highslide-active-anchor';
3171
+ var activeLeft = i > 0 ? as[i - 1].parentNode[offsetLeft] : cell[offsetLeft],
3172
+ activeRight = cell[offsetLeft] + cell[offsetWidth] +
3173
+ (as[i + 1] ? as[i + 1].parentNode[offsetWidth] : 0);
3174
+ if (activeRight > overlayWidth - curTblPos) tblPos = overlayWidth - activeRight;
3175
+ else if (activeLeft < -curTblPos) tblPos = -activeLeft;
3176
+ }
3177
+ var markerPos = cell[offsetLeft] + (cell[offsetWidth] - marker[offsetWidth]) / 2 + tblPos;
3178
+ hs.animate(table, isX ? { left: tblPos } : { top: tblPos }, null, 'easeOutQuad');
3179
+ hs.animate(marker, isX ? { left: markerPos } : { top: markerPos }, null, 'easeOutQuad');
3180
+ scrollUp.style.display = tblPos < 0 ? 'block' : 'none';
3181
+ scrollDown.style.display = (tblPos > minTblPos) ? 'block' : 'none';
3182
+
3183
+ };
3184
+
3185
+
3186
+ // initialize
3187
+ var group = hs.anchors.groups[hs.expanders[slideshow.expKey].slideshowGroup || 'none'],
3188
+ options = slideshow.thumbstrip,
3189
+ mode = options.mode || 'horizontal',
3190
+ floatMode = (mode == 'float'),
3191
+ tree = floatMode ? ['div', 'ul', 'li', 'span'] : ['table', 'tbody', 'tr', 'td'],
3192
+ isX = (mode == 'horizontal'),
3193
+ dom = hs.createElement('div', {
3194
+ className: 'highslide-thumbstrip highslide-thumbstrip-'+ mode,
3195
+ innerHTML:
3196
+ '<div class="highslide-thumbstrip-inner">'+
3197
+ '<'+ tree[0] +'><'+ tree[1] +'></'+ tree[1] +'></'+ tree[0] +'></div>'+
3198
+ '<div class="highslide-scroll-up"><div></div></div>'+
3199
+ '<div class="highslide-scroll-down"><div></div></div>'+
3200
+ '<div class="highslide-marker"><div></div></div>'
3201
+ }, {
3202
+ display: 'none'
3203
+ }, hs.container),
3204
+ domCh = dom.childNodes,
3205
+ div = domCh[0],
3206
+ scrollUp = domCh[1],
3207
+ scrollDown = domCh[2],
3208
+ marker = domCh[3],
3209
+ table = div.firstChild,
3210
+ tbody = dom.getElementsByTagName(tree[1])[0],
3211
+ tr;
3212
+ for (var i = 0; i < group.length; i++) {
3213
+ if (i == 0 || !isX) tr = hs.createElement(tree[2], null, null, tbody);
3214
+ (function(){
3215
+ var a = group[i],
3216
+ cell = hs.createElement(tree[3], null, null, tr),
3217
+ pI = i;
3218
+ hs.createElement('a', {
3219
+ href: a.href,
3220
+ title: a.title,
3221
+ onclick: function() {
3222
+ if (/highslide-active-anchor/.test(this.className)) return false;
3223
+ hs.getExpander(this).focus();
3224
+ return hs.transit(a);
3225
+ },
3226
+ innerHTML: hs.stripItemFormatter ? hs.stripItemFormatter(a) : a.innerHTML
3227
+ }, null, cell);
3228
+ })();
3229
+ }
3230
+ if (!floatMode) {
3231
+ scrollUp.onclick = function () { scroll(-1); };
3232
+ scrollDown.onclick = function() { scroll(1); };
3233
+ hs.addEventListener(tbody, document.onmousewheel !== undefined ?
3234
+ 'mousewheel' : 'DOMMouseScroll', function(e) {
3235
+ var delta = 0;
3236
+ e = e || window.event;
3237
+ if (e.wheelDelta) {
3238
+ delta = e.wheelDelta/120;
3239
+ if (hs.opera) delta = -delta;
3240
+ } else if (e.detail) {
3241
+ delta = -e.detail/3;
3242
+ }
3243
+ if (delta) scroll(-delta * 0.2);
3244
+ if (e.preventDefault) e.preventDefault();
3245
+ e.returnValue = false;
3246
+ });
3247
+ }
3248
+
3249
+ return {
3250
+ add: add,
3251
+ selectThumb: selectThumb
3252
+ }
3253
+ };
3254
+ hs.langDefaults = hs.lang;
3255
+ // history
3256
+ var HsExpander = hs.Expander;
3257
+ if (hs.ie && window == window.top) {
3258
+ (function () {
3259
+ try {
3260
+ document.documentElement.doScroll('left');
3261
+ } catch (e) {
3262
+ setTimeout(arguments.callee, 50);
3263
+ return;
3264
+ }
3265
+ hs.ready();
3266
+ })();
3267
+ }
3268
+ hs.addEventListener(document, 'DOMContentLoaded', hs.ready);
3269
+ hs.addEventListener(window, 'load', hs.ready);
3270
+
3271
+ // set handlers
3272
+ hs.addEventListener(document, 'ready', function() {
3273
+ if (hs.expandCursor || hs.dimmingOpacity) {
3274
+ var style = hs.createElement('style', { type: 'text/css' }, null,
3275
+ document.getElementsByTagName('HEAD')[0]),
3276
+ backCompat = document.compatMode == 'BackCompat';
3277
+
3278
+
3279
+ function addRule(sel, dec) {
3280
+ if (hs.ie && (hs.uaVersion < 9 || backCompat)) {
3281
+ var last = document.styleSheets[document.styleSheets.length - 1];
3282
+ if (typeof(last.addRule) == "object") last.addRule(sel, dec);
3283
+ } else {
3284
+ style.appendChild(document.createTextNode(sel + " {" + dec + "}"));
3285
+ }
3286
+ }
3287
+ function fix(prop) {
3288
+ return 'expression( ( ( ignoreMe = document.documentElement.'+ prop +
3289
+ ' ? document.documentElement.'+ prop +' : document.body.'+ prop +' ) ) + \'px\' );';
3290
+ }
3291
+ if (hs.expandCursor) addRule ('.highslide img',
3292
+ 'cursor: url('+ hs.graphicsDir + hs.expandCursor +'), pointer !important;');
3293
+ addRule ('.highslide-viewport-size',
3294
+ hs.ie && (hs.uaVersion < 7 || backCompat) ?
3295
+ 'position: absolute; '+
3296
+ 'left:'+ fix('scrollLeft') +
3297
+ 'top:'+ fix('scrollTop') +
3298
+ 'width:'+ fix('clientWidth') +
3299
+ 'height:'+ fix('clientHeight') :
3300
+ 'position: fixed; width: 100%; height: 100%; left: 0; top: 0');
3301
+ }
3302
+ });
3303
+ hs.addEventListener(window, 'resize', function() {
3304
+ hs.getPageSize();
3305
+ if (hs.viewport) for (var i = 0; i < hs.viewport.childNodes.length; i++) {
3306
+ var node = hs.viewport.childNodes[i],
3307
+ exp = hs.getExpander(node);
3308
+ exp.positionOverlay(node);
3309
+ if (node.hsId == 'thumbstrip') exp.slideshow.thumbstrip.selectThumb();
3310
+ }
3311
+ });
3312
+ hs.addEventListener(document, 'mousemove', function(e) {
3313
+ hs.mouse = { x: e.clientX, y: e.clientY };
3314
+ });
3315
+ hs.addEventListener(document, 'mousedown', hs.mouseClickHandler);
3316
+ hs.addEventListener(document, 'mouseup', hs.mouseClickHandler);
3317
+ hs.addEventListener(document, 'ready', hs.setClickEvents);
3318
+ hs.addEventListener(window, 'load', hs.preloadImages);
3319
+ hs.addEventListener(window, 'load', hs.preloadAjax);
3320
+ }