benmanns-atreides 2.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (449) hide show
  1. data/LICENSE +7 -0
  2. data/README.rdoc +1 -0
  3. data/app/assets/javascripts/atreides/admin.facebook.js +137 -0
  4. data/app/assets/javascripts/atreides/admin.js +23 -0
  5. data/app/assets/javascripts/atreides/admin_base.js.erb +273 -0
  6. data/app/assets/javascripts/atreides/admin_edit.js +9 -0
  7. data/app/assets/javascripts/atreides/application.js +15 -0
  8. data/app/assets/javascripts/atreides/public.js +24 -0
  9. data/app/assets/javascripts/atreides/public_base.js.erb +119 -0
  10. data/app/assets/javascripts/atreides/terryblr.js +57 -0
  11. data/app/assets/stylesheets/atreides/admin.css +21 -0
  12. data/app/assets/stylesheets/atreides/admin_base.css.erb +1693 -0
  13. data/app/assets/stylesheets/atreides/application.css +13 -0
  14. data/app/assets/stylesheets/atreides/formtastic_changes.css +10 -0
  15. data/app/assets/stylesheets/atreides/iphone-checkboxes.css.erb +97 -0
  16. data/app/assets/stylesheets/atreides/jBreadCrumb.css +109 -0
  17. data/app/assets/stylesheets/atreides/public.css +15 -0
  18. data/app/assets/stylesheets/atreides/public_base.css +101 -0
  19. data/app/assets/stylesheets/atreides/swfupload.css.erb +63 -0
  20. data/app/controllers/admin/atreides/content_parts_controller.rb +43 -0
  21. data/app/controllers/admin/atreides/dropbox_controller.rb +40 -0
  22. data/app/controllers/admin/atreides/facebook_controller.rb +38 -0
  23. data/app/controllers/admin/atreides/features_controller.rb +63 -0
  24. data/app/controllers/admin/atreides/github_controller.rb +35 -0
  25. data/app/controllers/admin/atreides/links_controller.rb +3 -0
  26. data/app/controllers/admin/atreides/messages_controller.rb +3 -0
  27. data/app/controllers/admin/atreides/orders_controller.rb +35 -0
  28. data/app/controllers/admin/atreides/pages_controller.rb +59 -0
  29. data/app/controllers/admin/atreides/photos_controller.rb +79 -0
  30. data/app/controllers/admin/atreides/posts_controller.rb +109 -0
  31. data/app/controllers/admin/atreides/products_controller.rb +39 -0
  32. data/app/controllers/admin/atreides/sessions_controller.rb +7 -0
  33. data/app/controllers/admin/atreides/sizes_controller.rb +4 -0
  34. data/app/controllers/admin/atreides/tags_controller.rb +20 -0
  35. data/app/controllers/admin/atreides/users_controller.rb +50 -0
  36. data/app/controllers/admin/atreides/videos_controller.rb +53 -0
  37. data/app/controllers/atreides/admin_controller.rb +96 -0
  38. data/app/controllers/atreides/admin_home_controller.rb +215 -0
  39. data/app/controllers/atreides/application_controller.rb +93 -0
  40. data/app/controllers/atreides/home_controller.rb +71 -0
  41. data/app/controllers/atreides/likes_controller.rb +44 -0
  42. data/app/controllers/atreides/pages_controller.rb +34 -0
  43. data/app/controllers/atreides/posts_controller.rb +119 -0
  44. data/app/controllers/atreides/public_controller.rb +43 -0
  45. data/app/helpers/admin/atreides/dropbox_helper.rb +42 -0
  46. data/app/helpers/admin/atreides/features_helper.rb +4 -0
  47. data/app/helpers/admin/atreides/github_helper.rb +43 -0
  48. data/app/helpers/admin/atreides/links_helper.rb +4 -0
  49. data/app/helpers/admin/atreides/messages_helper.rb +4 -0
  50. data/app/helpers/admin/atreides/orders_helper.rb +30 -0
  51. data/app/helpers/admin/atreides/pages_helper.rb +17 -0
  52. data/app/helpers/admin/atreides/photos_helper.rb +14 -0
  53. data/app/helpers/admin/atreides/posts_helper.rb +41 -0
  54. data/app/helpers/admin/atreides/products_helper.rb +37 -0
  55. data/app/helpers/admin/atreides/sizes_helper.rb +4 -0
  56. data/app/helpers/admin/atreides/user_sessions_helper.rb +4 -0
  57. data/app/helpers/admin/atreides/users_helper.rb +8 -0
  58. data/app/helpers/admin/atreides/videos_helper.rb +4 -0
  59. data/app/helpers/atreides/admin_helper.rb +243 -0
  60. data/app/helpers/atreides/admin_home_helper.rb +4 -0
  61. data/app/helpers/atreides/application_helper.rb +210 -0
  62. data/app/helpers/atreides/home_helper.rb +4 -0
  63. data/app/helpers/atreides/posts_helper.rb +119 -0
  64. data/app/inputs/files_input.rb +13 -0
  65. data/app/inputs/price_input.rb +18 -0
  66. data/app/inputs/underline_input.rb +16 -0
  67. data/app/models/atreides/ability.rb +24 -0
  68. data/app/models/atreides/content_part.rb +106 -0
  69. data/app/models/atreides/facebook_user.rb +103 -0
  70. data/app/models/atreides/feature.rb +90 -0
  71. data/app/models/atreides/github.rb +74 -0
  72. data/app/models/atreides/like.rb +35 -0
  73. data/app/models/atreides/line_item.rb +4 -0
  74. data/app/models/atreides/link.rb +32 -0
  75. data/app/models/atreides/message.rb +34 -0
  76. data/app/models/atreides/order.rb +209 -0
  77. data/app/models/atreides/page.rb +114 -0
  78. data/app/models/atreides/photo.rb +130 -0
  79. data/app/models/atreides/post.rb +271 -0
  80. data/app/models/atreides/preferences.rb +31 -0
  81. data/app/models/atreides/product.rb +75 -0
  82. data/app/models/atreides/site.rb +59 -0
  83. data/app/models/atreides/size.rb +44 -0
  84. data/app/models/atreides/tag.rb +31 -0
  85. data/app/models/atreides/tweet.rb +123 -0
  86. data/app/models/atreides/user.rb +129 -0
  87. data/app/models/atreides/video.rb +206 -0
  88. data/app/models/atreides/vote.rb +43 -0
  89. data/app/models/fb_post_publisher_job.rb +72 -0
  90. data/app/models/settings.rb +19 -0
  91. data/app/models/tumblr_post_publisher_job.rb +75 -0
  92. data/app/models/tw_post_publisher_job.rb +54 -0
  93. data/app/views/admin/_edit_head_content.html.haml +2 -0
  94. data/app/views/admin/atreides/content_parts/_form.html.haml +21 -0
  95. data/app/views/admin/atreides/content_parts/_photos.html.haml +18 -0
  96. data/app/views/admin/atreides/content_parts/_text.html.haml +1 -0
  97. data/app/views/admin/atreides/content_parts/_videos.html.haml +12 -0
  98. data/app/views/admin/atreides/content_parts/destroy.js.haml +3 -0
  99. data/app/views/admin/atreides/content_parts/edit.html.haml +0 -0
  100. data/app/views/admin/atreides/content_parts/new.html.haml +0 -0
  101. data/app/views/admin/atreides/content_parts/new.js.haml +11 -0
  102. data/app/views/admin/atreides/dropbox/_uploader.html.haml +134 -0
  103. data/app/views/admin/atreides/dropbox/list.html.haml +27 -0
  104. data/app/views/admin/atreides/dropbox/setup.html.haml +8 -0
  105. data/app/views/admin/atreides/facebook/index.html.haml +29 -0
  106. data/app/views/admin/atreides/features/_form.html.haml +60 -0
  107. data/app/views/admin/atreides/features/edit.html.haml +1 -0
  108. data/app/views/admin/atreides/features/index.html.haml +24 -0
  109. data/app/views/admin/atreides/features/new.html.haml +1 -0
  110. data/app/views/admin/atreides/github/index.html.haml +26 -0
  111. data/app/views/admin/atreides/github/show.html.haml +19 -0
  112. data/app/views/admin/atreides/likes/create.js.haml +2 -0
  113. data/app/views/admin/atreides/orders/_sidebar.html.haml +20 -0
  114. data/app/views/admin/atreides/orders/edit.html.haml +52 -0
  115. data/app/views/admin/atreides/orders/index.html.haml +8 -0
  116. data/app/views/admin/atreides/pages/_form.html.haml +31 -0
  117. data/app/views/admin/atreides/pages/edit.html.haml +3 -0
  118. data/app/views/admin/atreides/pages/index.html.haml +15 -0
  119. data/app/views/admin/atreides/pages/index.js.haml +4 -0
  120. data/app/views/admin/atreides/pages/new.html.haml +2 -0
  121. data/app/views/admin/atreides/photos/create.js.haml +18 -0
  122. data/app/views/admin/atreides/photos/destroy.js.haml +3 -0
  123. data/app/views/admin/atreides/posts/_archives.html.haml +19 -0
  124. data/app/views/admin/atreides/posts/_form.html.haml +66 -0
  125. data/app/views/admin/atreides/posts/_form_buttons.html.haml +9 -0
  126. data/app/views/admin/atreides/posts/_form_sidebar.html.haml +85 -0
  127. data/app/views/admin/atreides/posts/edit.html.haml +2 -0
  128. data/app/views/admin/atreides/posts/index.html.haml +24 -0
  129. data/app/views/admin/atreides/posts/index.js.haml +1 -0
  130. data/app/views/admin/atreides/posts/new.html.haml +2 -0
  131. data/app/views/admin/atreides/products/edit.html.haml +69 -0
  132. data/app/views/admin/atreides/products/index.html.haml +31 -0
  133. data/app/views/admin/atreides/sessions/new.html.haml +13 -0
  134. data/app/views/admin/atreides/user_sessions/new.html.haml +10 -0
  135. data/app/views/admin/atreides/users/_form.html.haml +19 -0
  136. data/app/views/admin/atreides/users/edit.html.haml +6 -0
  137. data/app/views/admin/atreides/users/index.html.haml +11 -0
  138. data/app/views/admin/atreides/users/new.html.haml +6 -0
  139. data/app/views/admin/atreides/users/show.html.haml +4 -0
  140. data/app/views/admin/atreides/videos/create.js.haml +9 -0
  141. data/app/views/admin/atreides/videos/destroy.js.haml +3 -0
  142. data/app/views/admin/common/_archive_sidebar.html.haml +28 -0
  143. data/app/views/admin/common/_list_table.html.erb +37 -0
  144. data/app/views/admin/common/_list_table_row.html.erb +18 -0
  145. data/app/views/admin/common/_pagination.html.erb +1 -0
  146. data/app/views/admin/common/_search_form.html.erb +6 -0
  147. data/app/views/admin/common/access_denied.html.haml +1 -0
  148. data/app/views/atreides/admin/_content_nav.html.haml +7 -0
  149. data/app/views/atreides/admin_home/_analytics.html.haml +93 -0
  150. data/app/views/atreides/admin_home/_fb_page_likes_analytics_tbody.haml +10 -0
  151. data/app/views/atreides/admin_home/_fb_page_views_analytics_tbody.haml +10 -0
  152. data/app/views/atreides/admin_home/_top_landing_pages_analytics_tbody.haml +14 -0
  153. data/app/views/atreides/admin_home/_top_referrers_analytics_tbody.haml +12 -0
  154. data/app/views/atreides/admin_home/_tweets_analytics_tbody.html.haml +8 -0
  155. data/app/views/atreides/admin_home/_visitors_analytics_tbody.html.haml +12 -0
  156. data/app/views/atreides/admin_home/index.html.haml +57 -0
  157. data/app/views/atreides/admin_home/search.html.haml +11 -0
  158. data/app/views/atreides/admin_home/setup.html.haml +15 -0
  159. data/app/views/atreides/common/_gallery_params.xml.erb +174 -0
  160. data/app/views/atreides/common/slideshow.xml.haml +6 -0
  161. data/app/views/atreides/errors/404.html.haml +10 -0
  162. data/app/views/atreides/errors/500.html.haml +4 -0
  163. data/app/views/atreides/home/index.html.haml +30 -0
  164. data/app/views/atreides/home/index.js.haml +1 -0
  165. data/app/views/atreides/home/robots.txt.erb +5 -0
  166. data/app/views/atreides/home/sitemap.xml.builder +35 -0
  167. data/app/views/atreides/pages/show.html.haml +3 -0
  168. data/app/views/atreides/posts/_archives.html.haml +19 -0
  169. data/app/views/atreides/posts/_featured_posts.html.haml +10 -0
  170. data/app/views/atreides/posts/_list.html.haml +9 -0
  171. data/app/views/atreides/posts/archives.html.haml +3 -0
  172. data/app/views/atreides/posts/archives.js.haml +1 -0
  173. data/app/views/atreides/posts/gallery_params.xml.haml +1 -0
  174. data/app/views/atreides/posts/index.atom.builder +22 -0
  175. data/app/views/atreides/posts/index.html.haml +13 -0
  176. data/app/views/atreides/posts/index.rss.builder +21 -0
  177. data/app/views/atreides/posts/show.html.haml +8 -0
  178. data/app/views/atreides/posts/tagged.html.haml +4 -0
  179. data/app/views/atreides/posts/tagged.js.haml +1 -0
  180. data/app/views/layouts/admin.html.haml +65 -0
  181. data/app/views/layouts/application.html.haml +37 -0
  182. data/app/views/layouts/atreides/application.html.erb +14 -0
  183. data/app/views/layouts/public.html.haml +39 -0
  184. data/config/cucumber.yml +11 -0
  185. data/config/locales/en.yml +207 -0
  186. data/config/locales/fr.yml +199 -0
  187. data/config/routes.rb +119 -0
  188. data/lib/assets/images/atreides/admin/add.png +0 -0
  189. data/lib/assets/images/atreides/admin/add_btn.png +0 -0
  190. data/lib/assets/images/atreides/admin/add_dashboard.png +0 -0
  191. data/lib/assets/images/atreides/admin/add_photo_button_sprite.png +0 -0
  192. data/lib/assets/images/atreides/admin/add_photos_btn.png +0 -0
  193. data/lib/assets/images/atreides/admin/background.png +0 -0
  194. data/lib/assets/images/atreides/admin/calendar.png +0 -0
  195. data/lib/assets/images/atreides/admin/chevron.gif +0 -0
  196. data/lib/assets/images/atreides/admin/chevron_overlay.png +0 -0
  197. data/lib/assets/images/atreides/admin/choose_photos_button_sprite.png +0 -0
  198. data/lib/assets/images/atreides/admin/content_bg.png +0 -0
  199. data/lib/assets/images/atreides/admin/content_bg_edit_form.png +0 -0
  200. data/lib/assets/images/atreides/admin/content_part_break.png +0 -0
  201. data/lib/assets/images/atreides/admin/content_part_drop_target.png +0 -0
  202. data/lib/assets/images/atreides/admin/content_part_icons.png +0 -0
  203. data/lib/assets/images/atreides/admin/content_part_photos.png +0 -0
  204. data/lib/assets/images/atreides/admin/content_part_text.png +0 -0
  205. data/lib/assets/images/atreides/admin/content_part_videos.png +0 -0
  206. data/lib/assets/images/atreides/admin/content_top_edit_form.png +0 -0
  207. data/lib/assets/images/atreides/admin/dashboard-indicator.gif +0 -0
  208. data/lib/assets/images/atreides/admin/dashboard_controls_activity.png +0 -0
  209. data/lib/assets/images/atreides/admin/dashboard_controls_customize.png +0 -0
  210. data/lib/assets/images/atreides/admin/dashboard_controls_drafts.png +0 -0
  211. data/lib/assets/images/atreides/admin/dashboard_controls_open.png +0 -0
  212. data/lib/assets/images/atreides/admin/dashboard_controls_posts.png +0 -0
  213. data/lib/assets/images/atreides/admin/dashboard_controls_queue.png +0 -0
  214. data/lib/assets/images/atreides/admin/dashboard_nav_border.png +0 -0
  215. data/lib/assets/images/atreides/admin/delete_bg.png +0 -0
  216. data/lib/assets/images/atreides/admin/down_arrow.png +0 -0
  217. data/lib/assets/images/atreides/admin/dropbox_big.jpg +0 -0
  218. data/lib/assets/images/atreides/admin/dropbox_btn.png +0 -0
  219. data/lib/assets/images/atreides/admin/dropbox_folder.png +0 -0
  220. data/lib/assets/images/atreides/admin/dropbox_icon.gif +0 -0
  221. data/lib/assets/images/atreides/admin/dropbox_icon.png +0 -0
  222. data/lib/assets/images/atreides/admin/expand_collapse.png +0 -0
  223. data/lib/assets/images/atreides/admin/form_sidebar_divider.png +0 -0
  224. data/lib/assets/images/atreides/admin/grey_hatch_bg.png +0 -0
  225. data/lib/assets/images/atreides/admin/header.png +0 -0
  226. data/lib/assets/images/atreides/admin/icon_dropbox.gif +0 -0
  227. data/lib/assets/images/atreides/admin/icon_home.gif +0 -0
  228. data/lib/assets/images/atreides/admin/input_bg.gif +0 -0
  229. data/lib/assets/images/atreides/admin/large_loading.gif +0 -0
  230. data/lib/assets/images/atreides/admin/new_content_icons.png +0 -0
  231. data/lib/assets/images/atreides/admin/off.png +0 -0
  232. data/lib/assets/images/atreides/admin/on.png +0 -0
  233. data/lib/assets/images/atreides/admin/page_icon.png +0 -0
  234. data/lib/assets/images/atreides/admin/permalink.png +0 -0
  235. data/lib/assets/images/atreides/admin/photos-display-type-gallery.png +0 -0
  236. data/lib/assets/images/atreides/admin/photos-display-type-photos.png +0 -0
  237. data/lib/assets/images/atreides/admin/product.png +0 -0
  238. data/lib/assets/images/atreides/admin/remove.png +0 -0
  239. data/lib/assets/images/atreides/admin/resize.png +0 -0
  240. data/lib/assets/images/atreides/admin/save_btn.png +0 -0
  241. data/lib/assets/images/atreides/admin/search_icon.png +0 -0
  242. data/lib/assets/images/atreides/admin/select_arrows.png +0 -0
  243. data/lib/assets/images/atreides/admin/slider.png +0 -0
  244. data/lib/assets/images/atreides/admin/slider_center.png +0 -0
  245. data/lib/assets/images/atreides/admin/slider_left.png +0 -0
  246. data/lib/assets/images/atreides/admin/slider_right.png +0 -0
  247. data/lib/assets/images/atreides/admin/sprite.png +0 -0
  248. data/lib/assets/images/atreides/admin/upload_btn.png +0 -0
  249. data/lib/assets/images/atreides/admin/video_bg.png +0 -0
  250. data/lib/assets/images/atreides/blank.gif +0 -0
  251. data/lib/assets/images/atreides/closelabel.png +0 -0
  252. data/lib/assets/images/atreides/loading.gif +0 -0
  253. data/lib/assets/images/atreides/sprite.png +0 -0
  254. data/lib/assets/images/atreides/tipsy.gif +0 -0
  255. data/lib/atreides.rb +81 -0
  256. data/lib/atreides/base/aasmstates.rb +117 -0
  257. data/lib/atreides/base/base.rb +40 -0
  258. data/lib/atreides/base/taggable.rb +43 -0
  259. data/lib/atreides/base/validation.rb +23 -0
  260. data/lib/atreides/configuration.rb +61 -0
  261. data/lib/atreides/engine.rb +41 -0
  262. data/lib/atreides/extendable.rb +12 -0
  263. data/lib/atreides/i18n_helpers.rb +65 -0
  264. data/lib/atreides/railties/tasks.rake +68 -0
  265. data/lib/atreides/time_formats.rb +19 -0
  266. data/lib/atreides/validators.rb +15 -0
  267. data/lib/atreides/version.rb +4 -0
  268. data/lib/generators/atreides/USAGE +0 -0
  269. data/lib/generators/atreides/atreides_generator.rb +57 -0
  270. data/lib/generators/templates/Procfile +2 -0
  271. data/lib/generators/templates/add_role_to_users.rb +16 -0
  272. data/lib/generators/templates/add_userid_to_resources.rb +15 -0
  273. data/lib/generators/templates/create_content_parts.rb +66 -0
  274. data/lib/generators/templates/create_features.rb +21 -0
  275. data/lib/generators/templates/create_likes.rb +16 -0
  276. data/lib/generators/templates/create_line_items.rb +21 -0
  277. data/lib/generators/templates/create_links.rb +16 -0
  278. data/lib/generators/templates/create_messages.rb +24 -0
  279. data/lib/generators/templates/create_orders.rb +31 -0
  280. data/lib/generators/templates/create_pages.rb +29 -0
  281. data/lib/generators/templates/create_photos.rb +22 -0
  282. data/lib/generators/templates/create_posts.rb +36 -0
  283. data/lib/generators/templates/create_preferences.rb +14 -0
  284. data/lib/generators/templates/create_products.rb +22 -0
  285. data/lib/generators/templates/create_sessions.rb +16 -0
  286. data/lib/generators/templates/create_sites.rb +35 -0
  287. data/lib/generators/templates/create_sizes.rb +16 -0
  288. data/lib/generators/templates/create_tweets.rb +25 -0
  289. data/lib/generators/templates/create_videos.rb +24 -0
  290. data/lib/generators/templates/create_votes.rb +20 -0
  291. data/lib/generators/templates/delayed_job.rb +5 -0
  292. data/lib/generators/templates/devise_create_users.rb +42 -0
  293. data/lib/generators/templates/em-net-http_override.rb +74 -0
  294. data/lib/generators/templates/initializer.rb +21 -0
  295. data/lib/generators/templates/new_relic.rb +6 -0
  296. data/lib/generators/templates/oembed.yml +63 -0
  297. data/lib/generators/templates/settings.yml +78 -0
  298. data/lib/generators/templates/string_extensions.rb +20 -0
  299. data/lib/generators/templates/unicorn.rb +2 -0
  300. data/lib/tasks/atreides_tasks.rake +4 -0
  301. data/lib/tasks/cucumber.rake +58 -0
  302. data/lib/tasks/tasks.rake +403 -0
  303. data/lib/tasks/yard.rake +18 -0
  304. data/vendor/assets/flash/atreides/player.swf +0 -0
  305. data/vendor/assets/flash/atreides/slideshowpro.swf +0 -0
  306. data/vendor/assets/flash/atreides/swfupload.swf +0 -0
  307. data/vendor/assets/images/atreides/share/aim_16.png +0 -0
  308. data/vendor/assets/images/atreides/share/apple_16.png +0 -0
  309. data/vendor/assets/images/atreides/share/bebo_16.png +0 -0
  310. data/vendor/assets/images/atreides/share/blogger_16.png +0 -0
  311. data/vendor/assets/images/atreides/share/brightkite_16.png +0 -0
  312. data/vendor/assets/images/atreides/share/cargo_16.png +0 -0
  313. data/vendor/assets/images/atreides/share/delicious_16.png +0 -0
  314. data/vendor/assets/images/atreides/share/designfloat_16.png +0 -0
  315. data/vendor/assets/images/atreides/share/designmoo_16.png +0 -0
  316. data/vendor/assets/images/atreides/share/deviantart_16.png +0 -0
  317. data/vendor/assets/images/atreides/share/digg_16.png +0 -0
  318. data/vendor/assets/images/atreides/share/digg_alt_16.png +0 -0
  319. data/vendor/assets/images/atreides/share/dopplr_16.png +0 -0
  320. data/vendor/assets/images/atreides/share/dribbble_16.png +0 -0
  321. data/vendor/assets/images/atreides/share/email_16.png +0 -0
  322. data/vendor/assets/images/atreides/share/ember_16.png +0 -0
  323. data/vendor/assets/images/atreides/share/evernote_16.png +0 -0
  324. data/vendor/assets/images/atreides/share/facebook_16.png +0 -0
  325. data/vendor/assets/images/atreides/share/flickr_16.png +0 -0
  326. data/vendor/assets/images/atreides/share/friendfeed_16.png +0 -0
  327. data/vendor/assets/images/atreides/share/gamespot_16.png +0 -0
  328. data/vendor/assets/images/atreides/share/google_16.png +0 -0
  329. data/vendor/assets/images/atreides/share/google_voice_16.png +0 -0
  330. data/vendor/assets/images/atreides/share/google_wave_16.png +0 -0
  331. data/vendor/assets/images/atreides/share/googletalk_16.png +0 -0
  332. data/vendor/assets/images/atreides/share/gowalla_16.png +0 -0
  333. data/vendor/assets/images/atreides/share/grooveshark_16.png +0 -0
  334. data/vendor/assets/images/atreides/share/ilike_16.png +0 -0
  335. data/vendor/assets/images/atreides/share/komodomedia_azure_16.png +0 -0
  336. data/vendor/assets/images/atreides/share/komodomedia_wood_16.png +0 -0
  337. data/vendor/assets/images/atreides/share/lastfm_16.png +0 -0
  338. data/vendor/assets/images/atreides/share/license.txt +9 -0
  339. data/vendor/assets/images/atreides/share/linkedin_16.png +0 -0
  340. data/vendor/assets/images/atreides/share/mixx_16.png +0 -0
  341. data/vendor/assets/images/atreides/share/mobileme_16.png +0 -0
  342. data/vendor/assets/images/atreides/share/mynameise_16.png +0 -0
  343. data/vendor/assets/images/atreides/share/myspace_16.png +0 -0
  344. data/vendor/assets/images/atreides/share/netvibes_16.png +0 -0
  345. data/vendor/assets/images/atreides/share/newsvine_16.png +0 -0
  346. data/vendor/assets/images/atreides/share/openid_16.png +0 -0
  347. data/vendor/assets/images/atreides/share/orkut_16.png +0 -0
  348. data/vendor/assets/images/atreides/share/pandora_16.png +0 -0
  349. data/vendor/assets/images/atreides/share/paypal_16.png +0 -0
  350. data/vendor/assets/images/atreides/share/picasa_16.png +0 -0
  351. data/vendor/assets/images/atreides/share/plurk_16.png +0 -0
  352. data/vendor/assets/images/atreides/share/posterous_16.png +0 -0
  353. data/vendor/assets/images/atreides/share/qik_16.png +0 -0
  354. data/vendor/assets/images/atreides/share/readernaut_16.png +0 -0
  355. data/vendor/assets/images/atreides/share/reddit_16.png +0 -0
  356. data/vendor/assets/images/atreides/share/roboto_16.png +0 -0
  357. data/vendor/assets/images/atreides/share/rss_16.png +0 -0
  358. data/vendor/assets/images/atreides/share/sharethis_16.png +0 -0
  359. data/vendor/assets/images/atreides/share/skype_16.png +0 -0
  360. data/vendor/assets/images/atreides/share/stumbleupon_16.png +0 -0
  361. data/vendor/assets/images/atreides/share/technorati_16.png +0 -0
  362. data/vendor/assets/images/atreides/share/tumblr_16.png +0 -0
  363. data/vendor/assets/images/atreides/share/twitter_16.png +0 -0
  364. data/vendor/assets/images/atreides/share/viddler_16.png +0 -0
  365. data/vendor/assets/images/atreides/share/vimeo_16.png +0 -0
  366. data/vendor/assets/images/atreides/share/virb_16.png +0 -0
  367. data/vendor/assets/images/atreides/share/windows_16.png +0 -0
  368. data/vendor/assets/images/atreides/share/wordpress_16.png +0 -0
  369. data/vendor/assets/images/atreides/share/xing_16.png +0 -0
  370. data/vendor/assets/images/atreides/share/yahoo_16.png +0 -0
  371. data/vendor/assets/images/atreides/share/yahoobuzz_16.png +0 -0
  372. data/vendor/assets/images/atreides/share/yelp_16.png +0 -0
  373. data/vendor/assets/images/atreides/share/youtube_16.png +0 -0
  374. data/vendor/assets/javascripts/atreides/backbone-0.3.3.js +1100 -0
  375. data/vendor/assets/javascripts/atreides/cufon-yui.js +7 -0
  376. data/vendor/assets/javascripts/atreides/facebox.js +309 -0
  377. data/vendor/assets/javascripts/atreides/fileuploader.js +1250 -0
  378. data/vendor/assets/javascripts/atreides/g.raphael-min.js +7 -0
  379. data/vendor/assets/javascripts/atreides/galleria.js +2 -0
  380. data/vendor/assets/javascripts/atreides/galleria/src/galleria.js +3816 -0
  381. data/vendor/assets/javascripts/atreides/galleria/src/plugins/galleria.flickr.js +221 -0
  382. data/vendor/assets/javascripts/atreides/galleria/src/plugins/galleria.history.js +602 -0
  383. data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/classic-loader.gif +0 -0
  384. data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/classic-map.png +0 -0
  385. data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/galleria.classic.css +202 -0
  386. data/vendor/assets/javascripts/atreides/galleria/src/themes/classic/galleria.classic.js +92 -0
  387. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/b.png +0 -0
  388. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/down.gif +0 -0
  389. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/fix.gif +0 -0
  390. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/fullscreen-demo.html +34 -0
  391. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/galleria.fullscreen.css +46 -0
  392. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/galleria.fullscreen.js +193 -0
  393. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/i.png +0 -0
  394. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/l.gif +0 -0
  395. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/l2.png +0 -0
  396. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/loader.gif +0 -0
  397. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/n.gif +0 -0
  398. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/p.gif +0 -0
  399. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/r.gif +0 -0
  400. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/r2.png +0 -0
  401. data/vendor/assets/javascripts/atreides/galleria/src/themes/fullscreen/up.gif +0 -0
  402. data/vendor/assets/javascripts/atreides/jquery-1.7.js +4 -0
  403. data/vendor/assets/javascripts/atreides/jquery-ui.js +11603 -0
  404. data/vendor/assets/javascripts/atreides/jquery.autogrow.js +132 -0
  405. data/vendor/assets/javascripts/atreides/jquery.cookie.js +96 -0
  406. data/vendor/assets/javascripts/atreides/jquery.countdown.js +759 -0
  407. data/vendor/assets/javascripts/atreides/jquery.cycle.js +918 -0
  408. data/vendor/assets/javascripts/atreides/jquery.easing.1.3.js +205 -0
  409. data/vendor/assets/javascripts/atreides/jquery.flash.js +288 -0
  410. data/vendor/assets/javascripts/atreides/jquery.iphone-checkboxes.js +214 -0
  411. data/vendor/assets/javascripts/atreides/jquery.jBreadCrumb.1.1.js +240 -0
  412. data/vendor/assets/javascripts/atreides/jquery.multipleselectbox-min.js +15 -0
  413. data/vendor/assets/javascripts/atreides/jquery.multipleselectbox.js +446 -0
  414. data/vendor/assets/javascripts/atreides/jquery.swfupload.js +64 -0
  415. data/vendor/assets/javascripts/atreides/jquery.tipsy.js +104 -0
  416. data/vendor/assets/javascripts/atreides/jquery.uniform.js +461 -0
  417. data/vendor/assets/javascripts/atreides/jquery_ujs.js +316 -0
  418. data/vendor/assets/javascripts/atreides/jtags.js +125 -0
  419. data/vendor/assets/javascripts/atreides/raphael-min.js +7 -0
  420. data/vendor/assets/javascripts/atreides/raphael.analytics.js +205 -0
  421. data/vendor/assets/javascripts/atreides/raphael.path.methods.js +53 -0
  422. data/vendor/assets/javascripts/atreides/raphael.pie.js +44 -0
  423. data/vendor/assets/javascripts/atreides/sifr.js +18 -0
  424. data/vendor/assets/javascripts/atreides/swfobject.js +4 -0
  425. data/vendor/assets/javascripts/atreides/swfupload/handlers.js +290 -0
  426. data/vendor/assets/javascripts/atreides/swfupload/swfupload.cookies.js +53 -0
  427. data/vendor/assets/javascripts/atreides/swfupload/swfupload.js +980 -0
  428. data/vendor/assets/javascripts/atreides/swfupload/swfupload.queue.js +98 -0
  429. data/vendor/assets/javascripts/atreides/swfupload/swfupload.speed.js +342 -0
  430. data/vendor/assets/javascripts/atreides/swfupload/swfupload.swfobject.js +111 -0
  431. data/vendor/assets/javascripts/atreides/underscore-1.1.6.js +807 -0
  432. data/vendor/assets/stylesheets/atreides/admin_grid.css +258 -0
  433. data/vendor/assets/stylesheets/atreides/facebox.css +80 -0
  434. data/vendor/assets/stylesheets/atreides/formtastic.css +144 -0
  435. data/vendor/assets/stylesheets/atreides/galleria.css +24 -0
  436. data/vendor/assets/stylesheets/atreides/ie.css +35 -0
  437. data/vendor/assets/stylesheets/atreides/images/bg_fallback.png +0 -0
  438. data/vendor/assets/stylesheets/atreides/images/icon_sprite.png +0 -0
  439. data/vendor/assets/stylesheets/atreides/images/progress_bar.gif +0 -0
  440. data/vendor/assets/stylesheets/atreides/images/slider_handles.png +0 -0
  441. data/vendor/assets/stylesheets/atreides/images/ui-icons_222222_256x240.png +0 -0
  442. data/vendor/assets/stylesheets/atreides/images/ui-icons_454545_256x240.png +0 -0
  443. data/vendor/assets/stylesheets/atreides/jquery-ui.css +738 -0
  444. data/vendor/assets/stylesheets/atreides/multipleselectbox.css +33 -0
  445. data/vendor/assets/stylesheets/atreides/print.css +29 -0
  446. data/vendor/assets/stylesheets/atreides/public_grid.css +258 -0
  447. data/vendor/assets/stylesheets/atreides/tipsy.css +7 -0
  448. data/vendor/assets/stylesheets/atreides/uniform.default.css +476 -0
  449. metadata +1566 -0
@@ -0,0 +1,221 @@
1
+ /*!
2
+ * Galleria Flickr Plugin v 1.2
3
+ * http://galleria.aino.se
4
+ *
5
+ * Copyright 2010, Aino
6
+ * Licensed under the MIT license.
7
+ */
8
+
9
+ (function($) {
10
+
11
+ // If no Galleria, fail silently
12
+ var G = window.Galleria;
13
+ if (typeof G == 'undefined') {
14
+ return;
15
+ }
16
+
17
+ var F = G.Flickr = function(api_key) {
18
+
19
+ if (!api_key) {
20
+ G.raise('No API key found');
21
+ return;
22
+ }
23
+
24
+ this.callback = function() {};
25
+
26
+ // The required API key
27
+ this.api_key = api_key;
28
+
29
+ this.options = {
30
+ max: 40, // photos to return
31
+ size: 'big', // photo size ( small,medium,big,original )
32
+ sort: 'interestingness-desc', // sort option ( date-posted-asc, date-posted-desc, date-taken-asc, date-taken-desc, interestingness-desc, interestingness-asc, relevance )
33
+ description: false // set this to true to get description as caption
34
+ };
35
+ };
36
+
37
+ F.prototype = {
38
+
39
+ // find any photos by search string
40
+ search: function( str ) {
41
+ this._set(arguments);
42
+ return this._find({
43
+ text: str
44
+ });
45
+ },
46
+
47
+ // find any photos by tagname
48
+ getTags: function( str ) {
49
+ this._set(arguments);
50
+ return this._find({
51
+ tags: str
52
+ });
53
+ },
54
+
55
+ // get photos from a user
56
+ getUser: function(username) {
57
+ var args = arguments;
58
+ return this._call({
59
+ method: 'flickr.urls.lookupUser',
60
+ url: 'flickr.com/photos/' + username
61
+ }, function(data) {
62
+ this._set(args);
63
+ this._find({
64
+ user_id: data.user.id,
65
+ method: 'flickr.people.getPublicPhotos'
66
+ });
67
+ });
68
+ },
69
+
70
+ // get photos from a photoset
71
+ getSet: function(photoset_id) {
72
+ this._set(arguments);
73
+ return this._find({
74
+ photoset_id: photoset_id,
75
+ method: 'flickr.photosets.getPhotos'
76
+ });
77
+ },
78
+
79
+ // get photos from a gallery
80
+ getGallery: function(gallery_id) {
81
+ this._set(arguments);
82
+ return this._find({
83
+ gallery_id: gallery_id,
84
+ method: 'flickr.galleries.getPhotos'
85
+ });
86
+ },
87
+
88
+ // search for groups by search string, returns an array with group objects
89
+ // use getGroup to get the photos from a group ID
90
+ // added in 1.2
91
+ searchGroup: function(str, callback) {
92
+ callback = callback || function() {};
93
+ this._call({
94
+ text: str,
95
+ method: 'flickr.groups.search'
96
+ }, function(data) {
97
+ callback.call( window, data.groups.group);
98
+ });
99
+ return this;
100
+ },
101
+
102
+ // get photos from a group ID
103
+ // added in 1.2
104
+ getGroup: function ( group_id ) {
105
+ this._set( arguments );
106
+ return this._find({
107
+ group_id: group_id,
108
+ method: 'flickr.groups.pools.getPhotos'
109
+ });
110
+ },
111
+
112
+ // set options
113
+ setOptions: function( options ) {
114
+ $.extend(this.options, options);
115
+ return this;
116
+ },
117
+
118
+ // shortens the arguments and applies options
119
+ // private
120
+ _set: function( args ) {
121
+
122
+ args = Array.prototype.slice.call(args);
123
+
124
+ this.callback = args[2] || args[1];
125
+
126
+ if (typeof args[1] == 'object') {
127
+ this.setOptions(args[1]);
128
+ }
129
+
130
+ return this;
131
+ },
132
+
133
+ // call Flickr and raise errors
134
+ _call: function( params, callback ) {
135
+
136
+ var url = 'http://api.flickr.com/services/rest/?';
137
+
138
+ var scope = this;
139
+
140
+ params = $.extend({
141
+ format : 'json',
142
+ jsoncallback : '?',
143
+ api_key: this.api_key
144
+ }, params );
145
+
146
+ $.each(params, function( key, value ) {
147
+ url += '&' + key + '=' + value;
148
+ });
149
+
150
+ $.getJSON(url, function(data) {
151
+ if ( data.stat == 'ok' ) {
152
+ callback.call(scope, data);
153
+ } else {
154
+ Galleria.raise( data.code.toString() + ' ' + data.stat + ': ' + data.message );
155
+ }
156
+ });
157
+ return scope;
158
+ },
159
+
160
+ // ask flickr for photos, parse the result and call the callback with the galleria-ready data array
161
+ _find: function(params) {
162
+
163
+ params = $.extend({
164
+ method: 'flickr.photos.search',
165
+ extras: 'url_t, url_m, url_o, url_s, url_l, description',
166
+ sort: this.options.sort
167
+ }, params );
168
+
169
+ return this._call(params, function(data) {
170
+
171
+ var gallery = [],
172
+ photos = data.photos ? data.photos.photo : data.photoset.photo,
173
+ len = Math.min(this.options.max, photos.length);
174
+
175
+ for ( var i=0; i<len; i++ ) {
176
+ var photo = photos[i],
177
+ img = photo.url_m;
178
+
179
+ switch(this.options.size) {
180
+ case 'small':
181
+ img = photo.url_s;
182
+ break;
183
+
184
+ case ( 'big' || 'large' ):
185
+ if ( photo.url_l ) {
186
+ img = photo.url_l;
187
+ } else if ( parseInt( photo.width_o ) > 1280 ) {
188
+ img = 'http://farm'+photo['farm']+'.static.flickr.com/'+photo['server']+
189
+ '/'+photo['id']+'_' + photo['secret'] + '_b.jpg';
190
+
191
+ } else if( photo.url_o ) {
192
+ img = photo.url_o;
193
+ }
194
+ break;
195
+
196
+ case 'original':
197
+ if( photo.url_o ) {
198
+ img = photo.url_o;
199
+ }
200
+ break;
201
+ }
202
+ var item = {
203
+ thumb: photos[i].url_t,
204
+ image: img,
205
+ title: photos[i].title,
206
+ description: this.options.description && photos[i].description ? photos[i].description._content : ''
207
+ };
208
+ gallery.push( item );
209
+ }
210
+ this.callback.call( this, gallery );
211
+ });
212
+ }
213
+ };
214
+
215
+ // Static
216
+ // TODO: fetch any flickr feed ( YQL integration )
217
+ F.getFeed = function(type, params) {
218
+
219
+ };
220
+
221
+ })( jQuery );
@@ -0,0 +1,602 @@
1
+ /*!
2
+ * Galleria History Plugin v 1.0
3
+ * http://galleria.aino.se
4
+ *
5
+ * Original Copyright (c) 2009-2010 Rostislav Hristov
6
+ * Modified by Aino (c) 2010
7
+ *
8
+ * Dual licensed under the MIT or GPL Version 2 licenses.
9
+ * http://jquery.org/license
10
+ *
11
+ */
12
+ (function($) {
13
+
14
+ var G = window.Galleria;
15
+ if (typeof G == 'undefined') {
16
+ return;
17
+ }
18
+
19
+ G.History = (function () {
20
+
21
+ var _trigger = function(name) {
22
+ $(G.History).trigger(
23
+ $.extend($.Event(name),
24
+ (function() {
25
+ var parameters = {},
26
+ parameterNames = G.History.parameterNames();
27
+ for (var i = 0, l = parameterNames.length; i < l; i++) {
28
+ parameters[parameterNames[i]] = G.History.parameter(parameterNames[i]);
29
+ }
30
+ return {
31
+ value: G.History.value(),
32
+ path: G.History.path(),
33
+ pathNames: G.History.pathNames(),
34
+ parameterNames: parameterNames,
35
+ parameters: parameters,
36
+ queryString: G.History.queryString()
37
+ };
38
+ }).call(G.History)
39
+ )
40
+ );
41
+ },
42
+ _bind = function(value, data, fn) {
43
+ fn = fn || function(){};
44
+ $(G.History).bind(value, data, fn);
45
+ return G.History;
46
+ },
47
+ _hash = function() {
48
+ var index = _l.href.indexOf('#');
49
+ return index != -1 ? _ec(_dc(_crawl(_l.href.substr(index + 1), FALSE))) : '';
50
+ },
51
+ _window = function() {
52
+ try {
53
+ return top.document !== undefined ? top : window;
54
+ } catch (e) {
55
+ return window;
56
+ }
57
+ },
58
+ _js = function() {
59
+ return 'javascript';
60
+ },
61
+ _strict = function(value, force) {
62
+ if (_opts.strict) {
63
+ value = force ? (value.substr(0, 1) != '/' ? '/' + value : value) : (value == '' ? '/' : value);
64
+ }
65
+ return value;
66
+ },
67
+ _local = function(value, direction) {
68
+ return (_msie && _l.protocol == 'file:') ?
69
+ (direction ? _value.replace(/\?/, '%3F') : _value.replace(/%253F/, '?')) : value;
70
+ },
71
+ _crawl = function(value, direction) {
72
+ if (_opts.crawlable && direction) {
73
+ return (value != '' ? '!' : '') + value;
74
+ }
75
+ return value.replace(/^\!/, '');
76
+ },
77
+ _cssint = function(el, value) {
78
+ return parseInt(el.css(value), 10);
79
+ },
80
+ _search = function(el) {
81
+ var url, s;
82
+ for (var i = 0, l = el.childNodes.length; i < l; i++) {
83
+ if (el.childNodes[i].src) {
84
+ url = String(el.childNodes[i].src);
85
+ }
86
+ s = _search(el.childNodes[i]);
87
+ if (s) {
88
+ url = s;
89
+ }
90
+ }
91
+ return url;
92
+ },
93
+ _listen = function() {
94
+ if (!_silent) {
95
+ var hash = _hash(),
96
+ diff = _value != hash;
97
+ if (_safari && _version < 523) {
98
+ if (_length != _h.length) {
99
+ _length = _h.length;
100
+ if (typeof _stack[_length - 1] != UNDEFINED) {
101
+ _value = _stack[_length - 1];
102
+ }
103
+ _update(FALSE);
104
+ }
105
+ } else if (_msie && _version < 7 && diff) {
106
+ _l.reload();
107
+ } else if (diff) {
108
+ _value = hash;
109
+ _update(FALSE);
110
+ }
111
+ }
112
+ },
113
+ _update = function(internal) {
114
+ _trigger(CHANGE);
115
+ _trigger(internal ? INTERNAL_CHANGE : EXTERNAL_CHANGE);
116
+ _st(_track, 10);
117
+ },
118
+ _track = function() {
119
+ var value = (_l.pathname + (/\/$/.test(_l.pathname) ? '' : '/') +
120
+ (G.History ? G.History.value() : '')).replace(/\/\//, '/').replace(/^\/$/, ''),
121
+ fn = _t[_opts.tracker];
122
+ if (typeof fn == FUNCTION) {
123
+ fn(value);
124
+ } else if (typeof urchinTracker == FUNCTION) {
125
+ urchinTracker(value);
126
+ } else if (typeof pageTracker != UNDEFINED && typeof pageTracker._trackPageview == FUNCTION) {
127
+ pageTracker._trackPageview(value);
128
+ } else if (typeof _gaq != UNDEFINED && typeof _gaq.push == FUNCTION) {
129
+ _gaq.push(['_trackPageview', value]);
130
+ }
131
+ },
132
+ _html = function() {
133
+ var doc = _frame.contentWindow.document;
134
+ doc.open();
135
+ doc.write('<html><head><title>' + _d.title + '</title><script>var ' + ID + ' = "' + _hash() + '";</' + 'script></head></html>');
136
+ doc.close();
137
+ },
138
+ _load = function() {
139
+ if (!_loaded) {
140
+ _loaded = TRUE;
141
+ var body = $('body').ajaxComplete(function() {
142
+ _unescape.call(this);
143
+ }).trigger('ajaxComplete');
144
+ if (_opts.wrap) {
145
+ var wrap = $('body > *')
146
+ .wrapAll('<div style="padding:' +
147
+ (_cssint(body, 'marginTop') + _cssint(body, 'paddingTop')) + 'px ' +
148
+ (_cssint(body, 'marginRight') + _cssint(body, 'paddingRight')) + 'px ' +
149
+ (_cssint(body, 'marginBottom') + _cssint(body, 'paddingBottom')) + 'px ' +
150
+ (_cssint(body, 'marginLeft') + _cssint(body, 'paddingLeft')) + 'px;" />')
151
+ .parent()
152
+ .wrap('<div id="' + ID + '" style="height:100%; overflow:auto;' +
153
+ (_safari ? (window.statusbar.visible && !/chrome/i.test(_agent) ? '' : ' resize:both;') : '') + '" />');
154
+ $('html, body')
155
+ .css({
156
+ height: '100%',
157
+ margin: 0,
158
+ padding: 0,
159
+ overflow: 'hidden'
160
+ });
161
+ if (_safari) {
162
+ $('<style type="text/css" />')
163
+ .appendTo('head')
164
+ .text('#' + ID + '::-webkit-resizer { background-color: #fff; }');
165
+ }
166
+ }
167
+ if (_msie && _version < 8) {
168
+ var frameset = _d.getElementsByTagName('frameset')[0];
169
+ _frame = _d.createElement((frameset ? '' : 'i') + 'frame');
170
+ if (frameset) {
171
+ frameset.insertAdjacentElement('beforeEnd', _frame);
172
+ frameset[frameset.cols ? 'cols' : 'rows'] += ',0';
173
+ _frame.src = _js() + ':' + FALSE;
174
+ _frame.noResize = TRUE;
175
+ _frame.frameBorder = _frame.frameSpacing = 0;
176
+ } else {
177
+ _frame.src = _js() + ':' + FALSE;
178
+ _frame.style.display = 'none';
179
+ _d.body.insertAdjacentElement('afterBegin', _frame);
180
+ }
181
+ _st(function() {
182
+ $(_frame).bind('load', function() {
183
+ var win = _frame.contentWindow;
184
+ var src = win.location.href;
185
+ _value = (typeof win[ID] != UNDEFINED ? win[ID] : '');
186
+ if (_value != _hash()) {
187
+ _update(FALSE);
188
+ _l.hash = _local(_crawl(_value, TRUE), TRUE);
189
+ }
190
+ });
191
+ if (typeof _frame.contentWindow[ID] == UNDEFINED) {
192
+ _html();
193
+ }
194
+ }, 50);
195
+ } else if (_safari) {
196
+ if (_version < 418) {
197
+ $(_d.body).append('<form id="' + ID + '" style="position:absolute;top:-9999px;" method="get"></form>');
198
+ _form = _d.getElementById(ID);
199
+ }
200
+ if (typeof _l[ID] == UNDEFINED) {
201
+ _l[ID] = {};
202
+ }
203
+ if (typeof _l[ID][_l.pathname] != UNDEFINED) {
204
+ _stack = _l[ID][_l.pathname].split(',');
205
+ }
206
+ }
207
+
208
+ _st(function() {
209
+ _trigger('init');
210
+ _update(FALSE);
211
+ }, 1);
212
+
213
+ if ((_msie && _version > 7) || (!_msie && ('on' + HASH_CHANGE) in _t)) {
214
+ if (_t.addEventListener) {
215
+ _t.addEventListener(HASH_CHANGE, _listen, false);
216
+ } else if (_t.attachEvent) {
217
+ _t.attachEvent('on' + HASH_CHANGE, _listen);
218
+ }
219
+ } else {
220
+ _si(_listen, 50);
221
+ }
222
+
223
+ //$('a').filter('[rel*=address:]').address();
224
+ }
225
+ },
226
+ _unload = function() {
227
+ if (_t.removeEventListener) {
228
+ _t.removeEventListener(HASH_CHANGE, _listen, false);
229
+ } else if (_t.detachEvent) {
230
+ _t.detachEvent('on' + HASH_CHANGE, _listen);
231
+ }
232
+ },
233
+ _unescape = function() {
234
+ var base = _l.pathname.replace(/\/$/, ''),
235
+ fragment = '_escaped_fragment_';
236
+ if ($('body').html().indexOf(fragment) != -1) {
237
+ $('a[href]:not([href^=http])', this).each(function() {
238
+ var href = $(this).attr('href').replace(new RegExp(base + '/?$'), '');
239
+ if (href == '' || href.indexOf(fragment) != -1) {
240
+ $(this).attr('href', '#' + decodeURIComponent(href.replace(new RegExp('/(.*)\\?' + fragment + '=(.*)$'), '!$2')));
241
+ }
242
+ });
243
+ }
244
+ },
245
+ ID = 'jQueryAddress',
246
+ FUNCTION = 'function',
247
+ UNDEFINED = 'undefined',
248
+ HASH_CHANGE = 'hashchange',
249
+ INIT = 'init',
250
+ CHANGE = 'change',
251
+ INTERNAL_CHANGE = 'internalChange',
252
+ EXTERNAL_CHANGE = 'externalChange',
253
+ TRUE = true,
254
+ FALSE = false,
255
+ _opts = {
256
+ autoUpdate: TRUE,
257
+ crawlable: FALSE,
258
+ history: TRUE,
259
+ strict: TRUE,
260
+ wrap: FALSE
261
+ },
262
+ _browser = $.browser,
263
+ _version = parseFloat($.browser.version),
264
+ _mozilla = _browser.mozilla,
265
+ _msie = _browser.msie,
266
+ _opera = _browser.opera,
267
+ _safari = _browser.safari,
268
+ _supported = FALSE,
269
+ _t = _window(),
270
+ _d = _t.document,
271
+ _h = _t.history,
272
+ _l = _t.location,
273
+ _si = setInterval,
274
+ _st = setTimeout,
275
+ _dc = decodeURI,
276
+ _ec = encodeURI,
277
+ _agent = navigator.userAgent,
278
+ _frame,
279
+ _form,
280
+ _url = _search(document),
281
+ _qi = _url ? _url.indexOf('?') : -1,
282
+ _title = _d.title,
283
+ _length = _h.length,
284
+ _silent = FALSE,
285
+ _loaded = FALSE,
286
+ _justset = TRUE,
287
+ _juststart = TRUE,
288
+ _updating = FALSE,
289
+ _stack = [],
290
+ _listeners = {},
291
+ _value = _hash();
292
+
293
+ if (_msie) {
294
+ _version = parseFloat(_agent.substr(_agent.indexOf('MSIE') + 4));
295
+ if (_d.documentMode && _d.documentMode != _version) {
296
+ _version = _d.documentMode != 8 ? 7 : 8;
297
+ }
298
+ $(document).bind('propertychange', function() {
299
+ if (_d.title != _title && _d.title.indexOf('#' + _hash()) != -1) {
300
+ _d.title = _title;
301
+ }
302
+ });
303
+ }
304
+
305
+ _supported =
306
+ (_mozilla && _version >= 1) ||
307
+ (_msie && _version >= 6) ||
308
+ (_opera && _version >= 9.5) ||
309
+ (_safari && _version >= 312);
310
+
311
+ if (_supported) {
312
+
313
+ for (var i = 1; i < _length; i++) {
314
+ _stack.push('');
315
+ }
316
+
317
+ _stack.push(_value);
318
+
319
+ if (_msie && _l.hash != _value) {
320
+ _l.hash = '#' + _local(_crawl(_value, TRUE), TRUE);
321
+ }
322
+
323
+ if (_opera) {
324
+ history.navigationMode = 'compatible';
325
+ }
326
+
327
+ if (_url && _qi != -1) {
328
+ var param, params = _url.substr(_qi + 1).split('&');
329
+ for (i = 0; i < params.length; i++) {
330
+ param = params[i].split('=');
331
+ if (/^(autoUpdate|crawlable|history|strict|wrap)$/.test(param[0])) {
332
+ _opts[param[0]] = (isNaN(param[1]) ? /^(true|yes)$/i.test(param[1]) : (parseInt(param[1], 10) !== 0));
333
+ }
334
+ if (/^tracker$/.test(param[0])) {
335
+ _opts[param[0]] = param[1];
336
+ }
337
+ }
338
+ }
339
+
340
+ if (document.readyState == 'complete') {
341
+ _load();
342
+ }
343
+ $(_load);
344
+ $(window).bind('unload', _unload);
345
+
346
+ } else if ((!_supported && _hash() != '') ||
347
+ (_safari && _version < 418 && _hash() != '' && _l.search != '')) {
348
+ _d.open();
349
+ _d.write('<html><head><meta http-equiv="refresh" content="0;url=' +
350
+ encodeURI(_l.href.substr(0, _l.href.indexOf('#'))) + '" /></head></html>');
351
+ _d.close();
352
+ } else {
353
+ _track();
354
+ }
355
+
356
+ return {
357
+ bind: function(type, data, fn) {
358
+ return _bind(type, data, fn);
359
+ },
360
+ init: function(fn) {
361
+ return _bind(INIT, fn);
362
+ },
363
+ change: function(fn) {
364
+ return _bind(CHANGE, fn);
365
+ },
366
+ internalChange: function(fn) {
367
+ return _bind(INTERNAL_CHANGE, fn);
368
+ },
369
+ externalChange: function(fn) {
370
+ return _bind(EXTERNAL_CHANGE, fn);
371
+ },
372
+ baseURL: function() {
373
+ var url = _l.href;
374
+ if (url.indexOf('#') != -1) {
375
+ url = url.substr(0, url.indexOf('#'));
376
+ }
377
+ if (/\/$/.test(url)) {
378
+ url = url.substr(0, url.length - 1);
379
+ }
380
+ return url;
381
+ },
382
+ autoUpdate: function(value) {
383
+ if (value !== undefined) {
384
+ _opts.autoUpdate = value;
385
+ return this;
386
+ }
387
+ return _opts.autoUpdate;
388
+ },
389
+ crawlable: function(value) {
390
+ if (value !== undefined) {
391
+ _opts.crawlable = value;
392
+ return this;
393
+ }
394
+ return _opts.crawlable;
395
+ },
396
+ history: function(value) {
397
+ if (value !== undefined) {
398
+ _opts.history = value;
399
+ return this;
400
+ }
401
+ return _opts.history;
402
+ },
403
+ strict: function(value) {
404
+ if (value !== undefined) {
405
+ _opts.strict = value;
406
+ return this;
407
+ }
408
+ return _opts.strict;
409
+ },
410
+ tracker: function(value) {
411
+ if (value !== undefined) {
412
+ _opts.tracker = value;
413
+ return this;
414
+ }
415
+ return _opts.tracker;
416
+ },
417
+ wrap: function(value) {
418
+ if (value !== undefined) {
419
+ _opts.wrap = value;
420
+ return this;
421
+ }
422
+ return _opts.wrap;
423
+ },
424
+ update: function() {
425
+ _updating = TRUE;
426
+ this.value(_value);
427
+ _updating = FALSE;
428
+ return this;
429
+ },
430
+ title: function(value) {
431
+ if (value !== undefined) {
432
+ value = _dc(value);
433
+ _st(function() {
434
+ _title = _d.title = value;
435
+ if (_juststart && _frame && _frame.contentWindow && _frame.contentWindow.document) {
436
+ _frame.contentWindow.document.title = value;
437
+ _juststart = FALSE;
438
+ }
439
+ if (!_justset && _mozilla) {
440
+ _l.replace(_l.href.indexOf('#') != -1 ? _l.href : _l.href + '#');
441
+ }
442
+ _justset = FALSE;
443
+ }, 50);
444
+ return this;
445
+ }
446
+ return _d.title;
447
+ },
448
+ value: function(value) {
449
+ if (value !== undefined) {
450
+ value = _ec(_dc(_strict(value, TRUE)));
451
+ if (value == '/') {
452
+ value = '';
453
+ }
454
+ if (_value == value && !_updating) {
455
+ return;
456
+ }
457
+ _justset = TRUE;
458
+ _value = value;
459
+ if (_opts.autoUpdate || _updating) {
460
+ _silent = TRUE;
461
+ _update(TRUE);
462
+ _stack[_h.length] = _value;
463
+ if (_safari) {
464
+ if (_opts.history) {
465
+ _l[ID][_l.pathname] = _stack.toString();
466
+ _length = _h.length + 1;
467
+ if (_version < 418) {
468
+ if (_l.search == '') {
469
+ _form.action = '#' + _crawl(_value, TRUE);
470
+ _form.submit();
471
+ }
472
+ } else if (_version < 523 || _value == '') {
473
+ var evt = _d.createEvent('MouseEvents');
474
+ evt.initEvent('click', TRUE, TRUE);
475
+ var anchor = _d.createElement('a');
476
+ anchor.href = '#' + _crawl(_value, TRUE);
477
+ anchor.dispatchEvent(evt);
478
+ } else {
479
+ _l.hash = '#' + _crawl(_value, TRUE);
480
+ }
481
+ } else {
482
+ _l.replace('#' + _crawl(_value, TRUE));
483
+ }
484
+ } else if (_value != _hash()) {
485
+ if (_opts.history) {
486
+ _l.hash = '#' + _local(_crawl(_value, TRUE), TRUE);
487
+ } else {
488
+ _l.replace('#' + _crawl(_value, TRUE));
489
+ }
490
+ }
491
+ if ((_msie && _version < 8) && _opts.history) {
492
+ _st(_html, 50);
493
+ }
494
+ if (_safari) {
495
+ _st(function(){ _silent = FALSE; }, 1);
496
+ } else {
497
+ _silent = FALSE;
498
+ }
499
+ }
500
+ return this;
501
+ }
502
+ if (!_supported) {
503
+ return null;
504
+ }
505
+ return _dc(_strict(_local(_value, FALSE), FALSE));
506
+ },
507
+ path: function(value) {
508
+ if (value !== undefined) {
509
+ var qs = this.queryString(),
510
+ hash = this.hash();
511
+ this.value(value + (qs ? '?' + qs : '') + (hash ? '#' + hash : ''));
512
+ return this;
513
+ }
514
+ return this.value().split('#')[0].split('?')[0];
515
+ },
516
+ queryString: function(value) {
517
+ if (value !== undefined) {
518
+ var hash = this.hash();
519
+ this.value(this.path() + (value ? '?' + value : '') + (hash ? '#' + hash : ''));
520
+ return this;
521
+ }
522
+ var arr = this.value().split('?');
523
+ return arr.slice(1, arr.length).join('?').split('#')[0];
524
+ },
525
+ parameter: function(name, value, append) {
526
+ var i, params;
527
+ if (value !== undefined) {
528
+ var names = this.parameterNames();
529
+ params = [];
530
+ for (i = 0; i < names.length; i++) {
531
+ var n = names[i],
532
+ v = this.parameter(n);
533
+ if (typeof v == 'string') {
534
+ v = [v];
535
+ }
536
+ if (n == name) {
537
+ v = (value === null || value === '') ? [] :
538
+ (append ? v.concat([value]) : [value]);
539
+ }
540
+ for (var j = 0; j < v.length; j++) {
541
+ params.push(n + '=' + v[j]);
542
+ }
543
+ }
544
+ if ($.inArray(name, names) == -1 && value !== null && value !== '') {
545
+ params.push(name + '=' + value);
546
+ }
547
+ this.queryString(params.join('&'));
548
+ return this;
549
+ }
550
+ value = this.queryString();
551
+ if (value) {
552
+ params = value.split('&');
553
+ var r = [];
554
+ for (i = 0; i < params.length; i++) {
555
+ var p = params[i].split('=');
556
+ if (p[0] == name) {
557
+ r.push(p[1]);
558
+ }
559
+ }
560
+ if (r.length !== 0) {
561
+ return r.length != 1 ? r : r[0];
562
+ }
563
+ }
564
+ },
565
+ pathNames: function() {
566
+ var path = this.path(),
567
+ names = path.replace(/\/{2,9}/g, '/').split('/');
568
+ if (path.substr(0, 1) == '/' || path.length === 0) {
569
+ names.splice(0, 1);
570
+ }
571
+ if (path.substr(path.length - 1, 1) == '/') {
572
+ names.splice(names.length - 1, 1);
573
+ }
574
+ return names;
575
+ },
576
+ parameterNames: function() {
577
+ var qs = this.queryString(),
578
+ names = [];
579
+ if (qs && qs.indexOf('=') != -1) {
580
+ var params = qs.split('&');
581
+ for (var i = 0; i < params.length; i++) {
582
+ var name = params[i].split('=')[0];
583
+ if ($.inArray(name, names) == -1) {
584
+ names.push(name);
585
+ }
586
+ }
587
+ }
588
+ return names;
589
+ },
590
+ hash: function(value) {
591
+ if (value !== undefined) {
592
+ this.value(this.value().split('#')[0] + (value ? '#' + value : ''));
593
+ return this;
594
+ }
595
+ var arr = this.value().split('#');
596
+ return arr.slice(1, arr.length).join('#');
597
+ }
598
+ };
599
+
600
+ })();
601
+
602
+ }(jQuery));