From 0c61aaf60439de6a2d99c839cf98a220d8465d73 Mon Sep 17 00:00:00 2001 From: Dan Barber Date: Fri, 8 Oct 2010 05:51:47 -0400 Subject: [PATCH] Another nameless commit. --- .DS_Store | Bin 6148 -> 6148 bytes app/controllers/.photos_controller.rb.swp | Bin 12288 -> 12288 bytes app/controllers/.photos_controller.rb.un~ | Bin 2659 -> 3959 bytes app/controllers/photos_controller.rb | 4 + app/models/.photo.rb.swp | Bin 12288 -> 12288 bytes app/models/.photo.rb.un~ | Bin 11253 -> 17270 bytes app/models/photo.rb | 9 +- app/views/layouts/.photos.html.erb.swp | Bin 0 -> 12288 bytes app/views/layouts/.photos.html.erb.un~ | Bin 0 -> 33576 bytes app/views/layouts/photos.html.erb | 26 + app/views/photos/.index.html.erb.swp | Bin 0 -> 12288 bytes app/views/photos/.index.html.erb.un~ | Bin 0 -> 10376 bytes app/views/photos/.new.html.erb.swp | Bin 12288 -> 12288 bytes app/views/photos/.new.html.erb.un~ | Bin 13012 -> 19410 bytes app/views/photos/.show.html.erb.swp | Bin 12288 -> 12288 bytes app/views/photos/.show.html.erb.un~ | Bin 946 -> 17124 bytes app/views/photos/index.html.erb | 5 + app/views/photos/new.html.erb | 2 +- app/views/photos/show.html.erb | 2 +- db/development.sqlite3 | Bin 12288 -> 12288 bytes .../.20101006095457_create_photos.rb.swp | Bin 12288 -> 12288 bytes .../.20101006095457_create_photos.rb.un~ | Bin 2758 -> 6734 bytes db/migrate/20101006095457_create_photos.rb | 11 +- db/schema.rb | 11 +- log/development.log | 1530 +++++++++++++++++ public/.DS_Store | Bin 6148 -> 6148 bytes public/images/.DS_Store | Bin 0 -> 6148 bytes public/images/fancybox/blank.gif | Bin 0 -> 43 bytes public/images/fancybox/fancy_close.png | Bin 0 -> 1517 bytes public/images/fancybox/fancy_loading.png | Bin 0 -> 10195 bytes public/images/fancybox/fancy_nav_left.png | Bin 0 -> 1446 bytes public/images/fancybox/fancy_nav_right.png | Bin 0 -> 1454 bytes public/images/fancybox/fancy_shadow_e.png | Bin 0 -> 107 bytes public/images/fancybox/fancy_shadow_n.png | Bin 0 -> 106 bytes public/images/fancybox/fancy_shadow_ne.png | Bin 0 -> 347 bytes public/images/fancybox/fancy_shadow_nw.png | Bin 0 -> 324 bytes public/images/fancybox/fancy_shadow_s.png | Bin 0 -> 111 bytes public/images/fancybox/fancy_shadow_se.png | Bin 0 -> 352 bytes public/images/fancybox/fancy_shadow_sw.png | Bin 0 -> 340 bytes public/images/fancybox/fancy_shadow_w.png | Bin 0 -> 103 bytes public/images/fancybox/fancy_title_left.png | Bin 0 -> 503 bytes public/images/fancybox/fancy_title_main.png | Bin 0 -> 96 bytes public/images/fancybox/fancy_title_over.png | Bin 0 -> 70 bytes public/images/fancybox/fancy_title_right.png | Bin 0 -> 506 bytes public/images/fancybox/fancybox-x.png | Bin 0 -> 203 bytes public/images/fancybox/fancybox-y.png | Bin 0 -> 176 bytes public/images/fancybox/fancybox.png | Bin 0 -> 15287 bytes public/images/title.png | Bin 0 -> 4209 bytes public/javascripts/.photos.js.swp | Bin 0 -> 12288 bytes public/javascripts/.photos.js.un~ | Bin 0 -> 5025 bytes public/javascripts/easing.js | 72 + public/javascripts/fancybox.js | 44 + public/javascripts/jquery-1.3.2.js | 19 + public/javascripts/jquery-ui.js | 270 +++ public/javascripts/jquery-ui.js.old | 188 ++ public/javascripts/jquery.fancybox-1.3.1.js | 1077 ++++++++++++ public/javascripts/jquery.js | 154 ++ public/javascripts/jrails.js | 1 + public/javascripts/mousewheel.js | 13 + public/javascripts/photos.js | 5 + public/photos/0000/0001/Buttercup.jpg | Bin 0 -> 271536 bytes public/photos/0000/0001/Buttercup_thumb.jpg | Bin 0 -> 22093 bytes public/stylesheets/.fancybox.css.swp | Bin 0 -> 28672 bytes public/stylesheets/.fancybox.css.un~ | Bin 0 -> 18934 bytes public/stylesheets/.photos.css.swp | Bin 0 -> 12288 bytes public/stylesheets/.photos.css.un~ | Bin 0 -> 33708 bytes public/stylesheets/fancybox.css | 363 ++++ public/stylesheets/photos.css | 26 + public/stylesheets/squaregrid.css | 39 + .../1105732050Bell_Tower_thumb59048-0.jpg | 1 + .../622555081Bell_Tower59048-0.jpg | Bin 0 -> 616171 bytes vendor/plugins/jrails/CHANGELOG | 43 + vendor/plugins/jrails/LICENSE | 18 + vendor/plugins/jrails/README.rdoc | 21 + vendor/plugins/jrails/Rakefile | 19 + vendor/plugins/jrails/VERSION.yml | 5 + vendor/plugins/jrails/bin/jrails | 30 + vendor/plugins/jrails/init.rb | 1 + vendor/plugins/jrails/install.rb | 9 + .../plugins/jrails/javascripts/jquery-ui.js | 188 ++ vendor/plugins/jrails/javascripts/jquery.js | 19 + vendor/plugins/jrails/javascripts/jrails.js | 1 + .../jrails/javascripts/sources/jrails.js | 197 +++ vendor/plugins/jrails/jrails.gemspec | 52 + .../jrails/lib/jquery_selector_assertions.rb | 78 + vendor/plugins/jrails/lib/jrails.rb | 423 +++++ vendor/plugins/jrails/rails/init.rb | 16 + vendor/plugins/jrails/tasks/jrails.rake | 25 + vendor/plugins/paperclip/LICENSE | 26 + vendor/plugins/paperclip/README.rdoc | 182 ++ vendor/plugins/paperclip/Rakefile | 76 + .../paperclip/cucumber/paperclip_steps.rb | 6 + .../plugins/paperclip/features/basic.feature | 17 + vendor/plugins/paperclip/features/s3.feature | 27 + .../features/step_definitions/html_steps.rb | 14 + .../features/step_definitions/rails_steps.rb | 90 + .../features/step_definitions/s3_steps.rb | 9 + .../features/step_definitions/web_steps.rb | 227 +++ .../plugins/paperclip/features/support/env.rb | 3 + .../paperclip/features/support/paths.rb | 35 + .../paperclip/features/support/rails.rb | 5 + .../plugins/paperclip/features/support/s3.rb | 25 + .../paperclip/generators/paperclip/USAGE | 5 + .../paperclip/paperclip_generator.rb | 27 + .../templates/paperclip_migration.rb.erb | 19 + vendor/plugins/paperclip/init.rb | 1 + .../paperclip/lib/generators/paperclip/USAGE | 8 + .../paperclip/paperclip_generator.rb | 31 + .../templates/paperclip_migration.rb.erb | 19 + vendor/plugins/paperclip/lib/paperclip.rb | 370 ++++ .../paperclip/lib/paperclip/attachment.rb | 340 ++++ .../lib/paperclip/callback_compatability.rb | 61 + .../paperclip/lib/paperclip/command_line.rb | 80 + .../paperclip/lib/paperclip/geometry.rb | 115 ++ .../paperclip/lib/paperclip/interpolations.rb | 113 ++ .../paperclip/lib/paperclip/iostream.rb | 59 + .../paperclip/lib/paperclip/matchers.rb | 33 + .../matchers/have_attached_file_matcher.rb | 57 + ...alidate_attachment_content_type_matcher.rb | 75 + .../validate_attachment_presence_matcher.rb | 54 + .../validate_attachment_size_matcher.rb | 95 + .../paperclip/lib/paperclip/processor.rb | 58 + .../paperclip/lib/paperclip/railtie.rb | 24 + .../paperclip/lib/paperclip/storage.rb | 2 + .../lib/paperclip/storage/filesystem.rb | 73 + .../paperclip/lib/paperclip/storage/s3.rb | 191 ++ .../plugins/paperclip/lib/paperclip/style.rb | 90 + .../paperclip/lib/paperclip/thumbnail.rb | 79 + .../plugins/paperclip/lib/paperclip/upfile.rb | 60 + .../paperclip/lib/paperclip/version.rb | 3 + .../paperclip/lib/tasks/paperclip.rake | 79 + vendor/plugins/paperclip/paperclip.gemspec | 34 + vendor/plugins/paperclip/rails/init.rb | 2 + .../paperclip/shoulda_macros/paperclip.rb | 118 ++ vendor/plugins/paperclip/test/.gitignore | 1 + .../plugins/paperclip/test/attachment_test.rb | 804 +++++++++ .../paperclip/test/command_line_test.rb | 133 ++ vendor/plugins/paperclip/test/database.yml | 4 + .../plugins/paperclip/test/fixtures/12k.png | Bin 0 -> 12093 bytes .../plugins/paperclip/test/fixtures/50x50.png | Bin 0 -> 1615 bytes vendor/plugins/paperclip/test/fixtures/5k.png | Bin 0 -> 4456 bytes .../plugins/paperclip/test/fixtures/bad.png | 1 + vendor/plugins/paperclip/test/fixtures/s3.yml | 8 + .../plugins/paperclip/test/fixtures/text.txt | 0 .../paperclip/test/fixtures/twopage.pdf | Bin 0 -> 8775 bytes .../plugins/paperclip/test/geometry_test.rb | 177 ++ vendor/plugins/paperclip/test/helper.rb | 158 ++ .../paperclip/test/integration_test.rb | 482 ++++++ .../paperclip/test/interpolations_test.rb | 127 ++ .../plugins/paperclip/test/iostream_test.rb | 78 + .../have_attached_file_matcher_test.rb | 24 + ...te_attachment_content_type_matcher_test.rb | 47 + ...lidate_attachment_presence_matcher_test.rb | 26 + .../validate_attachment_size_matcher_test.rb | 51 + .../plugins/paperclip/test/paperclip_test.rb | 254 +++ .../plugins/paperclip/test/processor_test.rb | 10 + vendor/plugins/paperclip/test/storage_test.rb | 358 ++++ vendor/plugins/paperclip/test/style_test.rb | 141 ++ .../plugins/paperclip/test/thumbnail_test.rb | 228 +++ vendor/plugins/paperclip/test/upfile_test.rb | 36 + 160 files changed, 11258 insertions(+), 24 deletions(-) create mode 100644 app/views/layouts/.photos.html.erb.swp create mode 100644 app/views/layouts/.photos.html.erb.un~ create mode 100644 app/views/layouts/photos.html.erb create mode 100644 app/views/photos/.index.html.erb.swp create mode 100644 app/views/photos/.index.html.erb.un~ create mode 100644 app/views/photos/index.html.erb create mode 100644 public/images/.DS_Store create mode 100644 public/images/fancybox/blank.gif create mode 100644 public/images/fancybox/fancy_close.png create mode 100644 public/images/fancybox/fancy_loading.png create mode 100644 public/images/fancybox/fancy_nav_left.png create mode 100644 public/images/fancybox/fancy_nav_right.png create mode 100644 public/images/fancybox/fancy_shadow_e.png create mode 100644 public/images/fancybox/fancy_shadow_n.png create mode 100644 public/images/fancybox/fancy_shadow_ne.png create mode 100644 public/images/fancybox/fancy_shadow_nw.png create mode 100644 public/images/fancybox/fancy_shadow_s.png create mode 100644 public/images/fancybox/fancy_shadow_se.png create mode 100644 public/images/fancybox/fancy_shadow_sw.png create mode 100644 public/images/fancybox/fancy_shadow_w.png create mode 100644 public/images/fancybox/fancy_title_left.png create mode 100644 public/images/fancybox/fancy_title_main.png create mode 100644 public/images/fancybox/fancy_title_over.png create mode 100644 public/images/fancybox/fancy_title_right.png create mode 100644 public/images/fancybox/fancybox-x.png create mode 100644 public/images/fancybox/fancybox-y.png create mode 100644 public/images/fancybox/fancybox.png create mode 100644 public/images/title.png create mode 100644 public/javascripts/.photos.js.swp create mode 100644 public/javascripts/.photos.js.un~ create mode 100644 public/javascripts/easing.js create mode 100644 public/javascripts/fancybox.js create mode 100644 public/javascripts/jquery-1.3.2.js create mode 100644 public/javascripts/jquery-ui.js create mode 100644 public/javascripts/jquery-ui.js.old create mode 100644 public/javascripts/jquery.fancybox-1.3.1.js create mode 100644 public/javascripts/jquery.js create mode 100644 public/javascripts/jrails.js create mode 100644 public/javascripts/mousewheel.js create mode 100644 public/javascripts/photos.js create mode 100644 public/photos/0000/0001/Buttercup.jpg create mode 100644 public/photos/0000/0001/Buttercup_thumb.jpg create mode 100644 public/stylesheets/.fancybox.css.swp create mode 100644 public/stylesheets/.fancybox.css.un~ create mode 100644 public/stylesheets/.photos.css.swp create mode 100644 public/stylesheets/.photos.css.un~ create mode 100644 public/stylesheets/fancybox.css create mode 100644 public/stylesheets/photos.css create mode 100644 public/stylesheets/squaregrid.css create mode 100644 tmp/attachment_fu/1105732050Bell_Tower_thumb59048-0.jpg create mode 100644 tmp/attachment_fu/622555081Bell_Tower59048-0.jpg create mode 100644 vendor/plugins/jrails/CHANGELOG create mode 100644 vendor/plugins/jrails/LICENSE create mode 100644 vendor/plugins/jrails/README.rdoc create mode 100644 vendor/plugins/jrails/Rakefile create mode 100644 vendor/plugins/jrails/VERSION.yml create mode 100755 vendor/plugins/jrails/bin/jrails create mode 100644 vendor/plugins/jrails/init.rb create mode 100644 vendor/plugins/jrails/install.rb create mode 100644 vendor/plugins/jrails/javascripts/jquery-ui.js create mode 100644 vendor/plugins/jrails/javascripts/jquery.js create mode 100644 vendor/plugins/jrails/javascripts/jrails.js create mode 100644 vendor/plugins/jrails/javascripts/sources/jrails.js create mode 100644 vendor/plugins/jrails/jrails.gemspec create mode 100644 vendor/plugins/jrails/lib/jquery_selector_assertions.rb create mode 100644 vendor/plugins/jrails/lib/jrails.rb create mode 100644 vendor/plugins/jrails/rails/init.rb create mode 100644 vendor/plugins/jrails/tasks/jrails.rake create mode 100644 vendor/plugins/paperclip/LICENSE create mode 100644 vendor/plugins/paperclip/README.rdoc create mode 100644 vendor/plugins/paperclip/Rakefile create mode 100644 vendor/plugins/paperclip/cucumber/paperclip_steps.rb create mode 100644 vendor/plugins/paperclip/features/basic.feature create mode 100644 vendor/plugins/paperclip/features/s3.feature create mode 100644 vendor/plugins/paperclip/features/step_definitions/html_steps.rb create mode 100644 vendor/plugins/paperclip/features/step_definitions/rails_steps.rb create mode 100644 vendor/plugins/paperclip/features/step_definitions/s3_steps.rb create mode 100644 vendor/plugins/paperclip/features/step_definitions/web_steps.rb create mode 100644 vendor/plugins/paperclip/features/support/env.rb create mode 100644 vendor/plugins/paperclip/features/support/paths.rb create mode 100644 vendor/plugins/paperclip/features/support/rails.rb create mode 100644 vendor/plugins/paperclip/features/support/s3.rb create mode 100644 vendor/plugins/paperclip/generators/paperclip/USAGE create mode 100644 vendor/plugins/paperclip/generators/paperclip/paperclip_generator.rb create mode 100644 vendor/plugins/paperclip/generators/paperclip/templates/paperclip_migration.rb.erb create mode 100644 vendor/plugins/paperclip/init.rb create mode 100644 vendor/plugins/paperclip/lib/generators/paperclip/USAGE create mode 100644 vendor/plugins/paperclip/lib/generators/paperclip/paperclip_generator.rb create mode 100644 vendor/plugins/paperclip/lib/generators/paperclip/templates/paperclip_migration.rb.erb create mode 100644 vendor/plugins/paperclip/lib/paperclip.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/attachment.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/callback_compatability.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/command_line.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/geometry.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/interpolations.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/iostream.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/matchers.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/matchers/have_attached_file_matcher.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_presence_matcher.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_size_matcher.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/processor.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/railtie.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/storage.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/storage/filesystem.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/storage/s3.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/style.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/thumbnail.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/upfile.rb create mode 100644 vendor/plugins/paperclip/lib/paperclip/version.rb create mode 100644 vendor/plugins/paperclip/lib/tasks/paperclip.rake create mode 100644 vendor/plugins/paperclip/paperclip.gemspec create mode 100644 vendor/plugins/paperclip/rails/init.rb create mode 100644 vendor/plugins/paperclip/shoulda_macros/paperclip.rb create mode 100644 vendor/plugins/paperclip/test/.gitignore create mode 100644 vendor/plugins/paperclip/test/attachment_test.rb create mode 100644 vendor/plugins/paperclip/test/command_line_test.rb create mode 100644 vendor/plugins/paperclip/test/database.yml create mode 100644 vendor/plugins/paperclip/test/fixtures/12k.png create mode 100644 vendor/plugins/paperclip/test/fixtures/50x50.png create mode 100644 vendor/plugins/paperclip/test/fixtures/5k.png create mode 100644 vendor/plugins/paperclip/test/fixtures/bad.png create mode 100644 vendor/plugins/paperclip/test/fixtures/s3.yml create mode 100644 vendor/plugins/paperclip/test/fixtures/text.txt create mode 100644 vendor/plugins/paperclip/test/fixtures/twopage.pdf create mode 100644 vendor/plugins/paperclip/test/geometry_test.rb create mode 100644 vendor/plugins/paperclip/test/helper.rb create mode 100644 vendor/plugins/paperclip/test/integration_test.rb create mode 100644 vendor/plugins/paperclip/test/interpolations_test.rb create mode 100644 vendor/plugins/paperclip/test/iostream_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb create mode 100644 vendor/plugins/paperclip/test/paperclip_test.rb create mode 100644 vendor/plugins/paperclip/test/processor_test.rb create mode 100644 vendor/plugins/paperclip/test/storage_test.rb create mode 100644 vendor/plugins/paperclip/test/style_test.rb create mode 100644 vendor/plugins/paperclip/test/thumbnail_test.rb create mode 100644 vendor/plugins/paperclip/test/upfile_test.rb diff --git a/.DS_Store b/.DS_Store index 1dbb30fab5fa7f14abc477a78b3a3e5781b154e2..541761b2d5d130c86b8b991391b0617d5ee5c161 100644 GIT binary patch delta 76 zcmZoMXfc@J&&V_}VE1GL5thmPjP=46=H@yI#wLcfIttYmrY1TH=4O)@GFpnUF%&SA gG9)qNFk~_$rxYjWB<1JlFm8UxD9*N-o#QV*02PrG`v3p{ delta 54 zcmZoMXfc@J&&W72U^gSK1_nKjbw1|DH;Vn@XB6KoDDat|cP%digDM|HR(!Ic zg0$;oeg=jDAkF~dWFQU!Voe|x0^(~xm1}@_J`mRcaRCr#0C74HM**=R5NiUl>gGg+ zExgRBc`1_@>MLw+)01XoQ2+uUPh6>3!B!z4BflhHFD)}KMZ+pFCr6V3B%6|&rT`R4 Kt(d$(KLG&y4JhCM delta 136 zcmZojXh;xCG6?hZRWR2xW&i>K28ILo*7{hj+$i>opHXDS>efo z3eu*N_!$_|fj9t&MS%DfQ1&hm?*ig=K)eiymjdw&AkGKkbRbUNT&S>xcj5tGmeka| Rl*tSA6*hb5NizZ&@c?I!AUyy8 diff --git a/app/controllers/.photos_controller.rb.un~ b/app/controllers/.photos_controller.rb.un~ index 9f86aa18f1ad373363cc096785ed7ac2135cf76b..f210b11b8dbbf37f5da7f30cac7e463b8b43cd61 100644 GIT binary patch delta 349 zcmaDX@?9=5EHih0Xr4>{QwApYzjLj8?F8=^^c1dKb@y4<%WuwKT5|Z_w{p9f{QwFBEzgm|s%@_N+{$%=1&E%iESM5I4sQoRCA>bmf+sAy~ t!wd`z!a$4+7=au%r~rtDVFsVI_xe~svMd`DlQK1_oQ!bw1|DHi}(mX0+J+j#-I^k#)16z-NA5S$+lv zUmyl4Vx26gAgmM!65MkW;?!cGaOs3fB_HwhwcVo+gdVxSBXO-#wn%!`M}@q#n~ OyjwUdwN+W-I`14OF; delta 398 zcmZojXh;xCG6?hZRWR2xW&i>K28PmmYkf3UZWO!D%*e3$9kUV-BhO|*fzSNBhI|YR zwLlC~#4}k?L0D-9KLbM+5L*K=ClKER%FYAgxj@_q#I<~z6$Q-r7*i+L=;_ugK!H_B zMrm$RUSeiWv4X9gLbU=!0K`@|G%=_EVs(XD2AFbW+NvnEII}7>z9b)_+Q7)9!VpN< zsq0`@Ur>~voLXF*U!-7L4>aC0H!(dmI5{&lFF6&LmfXaOc#tI^8w?Hfa#Pb2lPXJ6 zi*eXcT#{b|G!&%TDlIc7HNLpAxFj_fqBKVafmi diff --git a/app/models/.photo.rb.un~ b/app/models/.photo.rb.un~ index 670e22d67b5ecd33d614e0a49ff14e95cd5c610f..0491728def6cf522edd1bae9c973e4d83dcea110 100644 GIT binary patch delta 1251 zcmcIjPiWI{6#iw)&`y|ktFGNYe%Kl^;*G;?0vr`ONF_4@xjXr$@{+dz2y7VXMWz5v`eP- z=wk6q=`(A26M6AAcK>z#!`JeKq3^#Rd|Q3L<6T65b@EQU@?*93k}=jsiI5wGNmLK| z_ozX#^PW5}<89aThsz^UqS`-NlLoSD^dwH%Lm5PZZX%SE)zqjV?fmpn;C8z!WBc6N z$fSF2XjcL~y#atK@X#O=W==Zhu_pq=SRL%G{#zgG z($TGEHWZT$nTG0mGm6ST=VZ1X};*^^E23A#34 W%lc3HNVS%?%wlIY6fZ=7dAtr&?b)0F delta 126 zcmey?#`rbdI4m=FerTRc{!<2~iOcug>3g@az;?Nd^S}0g`U|E!+0pvv{j^VaST6dz z%ss}yz`z5IDyz4h#7%c0*FBXM8hzH&)Rz#EFf9Fjfst#j0~F} LYhGhydcFz(;HD=3 diff --git a/app/models/photo.rb b/app/models/photo.rb index fb35e35..fa477bb 100644 --- a/app/models/photo.rb +++ b/app/models/photo.rb @@ -1,12 +1,5 @@ class Photo < ActiveRecord::Base belongs_to :category - has_attachment :content_type => :image, - :storage => :file_system, - :max_size => 10.megabytes, - :processor => 'ImageScience', - :resize_to => '1024x1024>', - :thumbnails => { :thumb => '140x140' } - - validates_as_attachment + has_attached_file :photo, :styles => { :large => "1024x1024>", :thumb => "140x140#", :admin_thumb => "40x40#" } end diff --git a/app/views/layouts/.photos.html.erb.swp b/app/views/layouts/.photos.html.erb.swp new file mode 100644 index 0000000000000000000000000000000000000000..9f60fe2264973634c7901f49b2649511b8afba46 GIT binary patch literal 12288 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 + + + + Photos + <%= stylesheet_link_tag "squaregrid", :media => "all" %> + <%= stylesheet_link_tag "photos", :media => "all" %> + <%= stylesheet_link_tag "fancybox", :media => "all" %> + <%= javascript_include_tag 'jquery', 'jrails', 'fancybox', 'photos' %> + + + + +
+
+ + + + <%= yield %> + +
+
+ + + + diff --git a/app/views/photos/.index.html.erb.swp b/app/views/photos/.index.html.erb.swp new file mode 100644 index 0000000000000000000000000000000000000000..bb6b319fd4d2304c5b770236606cf3adeeb0a0c6 GIT binary patch literal 12288 zcmeI&!A`<37zglT;?ZF61uBLBiEJPm4FO`j8R29k-mqhZP0Kd7ftnC~Bj3R%G5REa zE7JoSIAi`zzIE;Qbz6V8WwWZi^DaL&>WtbpW4-s+&PDf)U3VF?g=a~bB$l_^i5E!M zP{LbY_dLI#dFjS7GDG32$P64m_9IgSfjM>M!_S24+49kF;;}MhXf3}kvJim43V}&H ztekAI`a!LlRPN<>`A+U?#Ui93009U<00Izz00bZaf&U~B2O0K48`?-WwVC#rg+3jk zg8&2|009U<00Izz00bZa0SG`~4F!bFST4)h8AbB_|NH&_lg1wuU5XAxlE0zIQruH0 z3N#2n00Izz00bZa0SG_<0uX?}nhG=vTzWPyv>D^nnx^ee+xk=w3oWi(@2(&F+#QRN z?8joXxP(^lff7;F%15Kh(Y&yBSk1Sae=RTRKj4k|aT2OhBX%ZZt6bjazcNaMBT0!y tC>3wDc~MssX+qynPYs1Pcq-Bk(r0J%e5blDGNc$d-1hlQk7vm?zW~7$c1QpK literal 0 HcmV?d00001 diff --git a/app/views/photos/.index.html.erb.un~ b/app/views/photos/.index.html.erb.un~ new file mode 100644 index 0000000000000000000000000000000000000000..606d4954b8a500de0c1ddf6adaa901fc6da33790 GIT binary patch literal 10376 zcmeI2&ubGw6vwx1+9pl?Rjrg-${MUqp|-WOB54x^MK6noieA&$A89Z@q)kOHf*w8f z;N836`UiMYM6Y@i5qgq(@ZzB$sObB?-Iq*$iZJz%BOB>cvylXy>A+bkZB+WHz_68KIqvq=0M3T3dP+KgfLK4Zc@*opyJ2^(W7L6g6jZR;3?_I%rxB(t#?(b7IYpqZ$OnASW>sfmw;U`9*>rxskQOQwgP%56$vg^2^K{YWV;($ORZu*ZX zqp{R-E|X6d*EVxE#>!xEg>I$IfQ%S5U=^q6+a<8as=-REA(aLI){jA;2`WtiHvD%Q zbtVSk1)WByh8R`AOQ(nuAVC4De~&?c3{epSWPsg=3Ii5i&}jtriyDJ6Z2=a5J%bp8 z%{Ln>8zor4>`|Hz(11IPIs+G8&}jsBw;9}oht`9e&E#(;i-pD$qDGJbHLP?4zyWy< zbp|rLpwkHQH-_9^SNSYG6 zx4uw|8CW^-`keuCGegozw&L1^`5a^Jt{>C!Jzy>^5`yU=<+k7rJ>gB631v7zt2yqQ z7iuW06C~_6ex13n2m0!IaWs}qt*2M8yvVQF)D~bK-k=5k`WEEUr+5fbf_xTHXGQ{e zL8p;?Ua@?FUWyQSSl`0_B1BUAHXMs0HP6kplYq)`q5O(Lkqq6Vhwm|oNqmKXWQ|RG z8+<83dWWfqL6(r>5mXo{!V5ahao^9>%VhGpV^y~l=UIZj7yzHa`(1`GAcjF48!^BO zI*r5-V=;s(^OA@mTTcw$5?&K28L^l>wJzJ+$i==o^>7{1H-$?oC@la=KKr{dO)lO p#LPha3n=pwB)i#DVICj54FpV{t*1R%P~U>JAS1sde{z`qDgeI)8J_?E delta 94 zcmZojXh;xCG6?hZRWR2xW&i>K28N_tYkibvY!rJZ&pM5df#KO?P6c&IeSQW8H6WG) q;@?2gPeA+;B)i#DVIJS)_j*aZr3E?pi7BZm@hOQViIc=&4mNE?JYhih`DF z()e=bxeB%}BfkljIb9?$t~%F*zQmD?ME#LT4Z;9)9pH;J2R)GstAOqK)eAl;42BKY5xquIkm+*vT z7^0wAi0pk&R>{Z^eyll|Y$+%6tCe1Jquq10Zol~&RxQ0Ytx`hn@hf?>K*TiZr%!|A zuxPae`KerZ0FkFl?8Wk_lKOLg+RSH7mg1q|rG5v8CrpmRqScbzl~`^!{W4C$irB${ z2HUuRDSvEK92TvXsIE#XgrAcPJGj|;o>aVvhXN&3n+`c5sx3)<7E56z$VnAVfsnyw zEBejig}rrb*vGpwIrvkwo#;rL`m zu;DdaK$@>{YZQ_lQAYJ2KZFfg6*Ej7qn$_0A2MZO9O0 z4oHw~`FWGT1)hCWx!~uFi=(0564y^L7qSW@;F@%b8ASI|<$|BZYkaW`<49<=ME0{J z<7Ekx@kEHn`^6wY1}2>IvI9E=LA4OmFP>>vw!Z=sCOa@7v!XL5c=|r7Tp))1yMsVc!S6N5zOCYm=!6h;ElOU-IcWmmTZHM-TD74?K%vNT9>DmN;a$ zLvsW{wKTSVds)t=d{r{ej^JSLse09Q2BZEu{j*XVo*$%x$6W1v+V8oOYwj&q>u>hb z?yxyZ@i-lAw%yySt~GF%JD1(#`4xOnJs|!Nh(p;YsvXjc$f$Hl`4z7`pCx6id}gBZ z=Ex&^^o##T9m)sAAB6t_IOXP7Po^#+qtd1OcTUON=8G{ox1*I((d|NE-wHq{#tK{m z6#>!h66iBUpsV96B?%hc{uMmocSwxcQQtg8Ky);L2j z^qVry=s-rM=h(fOK@)n*V$_f|O%V{?Zkgth>B%W?v<;ZR^Vh3|K?Bw>bp^${mtj_? zV~U%mgC*>$;?3b|mLed!-7?GQ6E8WU0MDFUL~Eu&m6NK5`EgCGgH zqhhpBHAxW=-ENs=^x36M$_Ns0D`K!fHAoQ<-EJA=p@NjmzFH(CB-~cTSYc|8A|Sfm zGDl`~w|-a57$ew@iJ^kj7)3yIyTtfx(J7yU?074q|DKX ou81#d3WzcdFi_@% delta 118 zcmcaKo$*SlepqJi{Lnm?{HF{|A5!Ai?5w)ERDAm`$QV*<2Hwd{2F`jw1~U)~0Wl*G%K|Y7fM^(I@L78+o&_Y!v9a6LfRSPIMT0ktOwU&V E01`GJ)Bpeg diff --git a/app/views/photos/.show.html.erb.swp b/app/views/photos/.show.html.erb.swp index 05d25c97991083ff166edfe93f2d4baee039bc35..bccd4c031ed5ccce3adeed2d590f07051669a856 100644 GIT binary patch delta 116 zcmZojXh;xCG6?hZRWR2xW&i>K28QFz>wHp% zRDKp4Ra=G0>-FXIGxAIF^-7C!G^|Q8N^_GmHFXpm3c!L85-gRISd^Zssi11d005Df B9_j!9 delta 141 zcmZojXh;xCG6?hZRWR2xW&i>K28O@)*82Fa+$i==UaX&=fnhxmgM=AD(m=4Df3u>% zRQ^C4Ra=Fe%)IRQl6-~C+{E#nQ4Tpk^{E~dVg3_d%%;fmA%$(G`#N1R3tCEb; Q+$2p+9R=(P6jbdP0N)WRdH?_b diff --git a/app/views/photos/.show.html.erb.un~ b/app/views/photos/.show.html.erb.un~ index cdac6e1784294cbd791d00a1d7f1c51313b71203..31de59c6f69efa58f2de0935501a68b6310d9bef 100644 GIT binary patch literal 17124 zcmeI(OK1~O6b9h2t@T~CzTZ(Pw4g2oL2FxEty*n;fau0WNF}zxq%9@gxD(u3U0Fo1 zh^~Yx?pz283hsR1QgEkkgt`%NrT3pC=10Q0Geghr43s&JLz448V!x_bNV_u0woFP=Zie4TmMe6R7`^rweY{j)(3%yWNOc)hcVx$A@(y+7HCFhq%7X-d+~Rh$MJ<7Wna>|Wjv)BC{=a7l8TMTZnMz{S z9YAJG)jX6d$Mi8|s*{<((m<~TV+TxIuq_--|Io0-mbp#99o%k6qv>o%OJ^#d8@ZA$ zj;3;j%uqI6%nY@5j}4C&NB4|P4CZr}(wB4j>`11NZEY_OPZS2*+IFRC?~rQgDvwSu z&!<-K7BF@SM7MP8lM?$Gkv*|GlpCotyaP;~0?{pf>Ze8Zq(dFZ3#c)?0Sui2(Jg)G zr$qFGhj$n+q`u&9<`jr-=`$Y?&69nigLo0O1%4x^Ky*tVdA~@W=sO&Q7gJZzH*pF? zxAcjh6vdN#X$SBUY6|!UPJ!r_KJXJFc!D2k@Lfth!QQ+n5Z%(}-6wj-|4k0wWz-Vr zjhh0|Eq&a_Mef*VV4&MX9YNl-DG=S#r+rM+j(fTdxXY;_z#BFNqFef~kBZnaPp!gs z1@!}Wv!+0FOP_VGXdUk?I%ro?J770z3PiVb)HkKG=to5ASl3G++f3a+-J~fH-O?w0 zSd@-)VGOXVs2QLeGzFqt`k;G6=olA3;kuf7fw?(TAiAZ`xm$FOew`bvYp4~F8#4u> zTl$y}iOi8_GeC7Mbpmlyra*K{pK_O|9CgYHP}fl-05@a`M7MOvx1=xIog#9?X-P2U zNrmt>V_jH!bf0mDXdG?k8AvzKbAsE5DG=S#M|@Bujx@Irq8q6TXqzwvqFefe+eP6h zlScu%iJAa5fWt4^HfNZUQ7Ikpl=Mk_KnC_t4uUkXIGbiQ{a-~Bax%QL4#uIK98z2B_`$tZPb-?s)G?ytRjKWk!DlUwCe%CxkV8!(YgDc&21jO6NN*`PLr3 z6<`0+8Jyebm4n)bF9o7oI^O&7c`JA9_<6yZq8306-tYt2MlU6!QaauTiFqR&oWZ%B zUU|yZ;O)aU<3$RZi{pJN@ye5SOLyH(jOSb1^O^CXY?L2MDc8;pY68_j_q g + +
<%= link_to image_tag(photo.photo.url(:thumb)), photo.photo.url(:large), :rel => 'photo', :class => 'fancy' %>
+ +<% end %> diff --git a/app/views/photos/new.html.erb b/app/views/photos/new.html.erb index 00a7dee..757fff7 100644 --- a/app/views/photos/new.html.erb +++ b/app/views/photos/new.html.erb @@ -4,7 +4,7 @@

<%= f.label :image_file %>:
- <%= f.file_field :uploaded_data %> + <%= f.file_field :photo %>

<%= submit_tag 'Upload' %> diff --git a/app/views/photos/show.html.erb b/app/views/photos/show.html.erb index 593a7f3..fb5359c 100644 --- a/app/views/photos/show.html.erb +++ b/app/views/photos/show.html.erb @@ -1 +1 @@ -<%= link_to image_tag(@photo.public_filename(:thumb)), @photo.public_filename %> +<%= link_to image_tag(@photo.photo.url(:thumb)), @photo.photo.url(:large) %> diff --git a/db/development.sqlite3 b/db/development.sqlite3 index 4ac5b580a38bbadb1fc977f66c9916ac41e36af3..14e427b4a74a46c9a5e53a6bfc505331b6d6b26c 100644 GIT binary patch literal 12288 zcmeI&Piz|59S88?KX#l1d()aoE9C`sRZw>80n8e+ii+c)VAXL*;#8z<7SF=iLkbKT zhF!91C6ey0IJA-SP?+bOcWc4IR|0&GNp1OvrFfNX4Sr*5V0k<7h~+iUk8l5eFR zlC=lhcQ&@@sN1QnZL)QTJ|ApuzD@#pK^6C8ldsc} zp=awZ&*Igqw&(14pmRmBHh$$cR2nsxruIP$!?~yB=EA~0di-H z1g45;ZFpByYTCw!p4dE#OLRl#*&+IuTVOXf_n#IwoU~t@?;-88+3xu*=lPWWvL03k ztPWTmusUFM!0N!4z5_nHJrv=?^dJ8wzZzSPt@vz)NHh|irF&`jyx=^)qra?&)d8ym zRtKyOSRJrB@FnlSf+J)ze)`)@A^P!e)4u;-uz$pPe&Jbjzi_MW8P~_I4d*A$kmEOw zN6sJHKed0P-RS2pEjl#4aPSIS?m`JBp&t$xSY8jdVFm^v2mA9ZzXMxv2gacfp7>b) z5j=oZn1%$NUS#>l@DMg(7JA{}0?Y5heJDXc9G+)+J=lf~n1Mma!TuZ@*MU1Q4t?ghru*6NO@+dVC_fzvpAmX| zL7Q%k?Uq!hH;swBOEwg-BvcCI7QJ(8oa@TherT$~Ct`0-hvH|1-afC*71HOrQGbWt zP^Ybn80)|KogYk%TsChwPa8U&6%ppN`b(^JLTQ&aifl`wV%~)(KQ|7Jt|oZX6k5o1 z!1U0gi`o=l*QdCt2zzp6w`4jRzV#m&%P)r$;g#u-xkEH7{=HeP{A+so+p=7EN^YAr z-tT(+MX41Mjwd3KL}Ya;G;#PxSy4Veqg9XU)i;ZKl1j8=d|wg@rb(_XB&RAy#vLD3 zjEv9Uap<8}o8*c<3B68gHRJKU)ceC!>G1em9n}eskHezT1mtr2|hLz zGVY_E73M{kHp>dzA@jv&oF@EP&{Q*=h#8thYtqp8q@{gB=xwJq4X!(}R3h8*d!k~j z|LQM)I#oYvXqH}V;!+&dUk*QVX!Y4eaigxPqLQyyjpgSr|Jqo7Ii3g`PM?*878<{k z=;ig0_W5t~{E?$S*2C(6)d8ymRtKyOSRMEu?!c_gaoNWHLS|n3{HK5P$2DK^>)-FQ zkcVD4SYYeBa34xA35WA6uLs+(0W*+;eILv3z!uzrap;357g_!hJb+c0h6Em7VEIj$ zg*^1a!FiU~h5Jx~N$7{YIhNms4VZx(?4M(K9oT|9Fb;k2WR~S0!75Bc0#9dH-Z4Cc zO_+r|9C%rN7w$s|CZQh=JuJTm+pqyMFbFx=ce8OF*n&GS4t?;%#qy8f0j$C_B=FS9 z@{i#mY{D$$p%)GuY+M)aLkT9K9}ev-zYQBO1A~x*eH+W~z!uzrap;359Lqm~2e1m$ zkigTwv->8;@DMg(7JA{}Z@8ZW_n`!n&<}^7<9-fo!v@U2Amm{GuehHBTW|-)p%0#X z#`2F~6{aD9r+;C2$M6s~VHWbx3kQE@S~e literal 12288 zcmeI&J!~3x7{~Dgzd&9~(k3R`h3TwB3Qg*k4ry@`8r(Sc*|FPm-wd%YIaI$~FiuG) z5~&hPB}PWniII_!k&zKq9T<_SRtz2Jd;j?Py75ces@;+v7JTmh_j}HF&jDx7+?kus z-Tdj|GS?-@Qkc|r}1441UPmw};?Z%41H zN$=)$!0W*Oy#qdX?A$ru7ZbVk-8I{FHglU>Ppr|v&fu{5;qg`x;Z~}dvbnBzm-_hCl?oHr)E^u?ZnK2J~ONCi__B=^~g#( zXW!qM+a1j8A09V{N5?K)@Gb2$cI&~Kdf#8(vL9^Q8!PsK*^zy%KCsXj z?AAq9IsW+iNMP*zdEb+{opsXIjJ@@AYIxt8b~~>k|LMRzv!Sc%_hmC~F0;82(Q|e_ zH#oxoqA!mF{=nGPOTNdKG8?OQetRRMda}H=;@Ioy<@L<{YBfb-?R@*MaB010lbE{BrbF^%H$P`sT!I6K{lk`$n!@ zzH(IUr9bes7Whs*csH*DUI)AmcpdOM;C0|R@4)Gyao_&4zyH9HI{o_wpa0cGf35Y( z*wEmDeiaL7VHAVdd0FyxbTE!#?46ce6Dw$S|cT6vi-w-7}JJU>RLZqK>=g|G*Et5qfwX z@H*gi!0Uk50j~ouY6p({R3Vt z;~2)?l;oRO!91F1poZ>F@NWO(tETDx^3}PoCb#*ME zgK-RF?}p@?SiwA+XrPAe>rz+4BBn5gA?#k0d>LI#qK^GZ$yKp{7Dh3Mow(%dSV9Nm z7{=b)l5b)K^Jt=h8n)k(x)<@9!ZCHeIk;bgbCCbQ_~6>y-rT5~Kcem<2gY|Zga2vo zPVYMOjIqJ8-RpiQzN+thxxKZ_^8gEIVGui?aQv}^4#qKzy^lHmSiwA+XrPAekEE`K UMNDA~L)iUL@(nDbi%Hb+4{NuyP5=M^ diff --git a/db/migrate/.20101006095457_create_photos.rb.swp b/db/migrate/.20101006095457_create_photos.rb.swp index 0b2189f70c073e517369daed7e6d2bc8e7596ab1..c432c6ff1c402ea717b2c78da1cf983984a7647a 100644 GIT binary patch delta 253 zcmZojXh;xCG6?hZRWR2xW&i>K1_o`$bw0BWZWQ~)&nU84P~bB^uLK_hLkkdtWJM+m zDkxjp^D{8W0P%02=nWvg4#Y=*cn=V71LCbfycCH0fVcyQLAoacaoOfv1x`M`)Vvf1 z1qBGHpfEXFFUCA2u_U!5GdESisvsl3BtO2i03?zUpI8D^2?8a0nRz9t>8V996=|6{ usqvHF>xmjcbR_2kK28P`a*7}@Vxl!yFKco0&L4nWwypMSq7^3+gvf`5k z6_hPq_!$_~ftU}7zW`hC=j%Dv zXXcfprl%GuSY@PUre~BeD1bqU9$dUUGo>U0Q@A*@DitnTTvC*om#$z{l2MwQl$V&9 rgCUcanUk8An2VuB!zwu+=z_eG_>#&3ge=_lg2W<_WM<0bIQ>Nc@sv>; diff --git a/db/migrate/.20101006095457_create_photos.rb.un~ b/db/migrate/.20101006095457_create_photos.rb.un~ index fc9a536d8f2151eb229f16b8ce6880bf0fada8c6..a87f1a9ac56a3ef224d46bb7e8df299d70004edd 100644 GIT binary patch literal 6734 zcmeI0yNgpn6voHhY~pLxMcrLRFd!l}c54yX!bh1_tA!%q0`YWt%a zyK?W$#=DEFpI_WRH@W`m%lWfEFRz_`zyA2)!u-N`{nB%#)Gd z>FTUet}L}PlVoPmEO(N*yA~m?8<%7NC-6mtR3vB>gl{dvLLVXAvsZFj5@?Ejgbo(q z05SvMA}p#AyjC}#rM}s7CObvzyp9n(cA&WUxCy zb|$%F%9VQ3Tk7hL(e2E6kGwcjIyE**DiX9-H$Ob_y;qW_?U!Vu+|9cV$Z#J6=+JB< zLMjrp3c{xrVX<#PpulovMsnx7j&L|7TpeLijo?+5`d3iBX}K!aF!nA{_du3CRwe; zB`0tl@MZ~=5uYbW*x@LA`I3|POnR$zBdh7A>!9Fu(3>MzMt+_kVTZ!+`>+n0Z};+7 zU{9~mdtf!`%?}(SJ5P|X!%^&}**bG}w{_j5&Uk=z$eSQQMtGheVTS^5Ynbt7cEC#$ z-AIk22U`658WROc(6bT$m8KG*s?hr}NDptaBa+xTD2K^67!CtjG#QlmFCmzISxlwv Q-8lN*l;l6V@lR`i0n&Z`CjbBd delta 122 zcmX?Sa!fQmEHih0Xr4>{QwFAKN&j-++b+0t=dq*CCw{)uN7*_u*pry|N9+|(Ik-pS z6$1lHq)$ diff --git a/db/migrate/20101006095457_create_photos.rb b/db/migrate/20101006095457_create_photos.rb index 8201e17..f1b02ac 100644 --- a/db/migrate/20101006095457_create_photos.rb +++ b/db/migrate/20101006095457_create_photos.rb @@ -5,13 +5,10 @@ class CreatePhotos < ActiveRecord::Migration t.string :flickr_url - t.integer :parent_id - t.string :content_type - t.string :filename - t.string :thumbnail - t.integer :size - t.integer :width - t.integer :height + t.string :photo_file_name + t.string :photo_content_type + t.integer :photo_file_size + t.datetime :photo_updated_at t.timestamps end diff --git a/db/schema.rb b/db/schema.rb index a0eaea3..1e01403 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -21,13 +21,10 @@ ActiveRecord::Schema.define(:version => 20101006095457) do create_table "photos", :force => true do |t| t.integer "category_id" t.string "flickr_url" - t.integer "parent_id" - t.string "content_type" - t.string "filename" - t.string "thumbnail" - t.integer "size" - t.integer "width" - t.integer "height" + t.string "photo_file_name" + t.string "photo_content_type" + t.integer "photo_file_size" + t.datetime "photo_updated_at" t.datetime "created_at" t.datetime "updated_at" end diff --git a/log/development.log b/log/development.log index 339bee4..73ae108 100644 --- a/log/development.log +++ b/log/development.log @@ -425,3 +425,1533 @@ Migrating to CreatePhotos (20101006095457)  SQL (0.0ms) PRAGMA index_list("categories") SQL (0.0ms) PRAGMA index_list("photos") + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreateCategories (20101006095323) +Migrating to CreatePhotos (20101006095457) + SQL (0.1ms) select sqlite_version(*) + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations + SQL (0.1ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.0ms) PRAGMA index_list("categories") + SQL (0.0ms) PRAGMA index_list("photos") + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 11:09:26) [GET] + Parameters: {"id"=>"1"} + Photo Load (0.1ms) SELECT * FROM "photos" WHERE ("photos"."id" = 1)  + +ActiveRecord::RecordNotFound (Couldn't find Photo with ID=1): + app/controllers/photos_controller.rb:17:in `show' + +Rendered rescues/_trace (69.1ms) +Rendered rescues/_request_and_response (1.0ms) +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 11:09:29) [GET] + +ActionController::UnknownAction (No action responded to index. Actions: create, new, and show): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 11:09:36) [GET] +Rendering photos/new +Completed in 16ms (View: 7, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 11:09:45) [POST] + Parameters: {"photo"=>{"uploaded_data"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} + Photo Create (0.5ms) INSERT INTO "photos" ("size", "created_at", "content_type", "flickr_url", "thumbnail", "updated_at", "category_id", "parent_id", "filename", "height", "width") VALUES(271536, '2010-10-07 15:09:45', 'image/jpeg', NULL, NULL, '2010-10-07 15:09:45', NULL, NULL, 'Buttercup.jpg', 649, 1024) + Photo Load (0.1ms) SELECT * FROM "photos" WHERE ("photos"."thumbnail" = 'thumb' AND "photos"."parent_id" = 1) LIMIT 1 + Photo Create (0.2ms) INSERT INTO "photos" ("size", "created_at", "content_type", "flickr_url", "thumbnail", "updated_at", "category_id", "parent_id", "filename", "height", "width") VALUES(22093, '2010-10-07 15:09:45', 'image/jpeg', NULL, 'thumb', '2010-10-07 15:09:45', NULL, 1, 'Buttercup_thumb.jpg', 89, 140) +Redirected to http://localhost:3000/photos/1 +Completed in 924ms (DB: 1) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 11:09:46) [GET] + Parameters: {"id"=>"1"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 1)  +Rendering photos/show +Completed in 14ms (View: 7, DB: 0) | 200 OK [http://localhost/photos/1] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 11:10:25) [GET] +Rendering photos/new +Completed in 11ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 11:10:33) [POST] + Parameters: {"photo"=>{"uploaded_data"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} + Photo Create (0.4ms) INSERT INTO "photos" ("size", "created_at", "content_type", "flickr_url", "thumbnail", "updated_at", "category_id", "parent_id", "filename", "height", "width") VALUES(616171, '2010-10-07 15:10:34', 'image/jpeg', NULL, NULL, '2010-10-07 15:10:34', NULL, NULL, 'Bell_Tower.jpg', 736, 1024) + Photo Load (0.1ms) SELECT * FROM "photos" WHERE ("photos"."thumbnail" = 'thumb' AND "photos"."parent_id" = 3) LIMIT 1 + +ArgumentError (invalid geometry format): + app/controllers/photos_controller.rb:8:in `create' + +Rendered rescues/_trace (36.7ms) +Rendered rescues/_request_and_response (0.4ms) +Rendering rescues/layout (internal_server_error) + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.3ms) SELECT version FROM schema_migrations + SQL (188.4ms) DROP TABLE "categories" + SQL (236.1ms) DELETE FROM schema_migrations WHERE version = '20101006095323' + SQL (0.2ms) select sqlite_version(*) + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations + SQL (0.1ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.0ms) PRAGMA index_list("photos") + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations + SQL (15.1ms) DROP TABLE "photos" + SQL (1.3ms) DELETE FROM schema_migrations WHERE version = '20101006095457' + SQL (0.2ms) select sqlite_version(*) + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations + SQL (0.1ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.4ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.1ms) SELECT version FROM schema_migrations +Migrating to CreateCategories (20101006095323) + SQL (0.1ms) select sqlite_version(*) + SQL (1.1ms) CREATE TABLE "categories" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar(255), "description" text, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20101006095323') +Migrating to CreatePhotos (20101006095457) + SQL (0.3ms) CREATE TABLE "photos" ("id" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "category_id" integer, "flickr_url" varchar(255), "photo_file_name" varchar(255), "photo_content_type" varchar(255), "photo_file_size" integer, "photo_updated_at" datetime, "created_at" datetime, "updated_at" datetime)  + SQL (0.1ms) INSERT INTO schema_migrations (version) VALUES ('20101006095457') + SQL (0.5ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.2ms) SELECT version FROM schema_migrations + SQL (0.2ms)  SELECT name + FROM sqlite_master + WHERE type = 'table' AND NOT name = 'sqlite_sequence' + + SQL (0.0ms) PRAGMA index_list("categories") + SQL (0.0ms) PRAGMA index_list("photos") + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:27:43) [GET] +Rendering photos/new +Completed in 70ms (View: 52, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:27:59) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-020101007-62042-kbfrrw-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-0.jpg[0]' -resize "x140" -crop "140x140+40+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-m6g5oe-020101007-62042-1t5w9jm-0' 2>/dev/null + Photo Create (0.6ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1120695, '2010-10-07 17:28:02', NULL, 'Buttercup.jpg', '2010-10-07 17:28:02', 'image/jpeg', NULL, '2010-10-07 17:27:59') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/1/original/Buttercup.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/1/large/Buttercup.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/1/thumb/Buttercup.jpg +Redirected to http://localhost:3000/photos/1 +Completed in 3045ms (DB: 1) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:28:02) [GET] + Parameters: {"id"=>"1"} + Photo Load (0.3ms) SELECT * FROM "photos" WHERE ("photos"."id" = 1)  +Rendering photos/show + +ActionView::TemplateError (undefined method `public_filename' for #) on line #1 of app/views/photos/show.html.erb: +1: <%= link_to image_tag(@photo.public_filename(:thumb)), @photo.public_filename %> + + app/views/photos/show.html.erb:1 + +Rendered rescues/_trace (123.2ms) +Rendered rescues/_request_and_response (1.5ms) +Rendering rescues/layout (internal_server_error) + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:30:51) [GET] + Parameters: {"id"=>"1"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 1)  +Rendering photos/show +Completed in 10ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/1] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:31:03) [GET] +Rendering photos/new +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:31:16) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-020101007-62042-rw85nl-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-0.jpg[0]' -resize "x140" -crop "140x140+37+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1s5yovn-020101007-62042-1x0zhc-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1065859, '2010-10-07 17:31:17', NULL, 'Dragonfly.jpg', '2010-10-07 17:31:17', 'image/jpeg', NULL, '2010-10-07 17:31:16') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/2/original/Dragonfly.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/2/large/Dragonfly.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/2/thumb/Dragonfly.jpg +Redirected to http://localhost:3000/photos/2 +Completed in 859ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:31:17) [GET] + Parameters: {"id"=>"2"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 2)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/2] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:32:42) [GET] + +ActionController::UnknownAction (No action responded to index. Actions: create, new, and show): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:48:04) [GET] +Rendering photos/new +Completed in 13ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:48:14) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-020101007-62042-ryaqji-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' -resize "x40" -crop "40x40+11+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-020101007-62042-1qoirtk-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-0.jpg[0]' -resize "x140" -crop "140x140+40+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1iixv17-020101007-62042-1nyhthw-0' 2>/dev/null + Photo Create (0.5ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1120695, '2010-10-07 17:48:16', NULL, 'Buttercup.jpg', '2010-10-07 17:48:16', 'image/jpeg', NULL, '2010-10-07 17:48:14') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/3/original/Buttercup.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/3/admin_thumb/Buttercup.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/3/large/Buttercup.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/3/thumb/Buttercup.jpg +Redirected to http://localhost:3000/photos/3 +Completed in 1728ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:48:16) [GET] + Parameters: {"id"=>"3"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 3)  +Rendering photos/show +Completed in 11ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/3] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:48:35) [GET] + +ActionController::UnknownAction (No action responded to index. Actions: create, new, and show): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:50:32) [GET] + Photo Load (0.5ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 10ms (View: 5, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:51:01) [GET] + Photo Load (0.4ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 74ms (View: 69, DB: 0) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:51:21) [GET] + Photo Load (0.4ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 10ms (View: 6, DB: 0) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:51:31) [GET] +Rendering photos/new +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:51:39) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-020101007-62042-1elgovt-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' -resize "x40" -crop "40x40+7+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-020101007-62042-ncq2ae-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-0.jpg[0]' -resize "x140" -crop "140x140+27+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13eob09-020101007-62042-xi2w1l-0' 2>/dev/null + Photo Create (0.5ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1877137, '2010-10-07 17:51:41', NULL, 'Bell Tower.jpg', '2010-10-07 17:51:41', 'image/jpeg', NULL, '2010-10-07 17:51:39') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/4/original/Bell Tower.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/4/admin_thumb/Bell Tower.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/4/large/Bell Tower.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/4/thumb/Bell Tower.jpg +Redirected to http://localhost:3000/photos/4 +Completed in 1684ms (DB: 1) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:51:41) [GET] + Parameters: {"id"=>"4"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 4)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/4] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:51:43) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 11ms (View: 5, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:51:47) [GET] +Rendering photos/new +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:51:51) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-020101007-62042-5f7qoh-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' -resize "40x" -crop "40x40+0+10" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-020101007-62042-clrav5-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-0.jpg[0]' -resize "140x" -crop "140x140+0+35" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-6vyt0j-020101007-62042-1k26qeo-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(3275560, '2010-10-07 17:51:53', NULL, 'Church of Ireland.jpg', '2010-10-07 17:51:53', 'image/jpeg', NULL, '2010-10-07 17:51:51') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/5/original/Church of Ireland.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/5/admin_thumb/Church of Ireland.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/5/large/Church of Ireland.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/5/thumb/Church of Ireland.jpg +Redirected to http://localhost:3000/photos/5 +Completed in 2048ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:51:53) [GET] + Parameters: {"id"=>"5"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 5)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/5] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:51:55) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 11ms (View: 6, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 13:51:58) [GET] +Rendering photos/new +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 13:52:05) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-020101007-62042-11w3imk-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' -resize "x40" -crop "40x40+22+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-020101007-62042-xachv2-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-0.jpg[0]' -resize "x140" -crop "140x140+78+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-cxh6zd-020101007-62042-mu6nkg-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(5675107, '2010-10-07 17:52:10', NULL, 'Emerald Panarama.jpg', '2010-10-07 17:52:10', 'image/jpeg', NULL, '2010-10-07 17:52:05') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/6/original/Emerald Panarama.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/6/admin_thumb/Emerald Panarama.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/6/large/Emerald Panarama.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/6/thumb/Emerald Panarama.jpg +Redirected to http://localhost:3000/photos/6 +Completed in 4546ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:52:10) [GET] + Parameters: {"id"=>"6"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 6)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/6] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:52:19) [GET] + Photo Load (0.9ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 13ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:53:38) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:57:27) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering photos/index +Completed in 13ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:28) [GET] + Parameters: {"id"=>"5"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 5)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/5] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:29) [GET] + Parameters: {"id"=>"6"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 6)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/6] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:31) [GET] + Parameters: {"id"=>"4"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 4)  +Rendering photos/show +Completed in 7ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/4] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:33) [GET] + Parameters: {"id"=>"3"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 3)  +Rendering photos/show +Completed in 7ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/3] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:36) [GET] + Parameters: {"id"=>"4"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 4)  +Rendering photos/show +Completed in 7ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/4] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:38) [GET] + Parameters: {"id"=>"5"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 5)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/5] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:43) [GET] + Parameters: {"id"=>"3"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 3)  +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/3] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:57:46) [GET] + Parameters: {"id"=>"6"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 6)  +Rendering photos/show +Completed in 7ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/6] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 13:58:57) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 61ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 13:58:59) [GET] + Parameters: {"id"=>"4"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 4)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/4] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:03:03) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 13ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:05:18) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 13ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:05:18) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:05:59) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 64ms (View: 60, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:05:59) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:06:37) [GET] + Parameters: {"id"=>"6"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 6)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 11ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/6] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:06:37) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:06:39) [GET] + Parameters: {"id"=>"5"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 5)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/5] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:06:39) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:06:40) [GET] + Parameters: {"id"=>"3"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 3)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 7ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/3] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:06:40) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:07:04) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:07:04) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:07:49) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 10ms (View: 6, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-07 14:07:49) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:08:23) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 10ms (View: 6, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 14:08:48) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 56ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 14:08:59) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-020101007-62042-vj5zs2-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' -resize "x40" -crop "40x40+19+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-020101007-62042-1q9khb0-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-0.jpg[0]' -resize "x140" -crop "140x140+67+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-1eh5gg7-020101007-62042-aq30z4-0' 2>/dev/null + Photo Create (1.0ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1082099, '2010-10-07 18:09:00', NULL, 'Croagh Patrick Sunset.jpg', '2010-10-07 18:09:00', 'image/jpeg', NULL, '2010-10-07 18:08:59') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/7/original/Croagh Patrick Sunset.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/7/admin_thumb/Croagh Patrick Sunset.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/7/large/Croagh Patrick Sunset.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/7/thumb/Croagh Patrick Sunset.jpg +Redirected to http://localhost:3000/photos/7 +Completed in 1440ms (DB: 1) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:09:00) [GET] + Parameters: {"id"=>"7"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 7)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 9ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/7] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:09:02) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 76ms (View: 6, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:10:47) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 10, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:10:58) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 11, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:11:11) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 56ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:11:27) [GET] + Photo Load (0.9ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 13ms (View: 8, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:12:02) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 8, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:12:18) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 11ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:12:27) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 11ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:13:08) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 8, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:13:20) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 11ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:13:34) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 11ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:15:03) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 11ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:15:31) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 65ms (View: 60, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:15:54) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:16:10) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 8, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:20:15) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 16ms (View: 11, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:20:38) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:20:49) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:21:20) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:21:50) [GET] + Photo Load (0.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 12ms (View: 7, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 14:22:00) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 11ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 14:22:10) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-020101007-62042-1w0gx1m-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' -resize "x40" -crop "40x40+13+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-020101007-62042-mh3asd-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-0.jpg[0]' -resize "x140" -crop "140x140+45+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-13pe829-020101007-62042-1grnzf7-0' 2>/dev/null + Photo Create (0.5ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1362163, '2010-10-07 18:22:11', NULL, 'Cross.jpg', '2010-10-07 18:22:11', 'image/jpeg', NULL, '2010-10-07 18:22:10') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/8/original/Cross.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/8/admin_thumb/Cross.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/8/large/Cross.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/8/thumb/Cross.jpg +Redirected to http://localhost:3000/photos/8 +Completed in 1572ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:22:11) [GET] + Parameters: {"id"=>"8"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 8)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 9ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/8] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 14:22:14) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 12ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 14:22:22) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-020101007-62042-b9ansm-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' -resize "40x" -crop "40x40+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-020101007-62042-1sqwdtb-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-0.jpg[0]' -resize "140x" -crop "140x140+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-kzpggv-020101007-62042-191ndm6-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(2822720, '2010-10-07 18:22:24', NULL, 'Light and Shade.jpg', '2010-10-07 18:22:24', 'image/jpeg', NULL, '2010-10-07 18:22:22') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/9/original/Light and Shade.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/9/admin_thumb/Light and Shade.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/9/large/Light and Shade.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/9/thumb/Light and Shade.jpg +Redirected to http://localhost:3000/photos/9 +Completed in 1591ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:22:24) [GET] + Parameters: {"id"=>"9"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 9)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/9] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-07 14:22:25) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 12ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-07 14:22:29) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-020101007-62042-fh2rae-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' -resize "40x" -crop "40x40+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-020101007-62042-kztyot-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-0.jpg[0]' -resize "140x" -crop "140x140+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101007-62042-vp2cgg-020101007-62042-16qki8d-0' 2>/dev/null + Photo Create (0.5ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1574250, '2010-10-07 18:22:30', NULL, 'Moody Me.jpg', '2010-10-07 18:22:30', 'image/jpeg', NULL, '2010-10-07 18:22:29') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/10/original/Moody Me.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/10/admin_thumb/Moody Me.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/10/large/Moody Me.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/10/thumb/Moody Me.jpg +Redirected to http://localhost:3000/photos/10 +Completed in 1054ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-07 14:22:30) [GET] + Parameters: {"id"=>"10"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 10)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/10] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 14:22:31) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 79ms (View: 74, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 192.168.42.32 at 2010-10-07 14:59:54) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 10, DB: 1) | 200 OK [http://junpei/photos] + + +Processing ApplicationController#index (for 192.168.42.32 at 2010-10-07 14:59:54) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 192.168.42.32 at 2010-10-07 15:23:03) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 10, DB: 1) | 200 OK [http://junpei/photos] + + +Processing ApplicationController#index (for 192.168.42.32 at 2010-10-07 15:23:04) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 192.168.42.32 at 2010-10-07 15:38:46) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 13ms (View: 9, DB: 1) | 200 OK [http://junpei/photos] + + +Processing ApplicationController#index (for 192.168.42.32 at 2010-10-07 15:38:46) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 192.168.42.102 at 2010-10-07 16:20:38) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 45ms (View: 41, DB: 1) | 200 OK [http://junpei/photos] + + +Processing ApplicationController#index (for 192.168.42.102 at 2010-10-07 16:20:38) [GET] + +ActionController::RoutingError (No route matches "/images/sg_grid_sub.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:32:52) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:33:08) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:33:20) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:33:28) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 60ms (View: 56, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:34:00) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-07 16:34:24) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 13ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:24:53) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:25:17) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:25:33) [GET] + Photo Load (0.9ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:26:01) [GET] + Photo Load (0.9ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:26:09) [GET] + Photo Load (0.9ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 15ms (View: 10, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:26:19) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 14ms (View: 9, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 03:27:03) [GET] + Photo Load (0.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 16ms (View: 12, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:37:46) [GET] + Photo Load (0.8ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 47ms (View: 42, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:38:08) [GET] + +ActionController::RoutingError (No route matches "/photo/new" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:38:11) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 58ms (View: 51, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:38:27) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-020101008-62042-njn20n-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' -resize "x40" -crop "40x40+20+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-020101008-62042-yv60l8-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-0.jpg[0]' -resize "x140" -crop "140x140+71+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1msdntj-020101008-62042-1rsrk5z-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1858172, '2010-10-08 08:38:29', NULL, 'Bubble #2.jpg', '2010-10-08 08:38:29', 'image/jpeg', NULL, '2010-10-08 08:38:27') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/11/original/Bubble #2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/11/admin_thumb/Bubble #2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/11/large/Bubble #2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/11/thumb/Bubble #2.jpg +Redirected to http://localhost:3000/photos/11 +Completed in 2446ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:38:29) [GET] + Parameters: {"id"=>"11"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 11)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 14ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/11] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:38:29) [GET] + +ActionController::RoutingError (No route matches "/system/photos/11/thumb/Bubble%20" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:38:32) [GET] + +ActionController::RoutingError (No route matches "/system/photos/11/large/Bubble%20" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:38:40) [GET] + Photo Load (1.7ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 123ms (View: 111, DB: 2) | 200 OK [http://localhost/photos/] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:38:41) [GET] + +ActionController::RoutingError (No route matches "/system/photos/11/thumb/Bubble%20" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:38:49) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 10ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:39:01) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-020101008-62042-l83gzo-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' -resize "40x" -crop "40x40+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-020101008-62042-1gbo0d7-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-0.jpg[0]' -resize "140x" -crop "140x140+0+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-szc6kd-020101008-62042-dt92x9-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(2060700, '2010-10-08 08:39:03', NULL, 'Halfway There.jpg', '2010-10-08 08:39:03', 'image/jpeg', NULL, '2010-10-08 08:39:01') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/12/original/Halfway There.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/12/admin_thumb/Halfway There.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/12/large/Halfway There.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/12/thumb/Halfway There.jpg +Redirected to http://localhost:3000/photos/12 +Completed in 1716ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:39:03) [GET] + Parameters: {"id"=>"12"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 12)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 9ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/12] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:39:05) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 20ms (View: 13, DB: 1) | 200 OK [http://localhost/photos/] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:39:05) [GET] + +ActionController::RoutingError (No route matches "/system/photos/11/thumb/Bubble%20" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:40:06) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 65ms (View: 60, DB: 1) | 200 OK [http://localhost/photos/] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:40:09) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 11ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:40:41) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-020101008-62042-1g6upw7-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' -resize "x40" -crop "40x40+20+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-020101008-62042-bj8zwv-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-0.jpg[0]' -resize "x140" -crop "140x140+71+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-1o20o4v-020101008-62042-t87l4k-0' 2>/dev/null + Photo Create (0.5ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1858172, '2010-10-08 08:40:42', NULL, 'Bubble no2.jpg', '2010-10-08 08:40:42', 'image/jpeg', NULL, '2010-10-08 08:40:41') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/13/original/Bubble no2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/13/admin_thumb/Bubble no2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/13/large/Bubble no2.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/13/thumb/Bubble no2.jpg +Redirected to http://localhost:3000/photos/13 +Completed in 1616ms (DB: 1) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:40:42) [GET] + Parameters: {"id"=>"13"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 13)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 11ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/13] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:40:44) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 19ms (View: 13, DB: 1) | 200 OK [http://localhost/photos/] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:40:52) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 12ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:40:56) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-020101008-62042-3twkkj-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' -resize "40x" -crop "40x40+0+10" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-020101008-62042-1wyqhfq-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-0.jpg[0]' -resize "140x" -crop "140x140+0+35" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-4dglhp-020101008-62042-51nswz-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(2040957, '2010-10-08 08:40:58', NULL, 'Church of Ireland Gate.jpg', '2010-10-08 08:40:58', 'image/jpeg', NULL, '2010-10-08 08:40:56') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/14/original/Church of Ireland Gate.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/14/admin_thumb/Church of Ireland Gate.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/14/large/Church of Ireland Gate.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/14/thumb/Church of Ireland Gate.jpg +Redirected to http://localhost:3000/photos/14 +Completed in 1869ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:40:58) [GET] + Parameters: {"id"=>"14"} + Photo Load (0.3ms) SELECT * FROM "photos" WHERE ("photos"."id" = 14)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 10ms (View: 4, DB: 0) | 200 OK [http://localhost/photos/14] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:41:04) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 21ms (View: 14, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:41:10) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 11ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:41:17) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-020101008-62042-1cczpg5-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' -resize "x40" -crop "40x40+10+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-020101008-62042-2vfnt8-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-0.jpg[0]' -resize "x140" -crop "140x140+37+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-esxq8y-020101008-62042-1kmad9o-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1065859, '2010-10-08 08:41:18', NULL, 'Dragonfly.jpg', '2010-10-08 08:41:18', 'image/jpeg', NULL, '2010-10-08 08:41:17') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/15/original/Dragonfly.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/15/admin_thumb/Dragonfly.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/15/large/Dragonfly.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/15/thumb/Dragonfly.jpg +Redirected to http://localhost:3000/photos/15 +Completed in 1210ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:41:18) [GET] + Parameters: {"id"=>"15"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 15)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/15] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:41:20) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 12ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:41:30) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-020101008-62042-11asebv-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' -resize "40x" -crop "40x40+0+8" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-020101008-62042-190d5hb-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-0.jpg[0]' -resize "140x" -crop "140x140+0+28" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-ji2p83-020101008-62042-3mdrno-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(1020911, '2010-10-08 08:41:31', NULL, 'House through the Doorway.jpg', '2010-10-08 08:41:31', 'image/jpeg', NULL, '2010-10-08 08:41:30') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/16/original/House through the Doorway.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/16/admin_thumb/House through the Doorway.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/16/large/House through the Doorway.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/16/thumb/House through the Doorway.jpg +Redirected to http://localhost:3000/photos/16 +Completed in 1476ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:41:31) [GET] + Parameters: {"id"=>"16"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 16)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 8ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/16] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:41:33) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 22ms (View: 16, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:41:46) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 11ms (View: 5, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:41:54) [GET] + Photo Load (1.2ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 78ms (View: 72, DB: 1) | 200 OK [http://localhost/photos/] + + +Processing PhotosController#new (for 127.0.0.1 at 2010-10-08 04:42:36) [GET] +Rendering template within layouts/photos +Rendering photos/new +Completed in 13ms (View: 6, DB: 0) | 200 OK [http://localhost/photos/new] + + +Processing PhotosController#create (for 127.0.0.1 at 2010-10-08 04:42:53) [POST] + Parameters: {"photo"=>{"photo"=>#}, "commit"=>"Upload", "authenticity_token"=>"MRMA5jN8F+L8Qu/qxudBGU2lL/82P68aMbmoNbKb5zw="} +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' -resize "1024x1024>" '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-020101008-62042-mxdt6v-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' -resize "x40" -crop "40x40+21+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-020101008-62042-h8dvma-0' 2>/dev/null +[paperclip] identify -format %wx%h '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' 2>/dev/null +[paperclip] convert '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-0.jpg[0]' -resize "x140" -crop "140x140+74+0" +repage '/var/folders/B2/B2qStFgNHj4CjwOiJRPQ+++++TI/-Tmp-/stream20101008-62042-17laygy-020101008-62042-ouvolf-0' 2>/dev/null + Photo Create (0.4ms) INSERT INTO "photos" ("photo_file_size", "created_at", "flickr_url", "photo_file_name", "updated_at", "photo_content_type", "category_id", "photo_updated_at") VALUES(997816, '2010-10-08 08:42:54', NULL, 'Croagh Patrick no3.jpg', '2010-10-08 08:42:54', 'image/jpeg', NULL, '2010-10-08 08:42:53') +[paperclip] Saving attachments. +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/17/original/Croagh Patrick no3.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/17/admin_thumb/Croagh Patrick no3.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/17/large/Croagh Patrick no3.jpg +[paperclip] saving /Users/danbee/Sites/rails/photos/public/system/photos/17/thumb/Croagh Patrick no3.jpg +Redirected to http://localhost:3000/photos/17 +Completed in 1404ms (DB: 0) | 302 Found [http://localhost/photos] + + +Processing PhotosController#show (for 127.0.0.1 at 2010-10-08 04:42:54) [GET] + Parameters: {"id"=>"17"} + Photo Load (0.2ms) SELECT * FROM "photos" WHERE ("photos"."id" = 17)  +Rendering template within layouts/photos +Rendering photos/show +Completed in 76ms (View: 3, DB: 0) | 200 OK [http://localhost/photos/17] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:42:55) [GET] + Photo Load (1.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 23ms (View: 16, DB: 2) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:44:37) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 24ms (View: 20, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:47:13) [GET] + Photo Load (1.2ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 20ms (View: 15, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:47:14) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 19ms (View: 14, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:52:04) [GET] + Photo Load (1.5ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index + +ActionView::TemplateError (No expansion found for :jquery) on line #8 of app/views/layouts/photos.html.erb: +5: Photos +6: <%= stylesheet_link_tag "squaregrid", :media => "all" %> +7: <%= stylesheet_link_tag "photos", :media => "all" %> +8: <%= javascript_include_tag :jquery, :jrails %> +9: +10: +11: + + app/views/layouts/photos.html.erb:8 + +Rendered rescues/_trace (36.5ms) +Rendered rescues/_request_and_response (0.4ms) +Rendering rescues/layout (internal_server_error) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:52:29) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 22ms (View: 17, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:56:24) [GET] + Photo Load (1.4ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index + +ActionView::TemplateError (undefined method `stylesheel_link_tag' for #) on line #8 of app/views/layouts/photos.html.erb: +5: Photos +6: <%= stylesheet_link_tag "squaregrid", :media => "all" %> +7: <%= stylesheet_link_tag "photos", :media => "all" %> +8: <%= stylesheel_link_tag "fancybox", :media => "all" %> +9: <%= javascript_include_tag 'jquery', 'jrails', 'fancybox' %> +10: +11: + + app/views/layouts/photos.html.erb:8 + +Rendered rescues/_trace (29.0ms) +Rendered rescues/_request_and_response (0.3ms) +Rendering rescues/layout (internal_server_error) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:56:37) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 25ms (View: 20, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 04:59:26) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 22ms (View: 17, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:59:26) [GET] + +ActionController::RoutingError (No route matches "/javascripts/photos.js" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 04:59:26) [GET] + +ActionController::RoutingError (No route matches "/javascripts/photos.js" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:00:43) [GET] + Photo Load (1.0ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 20ms (View: 15, DB: 1) | 200 OK [http://localhost/photos] + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 05:00:44) [GET] + +ActionController::RoutingError (No route matches "/stylesheets/fancybox.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 05:00:44) [GET] + +ActionController::RoutingError (No route matches "/stylesheets/fancybox.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 05:00:44) [GET] + +ActionController::RoutingError (No route matches "/stylesheets/fancybox-x.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 05:00:44) [GET] + +ActionController::RoutingError (No route matches "/stylesheets/fancybox-y.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing ApplicationController#index (for 127.0.0.1 at 2010-10-08 05:00:45) [GET] + +ActionController::RoutingError (No route matches "/stylesheets/fancybox.png" with {:method=>:get}): + + +Rendering rescues/layout (not_found) + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:06:33) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 21ms (View: 15, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:07:36) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 24ms (View: 19, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:08:59) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 21ms (View: 16, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:10:23) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 20ms (View: 15, DB: 1) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:10:52) [GET] + Photo Load (1.6ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 21ms (View: 15, DB: 2) | 200 OK [http://localhost/photos] + + +Processing PhotosController#index (for 127.0.0.1 at 2010-10-08 05:35:29) [GET] + Photo Load (1.1ms) SELECT * FROM "photos"  +Rendering template within layouts/photos +Rendering photos/index +Completed in 54ms (View: 49, DB: 1) | 200 OK [http://localhost/photos] diff --git a/public/.DS_Store b/public/.DS_Store index d3e89d1bfc8c0cea161c5a183d237061abb7d8c2..17475bfd5e2dff84eb0b5e648656a8e1ed56d37c 100644 GIT binary patch delta 201 zcmZoMXfc=|#>B)qu~2NHo}wrV0|Nsi1A_nqLoq`#LlHwJLjgm{=7)^S8I?g&+zeR^ zi40{xj3muaoKl>ela!yIGnt$5yeKzNu7shIA%`Iq$jShcsSG8Pr5Hx6wJ*gFJ!b-z^VgbDkIQ-QI^f@9Q+(WhXOg@nJ4p$SaJZ}2}BGGn*&6) GFarR!tu6)t delta 85 zcmZoMXfc=|#>B`mu~2NHo}wrt0|NsP3otO`GZZJ47Z)VuHKC94q=wf k0xVKYo7p+|Ie?lrGqQYVp3E;|$pO>`(#NzpKx7Lu09i^B*Z=?k diff --git a/public/images/.DS_Store b/public/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..6a4b2e38e544b4e5e999acbce8199dd75dfac02c GIT binary patch literal 6148 zcmeHKJ5EC}5S%3`otEi=#37DTp3)NfXUV>#^56 zwmik#w*YMOes};@00z1vzI>RQ@4L_Jt|CUH^NdgIFyiCzwm;3X{|-2Jz!5Ka#r`*c zH;yOYlt}?8AO)m=6p#WJRiMi2aDUNLb(j>80=J-me;*p%u@_E>@#)|YEdX)Ja2V&& zOAwm}h`n%1WQ1l(B_`FX#jvC^-YTybPKil}Rr6tWvsH&;aXZg%kq+yL8l`{~I9Fhi z%azyvNBTeg|2au3DIf)IN&#DLpSBx5scP%&ab9a1{h97L-*h+5gTf)oF)_+97haCn ck(7DO=iKjwQ)18=4?0ml1Fnlq3S3)(A9lSJs{jB1 literal 0 HcmV?d00001 diff --git a/public/images/fancybox/blank.gif b/public/images/fancybox/blank.gif new file mode 100644 index 0000000000000000000000000000000000000000..35d42e808f0a8017b8d52a06be2f8fec0b466a66 GIT binary patch literal 43 scmZ?wbhEHbWMp7uXkcLY|NlP&1B2pE7Dgb&paUX6G7L;iE{qJ;0LZEa`2YX_ literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_close.png b/public/images/fancybox/fancy_close.png new file mode 100644 index 0000000000000000000000000000000000000000..07035307ad435f8f2f8eedf0bce50f7ec8a858c2 GIT binary patch literal 1517 zcmV1To%f)hA(E>uTT$~N#GA0orBqo9-jKM;POccZrXJjTzge4|Sa0ca~7y<+{ z2m7~>41(Jqf9L`mBM6zAjf4;hkjP@@B~d6Xz385|dB5iCM=Ro&JZZmk-uHdZd2i=@ zK0a@Md;u9DFE7t8BO^nxckf<*yC?SckUFGmX^jwM@NV80+eiP zQ*s##s^a3}Ldwd@cHO*r^T5i=%Fj}=Cr_R@78e&C((#usU;YFS>C)2Dw4tG)YO=*P zWt;6ZfL46;=u!R1$jGM-hhvcpVyCa+S}Q!T2ALHx;BHe#M~BsHHos=s2iW})#C?}q ztqvud-gYjKsG$zHm2XhmYPB(Bn>kzw z=gS!w6cG`jJ$?H00VK+=!cMnBDn?IFkCkj7KmNq~hrkZvU@n=EP}|7Gxw*M}1_lPI zNx@_?IS^|%_ok<(o3gXBH^f+@(X7_g)K~%n0$gMM{{Ab=%gZ*hH99)_Eo>!VJd8_C zE)WMoNsBB#u&}W3BMEnPby>y64F-cra9>kX)4DJoA0KZ5fitNn`NTT4wY3%+fA;Lz zZ+K4ucJi+Mg!m%<>Ug8kSg^LX_JD-5va;NEM#+V_H)8UHgaj8UJ?LiZVx92t@KxlB zb1oz#Bo|{kAO!IDVfOII$VfwRad8C+y?XV^;VEu~g@tQka>%(zhlYl1p7P=0!-vj9 zYiMYw3l0uW##jWq+eZ-;6r@4F%{+PXGcz;xx78|Q_F7Eb+}ynGO@4TI*h!27r4#SzfR=K~ zhtpe&%-o-olT$}R&!0cHdm}}wbdd`2lO~)PlarHXnm>2$+(ng2^$EtJ+=vwl#Xg-* zSA%x<9|=lJ3CXuACMEY46&1O~{LGm%7HKm8lhZ|+Pv?nF1LcJswy+L%zshO4HzpR4skij zxq<8a{QPpl!oq4$R(*n7$-q`gsjcF2;NWZ?##l9wBW)lu_Bpk)RJgGO&Ey+2dDr3J z*x2~aJFl#)G^5U)q~qh`_b^ru6q9Xf%arlfse$W(T#z5f?cqE0>k)x`c6QcMUS4jN z#$B996B84z1O(|{7{3S{Bb#j7?T~OCi+pq$fP9eGqJ%Evk~i}B@#8tcAnk_QAg)9f z!qn81MJO5W0n6>}?Q|$y25QL`+uU$0x?KbSI<(UOBavf=wCW!^J3Ie)^yty-8!yk& z($YLG4fjwT{k&5mHL@*_7Xi1c4?x$HT^y5qc2zyPPCG3CUKl!f@Zj&~&!7K?fD>&z zDk^G(=74sN=`q$#Wm{gaK5myi7K~vRQ8s=CoB+NC8j<}iKpXzI(SMmt*2r@wST=`s zW7t-}X4hPqXy3W00000NkvXXu0mjftFGKG literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_loading.png b/public/images/fancybox/fancy_loading.png new file mode 100644 index 0000000000000000000000000000000000000000..2503017960b3972499d3aa92f89953935ae40934 GIT binary patch literal 10195 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 literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_nav_left.png b/public/images/fancybox/fancy_nav_left.png new file mode 100644 index 0000000000000000000000000000000000000000..ebaa6a4fd34e51575a01da366312c20618985cbc GIT binary patch literal 1446 zcmV;X1zGxuP)R`@usIzf?P{x4#0gFqr~|(;IJySuwjr=+Ar78e&sHZ(Lu;P)*wKU%|U#jmpg5~Q6= zNl8{#mZGz>Q!_F$qJ8n=#Z9x>Jn_n|ZEtTsSzllOW_Wn`!@Rt_=!l4jAl`tKb-5%L zv7js_CMF<1KR>Fcr{|nbr~AR4Y-MG|y0EZdwI6@^^5yrikSZ}TQ5hH*C?{R4Q{?KT zKD6U2SFWfB2M0g0TCEGD5GUP%Y0a>J0W!M1fVuVU?d@ix(YV91PjUK7@OzY8E)OJ~ z&Q30n%8njA8kC)#t?uvd&xMXHQZzI)WQmTB-n1vQM_gQ-{_*3-7UA?*_bJ9=m|W(F zT+IHE$H&L3T3T8zSS*%BTHM>)YZi;eI#;9uNVch|X-go#ckf=VQmKq2-ORBYaGo52 zejyg&!SS;_ltMX3~N9_#ORsfn&tMTp}T$j*yAd)6-A(_4O6g z0=-^ug|9bVkxorbSsNQ0x9sPG&EF`laq6qgf=!d ztnQGKnVtDqz_Vx1Y=Kr=TU+Vx?;nS;5H`1m#Lv%9fqI)#T3Y%!3C+yRSpE-E!h;77 zwm7Z1{&Y;%TkkIqz&m9sAKBbnCkzsHry#@vbY{a-wI?zu7 zloV4Q9NtQWLUAT7Ev=G-*4EZ6|HZd^F*!MDB>C#<>PDGN_5sGi_Yq4ZlG7@css!ck z9};wyN`LrygSGPaaLVfqXl2Z+Nkm;ygvo12>(Bf+YwDwC`Hbwy5foiCI>(Z2*F z+nZVe;)K}P*aF#9Y8tUS3{lK|w(!NULrkdP#x17leSb zXU`h&IIwaw4`8eqNV6{>BDOh|vjhZ0E{e&QDDu0Pe|>%Zmb;{dg@s0w$z&rPA0K~+ zu^J$UblaCq5g(ljxEe?Y`8AmFYt-vOfqZ&;+Eh?bV07kp3Z#jN34Zfk3!OW_7k zM!Hz%fopN!Lja&lI}y+lIZjBszTeT&@!Ra|?DQ)q4Us*EN5ey8M=zh0NVTlX;X`2G z(+8kuN)-Dfn@v@Ns?$arfE9ks%*_0?uCDGc0&cYN@bK_KngiO{r&oDx0_$@6^x5~= zW5Gx^5k=$2z;)mYpdQiR47B2ZEBzOVMD;v(on_N_Z6xdRarMj=Ped`)=n zv4Dh?$k=SYcJSdjDa(58`F?t%ZzxBbaRs;9zaA#)un(S!5dZ)H07*qoM6N<$g4RXF AD*ylh literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_nav_right.png b/public/images/fancybox/fancy_nav_right.png new file mode 100644 index 0000000000000000000000000000000000000000..873294e969db9160f5ddd4e1ab498ff60b080e3f GIT binary patch literal 1454 zcmV;f1yTBmP)Wa6`&Z+!IVkxf`V#(j>y7#5eg z5*PD+C=wGBwT+F9xi*_^fd=>X_FBba@wz8b0c3ma+OG#c&LYnSBp_4S(*6BG8m#QpsI))yBSw}|WBy?ft)>pk?VIMu|0u-xC@UxO$< zHa9o-0~vR8bXeVyB61x;@W6T@vgyO$TgWvPslhu zJ>BGvFeN3$D2UT9wO!c-2M2E;RvddB6cm(&J}nRg`1!DUaA;_#J})n?kc`&W*6f~w z$XoI8@o`6>)z;Ql1O^7iqc4Qr?IQ^Y2vDQmrd_^#`AagIo}RXO6Tw=o)=2K&OZ?8A zJDVKcH{^2p2j~ms)bf#Ff5Y^8{ZZ7~8Zw%koV0nHJ||9`FbS!%u(0sL`TfAafI}Du zN;}#qfQDkqhr?T=R;!O@W@c89(aOq-SHe5pO)Do4INRL6f8R{+tE;Q)Wir`E=nLN^ zERjf#VBjT`yZ^}0T`IW~brs!I17PDwDHNtJpz(@u7&_Ci&*x`nXGh4eva-_hHlhTo z>wKX6jrLg})!Ef*2q(qH#unh5y~V~`*!#E25W2>+0$@y%jAkE;d^% z7KiBQ=;#CV)c|?K?OZZNymTtyIv@+;=i$b0QLhID@u{gPOF=<_+1^cd)FbceJt|Pr3Z2#UW)pC9hbbpr%#_w3xu>9DucKZSqKjwKC}oa!!=;B zxw)ARh3h~maWUsB$KtMw06>R!GGHKatdM5?eS3TRA2TyEQ!m{-s9LkQG(13d^zuqc z)WBRWF9N%+J^)=)qIgeo*i|*CI?Xfzc;V-hCr|!<<;s9veooizpgD1ug<#0dV!Z literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_shadow_e.png b/public/images/fancybox/fancy_shadow_e.png new file mode 100644 index 0000000000000000000000000000000000000000..2eda0893649371f8d92b92976d8542cdd1b601ed GIT binary patch literal 107 zcmeAS@N?(olHy`uVBq!ia0vp^B0$W@!3HGnP3ltxQbwLGjv*Y^lSRZuwe#}JO|p{EaWGAM`~zK|Yh zF7SQ+m+Ig>B0@o-N8?trihfzZ+Vp1~`{zf0o*#X0$hUAi%N$P)W1wCJ22WQ%mvv4F FO#q)zAp-ya literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_shadow_ne.png b/public/images/fancybox/fancy_shadow_ne.png new file mode 100644 index 0000000000000000000000000000000000000000..79f6980a3ba5c43de120d963dbba2516b8f27ac7 GIT binary patch literal 347 zcmV-h0i^zkP)dR9Yb&V8f!h)aDezHAsc|y@|hdQ zYJb}?8~~zFbQ)ku!Ey)KSukutuvdZ@MKMX|x|A3tPyx?YVhN^6z!Mi4Mj2f#%<;nh z2{>?YAzu|{u^;Oq!;f7Z4tPBpJEmZ+^GZ#$=9nz(K+UmK7}|u&EPi%aRt_C3qOFB_ zHc`~N>51%{?ijG?xsHt>MwRChgk=x_z0gh3O2xSL)-6?+2LKZL74~Q>MZjWtwukkA tvjRC=&j+0R$&bLyT7MhBcTXDISHC&xXU0&5CWHV0002ovPDHLkV1fX+la~Mh literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_shadow_nw.png b/public/images/fancybox/fancy_shadow_nw.png new file mode 100644 index 0000000000000000000000000000000000000000..7182cd938ae98e7e28c65a0bc55df576042ff9f5 GIT binary patch literal 324 zcmV-K0lWT*P)2-&4CO{qhKP$XKD&mgeXEM77>~`RA}h@U^Z##eQZVtM>a-K?QT4 z&(8BFf(rD5V61)2I__wHYuRwoaDIqw5Vdr_JSDVr){#J@r;{vbDL|tRyCiirf~4OF zX-l=Ecm>@yR)1nSMt~dy90Zb`^`)TQbhf8jR@fA!l6V$musRyB9Y{p$SCW}!$3==V zk)fW)Xo{s^ez$t+XhmZj;ts)!kTokvmM>z)zt70000 literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_shadow_se.png b/public/images/fancybox/fancy_shadow_se.png new file mode 100644 index 0000000000000000000000000000000000000000..541e3ffd3e88224b34a4d2097c66a780e6060aeb GIT binary patch literal 352 zcmV-m0iXVfP){pM9=`y8<_IvWD02WY@RZ<9dgjNmAB|sYF}Xw>7Sq@O0000eMf9z;FC21=)67q_`W0*0KnS4AR00W2`RGn3i8UfsEegLO@ zPhds?2e1Tm)FK3=bymIAx?X=YFo3Mdh7W?@I#8s#svp!&PB> zwah@Ngd|l0N4SCfzvjtQnd$dZ0yM)N$X+lqdtN!Pt{Wn*_`0U}m1^#r1 mwpaW{;a?9KKt^WrpTAEd?0j1W(3L*`0000P{ho=rRL|66mGO)=r*Hk83F#~lnc)I$ztaD0e0sy?& B8X5oq literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_title_left.png b/public/images/fancybox/fancy_title_left.png new file mode 100644 index 0000000000000000000000000000000000000000..6049223d1ec6af46e100499c01f6489c9e2c6240 GIT binary patch literal 503 zcmV+)0005LNklqcp9&~$uJw{{rUub~E?-XJ#Upm4Fe%-Gl z!u%tb0N102a|s5;SPlQvJlFCTBbvYaK@wIW6Gjx@?i20AlVDJcHNfh25WRlbF6CIq zv9_ZnqOH`}ppaUR0@%ZcM9zpDt2uQM>f+Z#wIMmyuui3DeoYXWE|hQ{D$te=Yhgkq zIvyj+$t8T|S1wITzUftNOe(E+Qjn$kDotY;I5}1lRgwi=?K26ke)djLR5W2|!7CVH zJ-`tuAq|`lK978y+CnqGNCkUke_%Gig ukvFM-ftpWh!il7Wg7kz7Y?7xB@G*olNlgoj4E_Yv!rmdKI;Vst0Ha3^zyJUM literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancy_title_right.png b/public/images/fancybox/fancy_title_right.png new file mode 100644 index 0000000000000000000000000000000000000000..e36d9db2a7c6e570aec993d3665cbc13620115e2 GIT binary patch literal 506 zcmV+)0005ONklxjQB-g>5=x46nGBwseihc$zfzvTFh(=tCRj6cJ4M&ASrCAq-HbokPnRBAHVa2(-|l wYU(UxfYLN;KDSr z1<%~X^wgl##FWaylc_d9MY*0Xjv*Ddw)7kFH5l+P-xcE$W)3=fYI&uMKVzWNT*W|n zhqlRY)q0r(8Mg&Fu_zpISivgz+b7g)c6G&O{~njE??Y{u-MM!p^=9_W+X-j8mhfK? zj`H2Yy;kp%)!V-M3;EVThyB(Z@o88wpMja-vy^g)SgE!<&|(HpS3j3^P6|6H_V+Po~-c6$N>^IEGZ*^681?Yf#{6Zf~e!I`r4y-J+3m*Ue*gH=cNZ zzpU%p61aCO%jt%FHUKW&bEWLcUAGzK?;SYE)E{9#W9O8@uj{O@89qzNU(dkI YVCW(7-@(*!CeU;SPgg&ebxsLQ07`N|KL7v# literal 0 HcmV?d00001 diff --git a/public/images/fancybox/fancybox.png b/public/images/fancybox/fancybox.png new file mode 100644 index 0000000000000000000000000000000000000000..65e14f68fd83b87f75c22c0c074e7b20bf20a133 GIT binary patch literal 15287 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 ZMt7F5hocMxav&E)U0Fw|QQ>vO{{ZOG+C=~W literal 0 HcmV?d00001 diff --git a/public/images/title.png b/public/images/title.png new file mode 100644 index 0000000000000000000000000000000000000000..c2bcecfcf7184489a9568f54be4a07a94b8855a3 GIT binary patch literal 4209 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 literal 0 HcmV?d00001 diff --git a/public/javascripts/.photos.js.un~ b/public/javascripts/.photos.js.un~ new file mode 100644 index 0000000000000000000000000000000000000000..8031eb5568d376bcc132d6f8cf462f57eec7fc95 GIT binary patch literal 5025 zcmeI$ze~eF6bJC@4_kjMZdwJ&P?{9PO$S{&C=?V#aT85b2-HMs3jSII7yki8Py`1D z!TtdbF5>RuC<-Euf*>w}zVGF(Jq1OSQ(nQpXYs?Mp4#a7 z=2c>*ur_(N?H-Ihd8e^O|8D=KGkxI?F~(ZxkddQFjE)YmfKeW-Sij9A@oAdPUWyaq zV#I)taPWAeU zta3yaBBElz0S3%_4T`K~4wUCSd&SI$a*>h&0G=SM`&2V1Zu> z_19>Yz-d+X12|m4*Yxd9$xI|u!rJ3l$*@_fxh{*sHwOOr1T8>Z_mxh2OGn80gS_6t~zsU#%YDPg{H z%v2LoK6{{1{tgp(@?{?T2CT+JCjKSpCzCGqt|uEQ?r*>hOOWdD`^xMWrKy%B_77S7 zZ|K`1vJrWZW;fSNhoy-^;*XCsLNnXwvo^iWJJoS-(yscI3Rk8+8&qrPvJc1ax)IH& literal 0 HcmV?d00001 diff --git a/public/javascripts/easing.js b/public/javascripts/easing.js new file mode 100644 index 0000000..9028179 --- /dev/null +++ b/public/javascripts/easing.js @@ -0,0 +1,72 @@ +/* + * jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/ + * + * Uses the built in easing capabilities added In jQuery 1.1 + * to offer multiple easing options + * + * TERMS OF USE - jQuery Easing + * + * Open source under the BSD License. + * + * Copyright © 2008 George McGinley Smith + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this list of + * conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright notice, this list + * of conditions and the following disclaimer in the documentation and/or other materials + * provided with the distribution. + * + * Neither the name of the author nor the names of contributors may be used to endorse + * or promote products derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING + * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + * +*/ + +// t: current time, b: begInnIng value, c: change In value, d: duration +eval(function(p,a,c,k,e,r){e=function(c){return(c35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('h.i[\'1a\']=h.i[\'z\'];h.O(h.i,{y:\'D\',z:9(x,t,b,c,d){6 h.i[h.i.y](x,t,b,c,d)},17:9(x,t,b,c,d){6 c*(t/=d)*t+b},D:9(x,t,b,c,d){6-c*(t/=d)*(t-2)+b},13:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t+b;6-c/2*((--t)*(t-2)-1)+b},X:9(x,t,b,c,d){6 c*(t/=d)*t*t+b},U:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t+1)+b},R:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t+b;6 c/2*((t-=2)*t*t+2)+b},N:9(x,t,b,c,d){6 c*(t/=d)*t*t*t+b},M:9(x,t,b,c,d){6-c*((t=t/d-1)*t*t*t-1)+b},L:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t+b;6-c/2*((t-=2)*t*t*t-2)+b},K:9(x,t,b,c,d){6 c*(t/=d)*t*t*t*t+b},J:9(x,t,b,c,d){6 c*((t=t/d-1)*t*t*t*t+1)+b},I:9(x,t,b,c,d){e((t/=d/2)<1)6 c/2*t*t*t*t*t+b;6 c/2*((t-=2)*t*t*t*t+2)+b},G:9(x,t,b,c,d){6-c*8.C(t/d*(8.g/2))+c+b},15:9(x,t,b,c,d){6 c*8.n(t/d*(8.g/2))+b},12:9(x,t,b,c,d){6-c/2*(8.C(8.g*t/d)-1)+b},Z:9(x,t,b,c,d){6(t==0)?b:c*8.j(2,10*(t/d-1))+b},Y:9(x,t,b,c,d){6(t==d)?b+c:c*(-8.j(2,-10*t/d)+1)+b},W:9(x,t,b,c,d){e(t==0)6 b;e(t==d)6 b+c;e((t/=d/2)<1)6 c/2*8.j(2,10*(t-1))+b;6 c/2*(-8.j(2,-10*--t)+2)+b},V:9(x,t,b,c,d){6-c*(8.o(1-(t/=d)*t)-1)+b},S:9(x,t,b,c,d){6 c*8.o(1-(t=t/d-1)*t)+b},Q:9(x,t,b,c,d){e((t/=d/2)<1)6-c/2*(8.o(1-t*t)-1)+b;6 c/2*(8.o(1-(t-=2)*t)+1)+b},P:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6-(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b},H:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d)==1)6 b+c;e(!p)p=d*.3;e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);6 a*8.j(2,-10*t)*8.n((t*d-s)*(2*8.g)/p)+c+b},T:9(x,t,b,c,d){f s=1.l;f p=0;f a=c;e(t==0)6 b;e((t/=d/2)==2)6 b+c;e(!p)p=d*(.3*1.5);e(a<8.w(c)){a=c;f s=p/4}m f s=p/(2*8.g)*8.r(c/a);e(t<1)6-.5*(a*8.j(2,10*(t-=1))*8.n((t*d-s)*(2*8.g)/p))+b;6 a*8.j(2,-10*(t-=1))*8.n((t*d-s)*(2*8.g)/p)*.5+c+b},F:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*(t/=d)*t*((s+1)*t-s)+b},E:9(x,t,b,c,d,s){e(s==u)s=1.l;6 c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},16:9(x,t,b,c,d,s){e(s==u)s=1.l;e((t/=d/2)<1)6 c/2*(t*t*(((s*=(1.B))+1)*t-s))+b;6 c/2*((t-=2)*t*(((s*=(1.B))+1)*t+s)+2)+b},A:9(x,t,b,c,d){6 c-h.i.v(x,d-t,0,c,d)+b},v:9(x,t,b,c,d){e((t/=d)<(1/2.k)){6 c*(7.q*t*t)+b}m e(t<(2/2.k)){6 c*(7.q*(t-=(1.5/2.k))*t+.k)+b}m e(t<(2.5/2.k)){6 c*(7.q*(t-=(2.14/2.k))*t+.11)+b}m{6 c*(7.q*(t-=(2.18/2.k))*t+.19)+b}},1b:9(x,t,b,c,d){e(t")[0],{prop:0}),v=0,O=!b.support.opacity&&!window.XMLHttpRequest,J=function(){u.hide();s.onerror=s.onload=null;E&&E.abort();m.empty()},P=function(){b.fancybox('

The requested content cannot be loaded.
Please try again later.

',{scrolling:"no",padding:20,transitionIn:"none",transitionOut:"none"})}, +K=function(){return[b(window).width(),b(window).height(),b(document).scrollLeft(),b(document).scrollTop()]},T=function(){var a=K(),d={},f=c.margin,o=c.autoScale,t=(20+f)*2,w=(20+f)*2,r=c.padding*2;if(c.width.toString().indexOf("%")>-1){d.width=a[0]*parseFloat(c.width)/100-40;o=false}else d.width=c.width+r;if(c.height.toString().indexOf("%")>-1){d.height=a[1]*parseFloat(c.height)/100-40;o=false}else d.height=c.height+r;if(o&&(d.width>a[0]-t||d.height>a[1]-w))if(e.type=="image"||e.type=="swf"){t+=r; +w+=r;o=Math.min(Math.min(a[0]-t,c.width)/c.width,Math.min(a[1]-w,c.height)/c.height);d.width=Math.round(o*(d.width-r))+r;d.height=Math.round(o*(d.height-r))+r}else{d.width=Math.min(d.width,a[0]-t);d.height=Math.min(d.height,a[1]-w)}d.top=a[3]+(a[1]-(d.height+40))*0.5;d.left=a[2]+(a[0]-(d.width+40))*0.5;if(c.autoScale===false){d.top=Math.max(a[3]+f,d.top);d.left=Math.max(a[2]+f,d.left)}return d},U=function(a){if(a&&a.length)switch(c.titlePosition){case "inside":return a;case "over":return''+ +a+"";default:return''+a+''}return false},V=function(){var a=c.title,d=l.width-c.padding*2,f="fancybox-title-"+c.titlePosition;b("#fancybox-title").remove();v=0;if(c.titleShow!==false){a=b.isFunction(c.titleFormat)?c.titleFormat(a,j,n,c):U(a);if(!(!a||a==="")){b('
').css({width:d,paddingLeft:c.padding, +paddingRight:c.padding}).html(a).appendTo("body");switch(c.titlePosition){case "inside":v=b("#fancybox-title").outerHeight(true)-c.padding;l.height+=v;break;case "over":b("#fancybox-title").css("bottom",c.padding);break;default:b("#fancybox-title").css("bottom",b("#fancybox-title").outerHeight(true)*-1);break}b("#fancybox-title").appendTo(D).hide()}}},W=function(){b(document).unbind("keydown.fb").bind("keydown.fb",function(a){if(a.keyCode==27&&c.enableEscapeButton){a.preventDefault();b.fancybox.close()}else if(a.keyCode== +37){a.preventDefault();b.fancybox.prev()}else if(a.keyCode==39){a.preventDefault();b.fancybox.next()}});if(b.fn.mousewheel){g.unbind("mousewheel.fb");j.length>1&&g.bind("mousewheel.fb",function(a,d){a.preventDefault();h||d===0||(d>0?b.fancybox.prev():b.fancybox.next())})}if(c.showNavArrows){if(c.cyclic&&j.length>1||n!==0)A.show();if(c.cyclic&&j.length>1||n!=j.length-1)B.show()}},X=function(){var a,d;if(j.length-1>n){a=j[n+1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}if(n>0){a= +j[n-1].href;if(typeof a!=="undefined"&&a.match(G)){d=new Image;d.src=a}}},L=function(){i.css("overflow",c.scrolling=="auto"?c.type=="image"||c.type=="iframe"||c.type=="swf"?"hidden":"auto":c.scrolling=="yes"?"auto":"visible");if(!b.support.opacity){i.get(0).style.removeAttribute("filter");g.get(0).style.removeAttribute("filter")}b("#fancybox-title").show();c.hideOnContentClick&&i.one("click",b.fancybox.close);c.hideOnOverlayClick&&x.one("click",b.fancybox.close);c.showCloseButton&&z.show();W();b(window).bind("resize.fb", +b.fancybox.center);c.centerOnScroll?b(window).bind("scroll.fb",b.fancybox.center):b(window).unbind("scroll.fb");b.isFunction(c.onComplete)&&c.onComplete(j,n,c);h=false;X()},M=function(a){var d=Math.round(k.width+(l.width-k.width)*a),f=Math.round(k.height+(l.height-k.height)*a),o=Math.round(k.top+(l.top-k.top)*a),t=Math.round(k.left+(l.left-k.left)*a);g.css({width:d+"px",height:f+"px",top:o+"px",left:t+"px"});d=Math.max(d-c.padding*2,0);f=Math.max(f-(c.padding*2+v*a),0);i.css({width:d+"px",height:f+ +"px"});if(typeof l.opacity!=="undefined")g.css("opacity",a<0.5?0.5:a)},Y=function(a){var d=a.offset();d.top+=parseFloat(a.css("paddingTop"))||0;d.left+=parseFloat(a.css("paddingLeft"))||0;d.top+=parseFloat(a.css("border-top-width"))||0;d.left+=parseFloat(a.css("border-left-width"))||0;d.width=a.width();d.height=a.height();return d},Q=function(){var a=e.orig?b(e.orig):false,d={};if(a&&a.length){a=Y(a);d={width:a.width+c.padding*2,height:a.height+c.padding*2,top:a.top-c.padding-20,left:a.left-c.padding- +20}}else{a=K();d={width:1,height:1,top:a[3]+a[1]*0.5,left:a[2]+a[0]*0.5}}return d},N=function(){u.hide();if(g.is(":visible")&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){b.event.trigger("fancybox-cancel");h=false;return}j=q;n=p;c=e;i.get(0).scrollTop=0;i.get(0).scrollLeft=0;if(c.overlayShow){O&&b("select:not(#fancybox-tmp select)").filter(function(){return this.style.visibility!=="hidden"}).css({visibility:"hidden"}).one("fancybox-cleanup",function(){this.style.visibility="inherit"}); +x.css({"background-color":c.overlayColor,opacity:c.overlayOpacity}).unbind().show()}l=T();V();if(g.is(":visible")){b(z.add(A).add(B)).hide();var a=g.position(),d;k={top:a.top,left:a.left,width:g.width(),height:g.height()};d=k.width==l.width&&k.height==l.height;i.fadeOut(c.changeFade,function(){var f=function(){i.html(m.contents()).fadeIn(c.changeFade,L)};b.event.trigger("fancybox-change");i.empty().css("overflow","hidden");if(d){i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding* +2,1),height:Math.max(l.height-c.padding*2-v,1)});f()}else{i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)});y.prop=0;b(y).animate({prop:1},{duration:c.changeSpeed,easing:c.easingChange,step:M,complete:f})}})}else{g.css("opacity",1);if(c.transitionIn=="elastic"){k=Q();i.css({top:c.padding,left:c.padding,width:Math.max(k.width-c.padding*2,1),height:Math.max(k.height-c.padding*2,1)}).html(m.contents());g.css(k).show();if(c.opacity)l.opacity= +0;y.prop=0;b(y).animate({prop:1},{duration:c.speedIn,easing:c.easingIn,step:M,complete:L})}else{i.css({top:c.padding,left:c.padding,width:Math.max(l.width-c.padding*2,1),height:Math.max(l.height-c.padding*2-v,1)}).html(m.contents());g.css(l).fadeIn(c.transitionIn=="none"?0:c.speedIn,L)}}},F=function(){m.width(e.width);m.height(e.height);if(e.width=="auto")e.width=m.width();if(e.height=="auto")e.height=m.height();N()},Z=function(){h=true;e.width=s.width;e.height=s.height;b("").attr({id:"fancybox-img", +src:s.src,alt:e.title}).appendTo(m);N()},C=function(){J();var a=q[p],d,f,o,t,w;e=b.extend({},b.fn.fancybox.defaults,typeof b(a).data("fancybox")=="undefined"?e:b(a).data("fancybox"));o=a.title||b(a).title||e.title||"";if(a.nodeName&&!e.orig)e.orig=b(a).children("img:first").length?b(a).children("img:first"):b(a);if(o===""&&e.orig)o=e.orig.attr("alt");d=a.nodeName&&/^(?:javascript|#)/i.test(a.href)?e.href||null:e.href||a.href||null;if(e.type){f=e.type;if(!d)d=e.content}else if(e.content)f="html";else if(d)if(d.match(G))f= +"image";else if(d.match(S))f="swf";else if(b(a).hasClass("iframe"))f="iframe";else if(d.match(/#/)){a=d.substr(d.indexOf("#"));f=b(a).length>0?"inline":"ajax"}else f="ajax";else f="inline";e.type=f;e.href=d;e.title=o;if(e.autoDimensions&&e.type!=="iframe"&&e.type!=="swf"){e.width="auto";e.height="auto"}if(e.modal){e.overlayShow=true;e.hideOnOverlayClick=false;e.hideOnContentClick=false;e.enableEscapeButton=false;e.showCloseButton=false}if(b.isFunction(e.onStart))if(e.onStart(q,p,e)===false){h=false; +return}m.css("padding",20+e.padding+e.margin);b(".fancybox-inline-tmp").unbind("fancybox-cancel").bind("fancybox-change",function(){b(this).replaceWith(i.children())});switch(f){case "html":m.html(e.content);F();break;case "inline":b('
').hide().insertBefore(b(a)).bind("fancybox-cleanup",function(){b(this).replaceWith(i.children())}).bind("fancybox-cancel",function(){b(this).replaceWith(m.children())});b(a).appendTo(m);F();break;case "image":h=false;b.fancybox.showActivity(); +s=new Image;s.onerror=function(){P()};s.onload=function(){s.onerror=null;s.onload=null;Z()};s.src=d;break;case "swf":t='';w="";b.each(e.swf,function(r,R){t+='';w+=" "+r+'="'+R+'"'});t+='";m.html(t); +F();break;case "ajax":a=d.split("#",2);f=e.ajax.data||{};if(a.length>1){d=a[0];if(typeof f=="string")f+="&selector="+a[1];else f.selector=a[1]}h=false;b.fancybox.showActivity();E=b.ajax(b.extend(e.ajax,{url:d,data:f,error:P,success:function(r){if(E.status==200){m.html(r);F()}}}));break;case "iframe":b('').appendTo(m);N();break}},$=function(){if(u.is(":visible")){b("div", +u).css("top",I*-40+"px");I=(I+1)%12}else clearInterval(H)},aa=function(){if(!b("#fancybox-wrap").length){b("body").append(m=b('
'),u=b('
'),x=b('
'),g=b('
'));if(!b.support.opacity){g.addClass("fancybox-ie");u.addClass("fancybox-ie")}D=b('
').append('
').appendTo(g); +D.append(i=b('
'),z=b(''),A=b(''),B=b(''));z.click(b.fancybox.close);u.click(b.fancybox.cancel);A.click(function(a){a.preventDefault();b.fancybox.prev()});B.click(function(a){a.preventDefault();b.fancybox.next()});if(O){x.get(0).style.setExpression("height", +"document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'");u.get(0).style.setExpression("top","(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'");D.prepend('')}}}; +b.fn.fancybox=function(a){b(this).data("fancybox",b.extend({},a,b.metadata?b(this).metadata():{})).unbind("click.fb").bind("click.fb",function(d){d.preventDefault();if(!h){h=true;b(this).blur();q=[];p=0;d=b(this).attr("rel")||"";if(!d||d==""||d==="nofollow")q.push(this);else{q=b("a[rel="+d+"], area[rel="+d+"]");p=q.index(this)}C();return false}});return this};b.fancybox=function(a,d){if(!h){h=true;d=typeof d!=="undefined"?d:{};q=[];p=d.index||0;if(b.isArray(a)){for(var f=0,o=a.length;fq.length||p<0)p=0;C()}};b.fancybox.showActivity=function(){clearInterval(H);u.show();H=setInterval($,66)};b.fancybox.hideActivity=function(){u.hide()};b.fancybox.next=function(){return b.fancybox.pos(n+1)};b.fancybox.prev=function(){return b.fancybox.pos(n- +1)};b.fancybox.pos=function(a){if(!h){a=parseInt(a,10);if(a>-1&&j.length>a){p=a;C()}if(c.cyclic&&j.length>1&&a<0){p=j.length-1;C()}if(c.cyclic&&j.length>1&&a>=j.length){p=0;C()}}};b.fancybox.cancel=function(){if(!h){h=true;b.event.trigger("fancybox-cancel");J();e&&b.isFunction(e.onCancel)&&e.onCancel(q,p,e);h=false}};b.fancybox.close=function(){function a(){x.fadeOut("fast");g.hide();b.event.trigger("fancybox-cleanup");i.empty();b.isFunction(c.onClosed)&&c.onClosed(j,n,c);j=e=[];n=p=0;c=e={};h=false} +if(!(h||g.is(":hidden"))){h=true;if(c&&b.isFunction(c.onCleanup))if(c.onCleanup(j,n,c)===false){h=false;return}J();b(z.add(A).add(B)).hide();b("#fancybox-title").remove();g.add(i).add(x).unbind();b(window).unbind("resize.fb scroll.fb");b(document).unbind("keydown.fb");i.css("overflow","hidden");if(c.transitionOut=="elastic"){k=Q();var d=g.position();l={top:d.top,left:d.left,width:g.width(),height:g.height()};if(c.opacity)l.opacity=1;y.prop=1;b(y).animate({prop:0},{duration:c.speedOut,easing:c.easingOut, +step:M,complete:a})}else g.fadeOut(c.transitionOut=="none"?0:c.speedOut,a)}};b.fancybox.resize=function(){var a,d;if(!(h||g.is(":hidden"))){h=true;a=i.wrapInner("
").children();d=a.height();g.css({height:d+c.padding*2+v});i.css({height:d});a.replaceWith(a.children());b.fancybox.center()}};b.fancybox.center=function(){h=true;var a=K(),d=c.margin,f={};f.top=a[3]+(a[1]-(g.height()-v+40))*0.5;f.left=a[2]+(a[0]-(g.width()+40))*0.5;f.top=Math.max(a[3]+d,f.top);f.left=Math.max(a[2]+ +d,f.left);g.css(f);h=false};b.fn.fancybox.defaults={padding:10,margin:20,opacity:false,modal:false,cyclic:false,scrolling:"auto",width:560,height:340,autoScale:true,autoDimensions:true,centerOnScroll:false,ajax:{},swf:{wmode:"transparent"},hideOnOverlayClick:true,hideOnContentClick:false,overlayShow:true,overlayOpacity:0.3,overlayColor:"#666",titleShow:true,titlePosition:"outside",titleFormat:null,transitionIn:"fade",transitionOut:"fade",speedIn:300,speedOut:300,changeSpeed:300,changeFade:"fast", +easingIn:"swing",easingOut:"swing",showCloseButton:true,showNavArrows:true,enableEscapeButton:true,onStart:null,onCancel:null,onComplete:null,onCleanup:null,onClosed:null};b(document).ready(function(){aa()})})(jQuery); \ No newline at end of file diff --git a/public/javascripts/jquery-1.3.2.js b/public/javascripts/jquery-1.3.2.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/public/javascripts/jquery-1.3.2.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/public/javascripts/jquery-ui.js b/public/javascripts/jquery-ui.js new file mode 100644 index 0000000..889b7d1 --- /dev/null +++ b/public/javascripts/jquery-ui.js @@ -0,0 +1,270 @@ +/*! + * jQuery UI 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI + */ +(function(c,j){function k(a){return!c(a).parents().andSelf().filter(function(){return c.curCSS(this,"visibility")==="hidden"||c.expr.filters.hidden(this)}).length}c.ui=c.ui||{};if(!c.ui.version){c.extend(c.ui,{version:"1.8.5",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106, +NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});c.fn.extend({_focus:c.fn.focus,focus:function(a,b){return typeof a==="number"?this.each(function(){var d=this;setTimeout(function(){c(d).focus();b&&b.call(d)},a)}):this._focus.apply(this,arguments)},scrollParent:function(){var a;a=c.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(c.curCSS(this, +"position",1))&&/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0);return/fixed/.test(this.css("position"))||!a.length?c(document):a},zIndex:function(a){if(a!==j)return this.css("zIndex",a);if(this.length){a=c(this[0]);for(var b;a.length&&a[0]!==document;){b=a.css("position"); +if(b==="absolute"||b==="relative"||b==="fixed"){b=parseInt(a.css("zIndex"));if(!isNaN(b)&&b!=0)return b}a=a.parent()}}return 0},disableSelection:function(){return this.bind("mousedown.ui-disableSelection selectstart.ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});c.each(["Width","Height"],function(a,b){function d(f,g,l,m){c.each(e,function(){g-=parseFloat(c.curCSS(f,"padding"+this,true))||0;if(l)g-=parseFloat(c.curCSS(f, +"border"+this+"Width",true))||0;if(m)g-=parseFloat(c.curCSS(f,"margin"+this,true))||0});return g}var e=b==="Width"?["Left","Right"]:["Top","Bottom"],h=b.toLowerCase(),i={innerWidth:c.fn.innerWidth,innerHeight:c.fn.innerHeight,outerWidth:c.fn.outerWidth,outerHeight:c.fn.outerHeight};c.fn["inner"+b]=function(f){if(f===j)return i["inner"+b].call(this);return this.each(function(){c.style(this,h,d(this,f)+"px")})};c.fn["outer"+b]=function(f,g){if(typeof f!=="number")return i["outer"+b].call(this,f);return this.each(function(){c.style(this, +h,d(this,f,true,g)+"px")})}});c.extend(c.expr[":"],{data:function(a,b,d){return!!c.data(a,d[3])},focusable:function(a){var b=a.nodeName.toLowerCase(),d=c.attr(a,"tabindex");if("area"===b){b=a.parentNode;d=b.name;if(!a.href||!d||b.nodeName.toLowerCase()!=="map")return false;a=c("img[usemap=#"+d+"]")[0];return!!a&&k(a)}return(/input|select|textarea|button|object/.test(b)?!a.disabled:"a"==b?a.href||!isNaN(d):!isNaN(d))&&k(a)},tabbable:function(a){var b=c.attr(a,"tabindex");return(isNaN(b)||b>=0)&&c(a).is(":focusable")}}); +c(function(){var a=document.createElement("div"),b=document.body;c.extend(a.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});c.support.minHeight=b.appendChild(a).offsetHeight===100;b.removeChild(a).style.display="none"});c.extend(c.ui,{plugin:{add:function(a,b,d){a=c.ui[a].prototype;for(var e in d){a.plugins[e]=a.plugins[e]||[];a.plugins[e].push([b,d[e]])}},call:function(a,b,d){if((b=a.plugins[b])&&a.element[0].parentNode)for(var e=0;e0)return true;a[b]=1;d=a[b]>0;a[b]=0;return d},isOverAxis:function(a,b,d){return a>b&&a=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}})})(jQuery); +;/* + * jQuery UI Position 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Position + */ +(function(c){c.ui=c.ui||{};var n=/left|center|right/,o=/top|center|bottom/,t=c.fn.position,u=c.fn.offset;c.fn.position=function(b){if(!b||!b.of)return t.apply(this,arguments);b=c.extend({},b);var a=c(b.of),d=a[0],g=(b.collision||"flip").split(" "),e=b.offset?b.offset.split(" "):[0,0],h,k,j;if(d.nodeType===9){h=a.width();k=a.height();j={top:0,left:0}}else if(d.scrollTo&&d.document){h=a.width();k=a.height();j={top:a.scrollTop(),left:a.scrollLeft()}}else if(d.preventDefault){b.at="left top";h=k=0;j= +{top:b.of.pageY,left:b.of.pageX}}else{h=a.outerWidth();k=a.outerHeight();j=a.offset()}c.each(["my","at"],function(){var f=(b[this]||"").split(" ");if(f.length===1)f=n.test(f[0])?f.concat(["center"]):o.test(f[0])?["center"].concat(f):["center","center"];f[0]=n.test(f[0])?f[0]:"center";f[1]=o.test(f[1])?f[1]:"center";b[this]=f});if(g.length===1)g[1]=g[0];e[0]=parseInt(e[0],10)||0;if(e.length===1)e[1]=e[0];e[1]=parseInt(e[1],10)||0;if(b.at[0]==="right")j.left+=h;else if(b.at[0]==="center")j.left+=h/ +2;if(b.at[1]==="bottom")j.top+=k;else if(b.at[1]==="center")j.top+=k/2;j.left+=e[0];j.top+=e[1];return this.each(function(){var f=c(this),l=f.outerWidth(),m=f.outerHeight(),p=parseInt(c.curCSS(this,"marginLeft",true))||0,q=parseInt(c.curCSS(this,"marginTop",true))||0,v=l+p+parseInt(c.curCSS(this,"marginRight",true))||0,w=m+q+parseInt(c.curCSS(this,"marginBottom",true))||0,i=c.extend({},j),r;if(b.my[0]==="right")i.left-=l;else if(b.my[0]==="center")i.left-=l/2;if(b.my[1]==="bottom")i.top-=m;else if(b.my[1]=== +"center")i.top-=m/2;i.left=parseInt(i.left);i.top=parseInt(i.top);r={left:i.left-p,top:i.top-q};c.each(["left","top"],function(s,x){c.ui.position[g[s]]&&c.ui.position[g[s]][x](i,{targetWidth:h,targetHeight:k,elemWidth:l,elemHeight:m,collisionPosition:r,collisionWidth:v,collisionHeight:w,offset:e,my:b.my,at:b.at})});c.fn.bgiframe&&f.bgiframe();f.offset(c.extend(i,{using:b.using}))})};c.ui.position={fit:{left:function(b,a){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft(); +b.left=d>0?b.left-d:Math.max(b.left-a.collisionPosition.left,b.left)},top:function(b,a){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();b.top=d>0?b.top-d:Math.max(b.top-a.collisionPosition.top,b.top)}},flip:{left:function(b,a){if(a.at[0]!=="center"){var d=c(window);d=a.collisionPosition.left+a.collisionWidth-d.width()-d.scrollLeft();var g=a.my[0]==="left"?-a.elemWidth:a.my[0]==="right"?a.elemWidth:0,e=a.at[0]==="left"?a.targetWidth:-a.targetWidth,h=-2*a.offset[0]; +b.left+=a.collisionPosition.left<0?g+e+h:d>0?g+e+h:0}},top:function(b,a){if(a.at[1]!=="center"){var d=c(window);d=a.collisionPosition.top+a.collisionHeight-d.height()-d.scrollTop();var g=a.my[1]==="top"?-a.elemHeight:a.my[1]==="bottom"?a.elemHeight:0,e=a.at[1]==="top"?a.targetHeight:-a.targetHeight,h=-2*a.offset[1];b.top+=a.collisionPosition.top<0?g+e+h:d>0?g+e+h:0}}}};if(!c.offset.setOffset){c.offset.setOffset=function(b,a){if(/static/.test(c.curCSS(b,"position")))b.style.position="relative";var d= +c(b),g=d.offset(),e=parseInt(c.curCSS(b,"top",true),10)||0,h=parseInt(c.curCSS(b,"left",true),10)||0;g={top:a.top-g.top+e,left:a.left-g.left+h};"using"in a?a.using.call(b,g):d.css(g)};c.fn.offset=function(b){var a=this[0];if(!a||!a.ownerDocument)return null;if(b)return this.each(function(){c.offset.setOffset(this,b)});return u.call(this)}}})(jQuery); +;/* + * jQuery UI Draggable 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(d){d.widget("ui.draggable",d.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false},_create:function(){if(this.options.helper== +"original"&&!/^(?:r|a|f)/.test(this.element.css("position")))this.element[0].style.position="relative";this.options.addClasses&&this.element.addClass("ui-draggable");this.options.disabled&&this.element.addClass("ui-draggable-disabled");this._mouseInit()},destroy:function(){if(this.element.data("draggable")){this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy();return this}},_mouseCapture:function(a){var b= +this.options;if(this.helper||b.disabled||d(a.target).is(".ui-resizable-handle"))return false;this.handle=this._getHandle(a);if(!this.handle)return false;return true},_mouseStart:function(a){var b=this.options;this.helper=this._createHelper(a);this._cacheHelperProportions();if(d.ui.ddmanager)d.ui.ddmanager.current=this;this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.positionAbs=this.element.offset();this.offset={top:this.offset.top- +this.margins.top,left:this.offset.left-this.margins.left};d.extend(this.offset,{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this.position=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);b.containment&&this._setContainment();if(this._trigger("start",a)===false){this._clear();return false}this._cacheHelperProportions(); +d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.helper.addClass("ui-draggable-dragging");this._mouseDrag(a,true);return true},_mouseDrag:function(a,b){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute");if(!b){b=this._uiHash();if(this._trigger("drag",a,b)===false){this._mouseUp({});return false}this.position=b.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis|| +this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);return false},_mouseStop:function(a){var b=false;if(d.ui.ddmanager&&!this.options.dropBehaviour)b=d.ui.ddmanager.drop(this,a);if(this.dropped){b=this.dropped;this.dropped=false}if(!this.element[0]||!this.element[0].parentNode)return false;if(this.options.revert=="invalid"&&!b||this.options.revert=="valid"&&b||this.options.revert===true||d.isFunction(this.options.revert)&&this.options.revert.call(this.element, +b)){var c=this;d(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){c._trigger("stop",a)!==false&&c._clear()})}else this._trigger("stop",a)!==false&&this._clear();return false},cancel:function(){this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear();return this},_getHandle:function(a){var b=!this.options.handle||!d(this.options.handle,this.element).length?true:false;d(this.options.handle,this.element).find("*").andSelf().each(function(){if(this== +a.target)b=true});return b},_createHelper:function(a){var b=this.options;a=d.isFunction(b.helper)?d(b.helper.apply(this.element[0],[a])):b.helper=="clone"?this.element.clone():this.element;a.parents("body").length||a.appendTo(b.appendTo=="parent"?this.element[0].parentNode:b.appendTo);a[0]!=this.element[0]&&!/(fixed|absolute)/.test(a.css("position"))&&a.css("position","absolute");return a},_adjustOffsetFromHelper:function(a){if(typeof a=="string")a=a.split(" ");if(d.isArray(a))a={left:+a[0],top:+a[1]|| +0};if("left"in a)this.offset.click.left=a.left+this.margins.left;if("right"in a)this.offset.click.left=this.helperProportions.width-a.right+this.margins.left;if("top"in a)this.offset.click.top=a.top+this.margins.top;if("bottom"in a)this.offset.click.top=this.helperProportions.height-a.bottom+this.margins.top},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var a=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0])){a.left+=this.scrollParent.scrollLeft();a.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&d.browser.msie)a={top:0,left:0};return{top:a.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:a.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top- +(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var a=this.options;if(a.containment== +"parent")a.containment=this.helper[0].parentNode;if(a.containment=="document"||a.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,d(a.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(d(a.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(a.containment)&& +a.containment.constructor!=Array){var b=d(a.containment)[0];if(b){a=d(a.containment).offset();var c=d(b).css("overflow")!="hidden";this.containment=[a.left+(parseInt(d(b).css("borderLeftWidth"),10)||0)+(parseInt(d(b).css("paddingLeft"),10)||0)-this.margins.left,a.top+(parseInt(d(b).css("borderTopWidth"),10)||0)+(parseInt(d(b).css("paddingTop"),10)||0)-this.margins.top,a.left+(c?Math.max(b.scrollWidth,b.offsetWidth):b.offsetWidth)-(parseInt(d(b).css("borderLeftWidth"),10)||0)-(parseInt(d(b).css("paddingRight"), +10)||0)-this.helperProportions.width-this.margins.left,a.top+(c?Math.max(b.scrollHeight,b.offsetHeight):b.offsetHeight)-(parseInt(d(b).css("borderTopWidth"),10)||0)-(parseInt(d(b).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}}else if(a.containment.constructor==Array)this.containment=a.containment},_convertPositionTo:function(a,b){if(!b)b=this.position;a=a=="absolute"?1:-1;var c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0], +this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName);return{top:b.top+this.offset.relative.top*a+this.offset.parent.top*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():f?0:c.scrollTop())*a),left:b.left+this.offset.relative.left*a+this.offset.parent.left*a-(d.browser.safari&&d.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft(): +f?0:c.scrollLeft())*a)}},_generatePosition:function(a){var b=this.options,c=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&d.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,f=/(html|body)/i.test(c[0].tagName),e=a.pageX,g=a.pageY;if(this.originalPosition){if(this.containment){if(a.pageX-this.offset.click.leftthis.containment[2])e=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])?g:!(g-this.offset.click.topthis.containment[2])?e:!(e-this.offset.click.left
').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1E3}).css(d(this).offset()).appendTo("body")})},stop:function(){d("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});d.ui.plugin.add("draggable","opacity",{start:function(a,b){a=d(b.helper);b=d(this).data("draggable").options; +if(a.css("opacity"))b._opacity=a.css("opacity");a.css("opacity",b.opacity)},stop:function(a,b){a=d(this).data("draggable").options;a._opacity&&d(b.helper).css("opacity",a._opacity)}});d.ui.plugin.add("draggable","scroll",{start:function(){var a=d(this).data("draggable");if(a.scrollParent[0]!=document&&a.scrollParent[0].tagName!="HTML")a.overflowOffset=a.scrollParent.offset()},drag:function(a){var b=d(this).data("draggable"),c=b.options,f=false;if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!= +"HTML"){if(!c.axis||c.axis!="x")if(b.overflowOffset.top+b.scrollParent[0].offsetHeight-a.pageY=0;h--){var i=c.snapElements[h].left,k=i+c.snapElements[h].width,j=c.snapElements[h].top,l=j+c.snapElements[h].height;if(i-e=j&&f<=l||h>=j&&h<=l||fl)&&(e>= +i&&e<=k||g>=i&&g<=k||ek);default:return false}};d.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(a,b){var c=d.ui.ddmanager.droppables[a.options.scope]||[],e=b?b.type:null,g=(a.currentItem||a.element).find(":data(droppable)").andSelf(),f=0;a:for(;f
').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(), +top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle= +this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=a.handles||(!e(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne", +nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all")this.handles="n,e,s,w,se,sw,ne,nw";var c=this.handles.split(",");this.handles={};for(var d=0;d
');/sw|se|ne|nw/.test(f)&&g.css({zIndex:++a.zIndex});"se"==f&&g.addClass("ui-icon ui-icon-gripsmall-diagonal-se");this.handles[f]=".ui-resizable-"+f;this.element.append(g)}}this._renderAxis=function(h){h=h||this.element;for(var i in this.handles){if(this.handles[i].constructor== +String)this.handles[i]=e(this.handles[i],this.element).show();if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var j=e(this.handles[i],this.element),k=0;k=/sw|ne|nw|se|n|s/.test(i)?j.outerHeight():j.outerWidth();j=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");h.css(j,k);this._proportionallyResize()}e(this.handles[i])}};this._renderAxis(this.element);this._handles=e(".ui-resizable-handle",this.element).disableSelection(); +this._handles.mouseover(function(){if(!b.resizing){if(this.className)var h=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=h&&h[1]?h[1]:"se"}});if(a.autoHide){this._handles.hide();e(this.element).addClass("ui-resizable-autohide").hover(function(){e(this).removeClass("ui-resizable-autohide");b._handles.show()},function(){if(!b.resizing){e(this).addClass("ui-resizable-autohide");b._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(c){e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()}; +if(this.elementIsWrapper){b(this.element);var a=this.element;a.after(this.originalElement.css({position:a.css("position"),width:a.outerWidth(),height:a.outerHeight(),top:a.css("top"),left:a.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);b(this.originalElement);return this},_mouseCapture:function(b){var a=false;for(var c in this.handles)if(e(this.handles[c])[0]==b.target)a=true;return!this.options.disabled&&a},_mouseStart:function(b){var a=this.options,c=this.element.position(), +d=this.element;this.resizing=true;this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()};if(d.is(".ui-draggable")||/absolute/.test(d.css("position")))d.css({position:"absolute",top:c.top,left:c.left});e.browser.opera&&/relative/.test(d.css("position"))&&d.css({position:"relative",top:"auto",left:"auto"});this._renderProxy();c=m(this.helper.css("left"));var f=m(this.helper.css("top"));if(a.containment){c+=e(a.containment).scrollLeft()||0;f+=e(a.containment).scrollTop()||0}this.offset= +this.helper.offset();this.position={left:c,top:f};this.size=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalSize=this._helper?{width:d.outerWidth(),height:d.outerHeight()}:{width:d.width(),height:d.height()};this.originalPosition={left:c,top:f};this.sizeDiff={width:d.outerWidth()-d.width(),height:d.outerHeight()-d.height()};this.originalMousePosition={left:b.pageX,top:b.pageY};this.aspectRatio=typeof a.aspectRatio=="number"?a.aspectRatio: +this.originalSize.width/this.originalSize.height||1;a=e(".ui-resizable-"+this.axis).css("cursor");e("body").css("cursor",a=="auto"?this.axis+"-resize":a);d.addClass("ui-resizable-resizing");this._propagate("start",b);return true},_mouseDrag:function(b){var a=this.helper,c=this.originalMousePosition,d=this._change[this.axis];if(!d)return false;c=d.apply(this,[b,b.pageX-c.left||0,b.pageY-c.top||0]);if(this._aspectRatio||b.shiftKey)c=this._updateRatio(c,b);c=this._respectSize(c,b);this._propagate("resize", +b);a.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize();this._updateCache(c);this._trigger("resize",b,this.ui());return false},_mouseStop:function(b){this.resizing=false;var a=this.options,c=this;if(this._helper){var d=this._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName);d=f&&e.ui.hasScroll(d[0],"left")?0:c.sizeDiff.height; +f={width:c.size.width-(f?0:c.sizeDiff.width),height:c.size.height-d};d=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null;var g=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null;a.animate||this.element.css(e.extend(f,{top:g,left:d}));c.helper.height(c.size.height);c.helper.width(c.size.width);this._helper&&!a.animate&&this._proportionallyResize()}e("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop", +b);this._helper&&this.helper.remove();return false},_updateCache:function(b){this.offset=this.helper.offset();if(l(b.left))this.position.left=b.left;if(l(b.top))this.position.top=b.top;if(l(b.height))this.size.height=b.height;if(l(b.width))this.size.width=b.width},_updateRatio:function(b){var a=this.position,c=this.size,d=this.axis;if(b.height)b.width=c.height*this.aspectRatio;else if(b.width)b.height=c.width/this.aspectRatio;if(d=="sw"){b.left=a.left+(c.width-b.width);b.top=null}if(d=="nw"){b.top= +a.top+(c.height-b.height);b.left=a.left+(c.width-b.width)}return b},_respectSize:function(b){var a=this.options,c=this.axis,d=l(b.width)&&a.maxWidth&&a.maxWidthb.width,h=l(b.height)&&a.minHeight&&a.minHeight>b.height;if(g)b.width=a.minWidth;if(h)b.height=a.minHeight;if(d)b.width=a.maxWidth;if(f)b.height=a.maxHeight;var i=this.originalPosition.left+this.originalSize.width,j=this.position.top+this.size.height, +k=/sw|nw|w/.test(c);c=/nw|ne|n/.test(c);if(g&&k)b.left=i-a.minWidth;if(d&&k)b.left=i-a.maxWidth;if(h&&c)b.top=j-a.minHeight;if(f&&c)b.top=j-a.maxHeight;if((a=!b.width&&!b.height)&&!b.left&&b.top)b.top=null;else if(a&&!b.top&&b.left)b.left=null;return b},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var b=this.helper||this.element,a=0;a');var a=e.browser.msie&&e.browser.version<7,c=a?1:0;a=a?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+a,height:this.element.outerHeight()+a,position:"absolute",left:this.elementOffset.left-c+"px",top:this.elementOffset.top-c+"px",zIndex:++b.zIndex});this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(b,a){return{width:this.originalSize.width+ +a}},w:function(b,a){return{left:this.originalPosition.left+a,width:this.originalSize.width-a}},n:function(b,a,c){return{top:this.originalPosition.top+c,height:this.originalSize.height-c}},s:function(b,a,c){return{height:this.originalSize.height+c}},se:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,a,c]))},sw:function(b,a,c){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,a,c]))},ne:function(b,a,c){return e.extend(this._change.n.apply(this, +arguments),this._change.e.apply(this,[b,a,c]))},nw:function(b,a,c){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,a,c]))}},_propagate:function(b,a){e.ui.plugin.call(this,b,[a,this.ui()]);b!="resize"&&this._trigger(b,a,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});e.extend(e.ui.resizable, +{version:"1.8.5"});e.ui.plugin.add("resizable","alsoResize",{start:function(){var b=e(this).data("resizable").options,a=function(c){e(c).each(function(){var d=e(this);d.data("resizable-alsoresize",{width:parseInt(d.width(),10),height:parseInt(d.height(),10),left:parseInt(d.css("left"),10),top:parseInt(d.css("top"),10),position:d.css("position")})})};if(typeof b.alsoResize=="object"&&!b.alsoResize.parentNode)if(b.alsoResize.length){b.alsoResize=b.alsoResize[0];a(b.alsoResize)}else e.each(b.alsoResize, +function(c){a(c)});else a(b.alsoResize)},resize:function(b,a){var c=e(this).data("resizable");b=c.options;var d=c.originalSize,f=c.originalPosition,g={height:c.size.height-d.height||0,width:c.size.width-d.width||0,top:c.position.top-f.top||0,left:c.position.left-f.left||0},h=function(i,j){e(i).each(function(){var k=e(this),q=e(this).data("resizable-alsoresize"),p={},r=j&&j.length?j:k.parents(a.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(r,function(n,o){if((n= +(q[o]||0)+(g[o]||0))&&n>=0)p[o]=n||null});if(e.browser.opera&&/relative/.test(k.css("position"))){c._revertToRelativePosition=true;k.css({position:"absolute",top:"auto",left:"auto"})}k.css(p)})};typeof b.alsoResize=="object"&&!b.alsoResize.nodeType?e.each(b.alsoResize,function(i,j){h(i,j)}):h(b.alsoResize)},stop:function(){var b=e(this).data("resizable"),a=b.options,c=function(d){e(d).each(function(){var f=e(this);f.css({position:f.data("resizable-alsoresize").position})})};if(b._revertToRelativePosition){b._revertToRelativePosition= +false;typeof a.alsoResize=="object"&&!a.alsoResize.nodeType?e.each(a.alsoResize,function(d){c(d)}):c(a.alsoResize)}e(this).removeData("resizable-alsoresize")}});e.ui.plugin.add("resizable","animate",{stop:function(b){var a=e(this).data("resizable"),c=a.options,d=a._proportionallyResizeElements,f=d.length&&/textarea/i.test(d[0].nodeName),g=f&&e.ui.hasScroll(d[0],"left")?0:a.sizeDiff.height;f={width:a.size.width-(f?0:a.sizeDiff.width),height:a.size.height-g};g=parseInt(a.element.css("left"),10)+(a.position.left- +a.originalPosition.left)||null;var h=parseInt(a.element.css("top"),10)+(a.position.top-a.originalPosition.top)||null;a.element.animate(e.extend(f,h&&g?{top:h,left:g}:{}),{duration:c.animateDuration,easing:c.animateEasing,step:function(){var i={width:parseInt(a.element.css("width"),10),height:parseInt(a.element.css("height"),10),top:parseInt(a.element.css("top"),10),left:parseInt(a.element.css("left"),10)};d&&d.length&&e(d[0]).css({width:i.width,height:i.height});a._updateCache(i);a._propagate("resize", +b)}})}});e.ui.plugin.add("resizable","containment",{start:function(){var b=e(this).data("resizable"),a=b.element,c=b.options.containment;if(a=c instanceof e?c.get(0):/parent/.test(c)?a.parent().get(0):c){b.containerElement=e(a);if(/document/.test(c)||c==document){b.containerOffset={left:0,top:0};b.containerPosition={left:0,top:0};b.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight}}else{var d=e(a),f=[];e(["Top", +"Right","Left","Bottom"]).each(function(i,j){f[i]=m(d.css("padding"+j))});b.containerOffset=d.offset();b.containerPosition=d.position();b.containerSize={height:d.innerHeight()-f[3],width:d.innerWidth()-f[1]};c=b.containerOffset;var g=b.containerSize.height,h=b.containerSize.width;h=e.ui.hasScroll(a,"left")?a.scrollWidth:h;g=e.ui.hasScroll(a)?a.scrollHeight:g;b.parentData={element:a,left:c.left,top:c.top,width:h,height:g}}}},resize:function(b){var a=e(this).data("resizable"),c=a.options,d=a.containerOffset, +f=a.position;b=a._aspectRatio||b.shiftKey;var g={top:0,left:0},h=a.containerElement;if(h[0]!=document&&/static/.test(h.css("position")))g=d;if(f.left<(a._helper?d.left:0)){a.size.width+=a._helper?a.position.left-d.left:a.position.left-g.left;if(b)a.size.height=a.size.width/c.aspectRatio;a.position.left=c.helper?d.left:0}if(f.top<(a._helper?d.top:0)){a.size.height+=a._helper?a.position.top-d.top:a.position.top;if(b)a.size.width=a.size.height*c.aspectRatio;a.position.top=a._helper?d.top:0}a.offset.left= +a.parentData.left+a.position.left;a.offset.top=a.parentData.top+a.position.top;c=Math.abs((a._helper?a.offset.left-g.left:a.offset.left-g.left)+a.sizeDiff.width);d=Math.abs((a._helper?a.offset.top-g.top:a.offset.top-d.top)+a.sizeDiff.height);f=a.containerElement.get(0)==a.element.parent().get(0);g=/relative|absolute/.test(a.containerElement.css("position"));if(f&&g)c-=a.parentData.left;if(c+a.size.width>=a.parentData.width){a.size.width=a.parentData.width-c;if(b)a.size.height=a.size.width/a.aspectRatio}if(d+ +a.size.height>=a.parentData.height){a.size.height=a.parentData.height-d;if(b)a.size.width=a.size.height*a.aspectRatio}},stop:function(){var b=e(this).data("resizable"),a=b.options,c=b.containerOffset,d=b.containerPosition,f=b.containerElement,g=e(b.helper),h=g.offset(),i=g.outerWidth()-b.sizeDiff.width;g=g.outerHeight()-b.sizeDiff.height;b._helper&&!a.animate&&/relative/.test(f.css("position"))&&e(this).css({left:h.left-d.left-c.left,width:i,height:g});b._helper&&!a.animate&&/static/.test(f.css("position"))&& +e(this).css({left:h.left-d.left-c.left,width:i,height:g})}});e.ui.plugin.add("resizable","ghost",{start:function(){var b=e(this).data("resizable"),a=b.options,c=b.size;b.ghost=b.originalElement.clone();b.ghost.css({opacity:0.25,display:"block",position:"relative",height:c.height,width:c.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof a.ghost=="string"?a.ghost:"");b.ghost.appendTo(b.helper)},resize:function(){var b=e(this).data("resizable");b.ghost&&b.ghost.css({position:"relative", +height:b.size.height,width:b.size.width})},stop:function(){var b=e(this).data("resizable");b.ghost&&b.helper&&b.helper.get(0).removeChild(b.ghost.get(0))}});e.ui.plugin.add("resizable","grid",{resize:function(){var b=e(this).data("resizable"),a=b.options,c=b.size,d=b.originalSize,f=b.originalPosition,g=b.axis;a.grid=typeof a.grid=="number"?[a.grid,a.grid]:a.grid;var h=Math.round((c.width-d.width)/(a.grid[0]||1))*(a.grid[0]||1);a=Math.round((c.height-d.height)/(a.grid[1]||1))*(a.grid[1]||1);if(/^(se|s|e)$/.test(g)){b.size.width= +d.width+h;b.size.height=d.height+a}else if(/^(ne)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}else{if(/^(sw)$/.test(g)){b.size.width=d.width+h;b.size.height=d.height+a}else{b.size.width=d.width+h;b.size.height=d.height+a;b.position.top=f.top-a}b.position.left=f.left-h}}});var m=function(b){return parseInt(b,10)||0},l=function(b){return!isNaN(parseInt(b,10))}})(jQuery); +;/* + * jQuery UI Selectable 1.8.5 + * + * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * http://docs.jquery.com/UI/Selectables + * + * Depends: + * jquery.ui.core.js + * jquery.ui.mouse.js + * jquery.ui.widget.js + */ +(function(e){e.widget("ui.selectable",e.ui.mouse,{options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch"},_create:function(){var c=this;this.element.addClass("ui-selectable");this.dragged=false;var f;this.refresh=function(){f=e(c.options.filter,c.element[0]);f.each(function(){var d=e(this),b=d.offset();e.data(this,"selectable-item",{element:this,$element:d,left:b.left,top:b.top,right:b.left+d.outerWidth(),bottom:b.top+d.outerHeight(),startselected:false,selected:d.hasClass("ui-selected"), +selecting:d.hasClass("ui-selecting"),unselecting:d.hasClass("ui-unselecting")})})};this.refresh();this.selectees=f.addClass("ui-selectee");this._mouseInit();this.helper=e("
")},destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable");this._mouseDestroy();return this},_mouseStart:function(c){var f=this;this.opos=[c.pageX, +c.pageY];if(!this.options.disabled){var d=this.options;this.selectees=e(d.filter,this.element[0]);this._trigger("start",c);e(d.appendTo).append(this.helper);this.helper.css({left:c.clientX,top:c.clientY,width:0,height:0});d.autoRefresh&&this.refresh();this.selectees.filter(".ui-selected").each(function(){var b=e.data(this,"selectable-item");b.startselected=true;if(!c.metaKey){b.$element.removeClass("ui-selected");b.selected=false;b.$element.addClass("ui-unselecting");b.unselecting=true;f._trigger("unselecting", +c,{unselecting:b.element})}});e(c.target).parents().andSelf().each(function(){var b=e.data(this,"selectable-item");if(b){var g=!c.metaKey||!b.$element.hasClass("ui-selected");b.$element.removeClass(g?"ui-unselecting":"ui-selected").addClass(g?"ui-selecting":"ui-unselecting");b.unselecting=!g;b.selecting=g;(b.selected=g)?f._trigger("selecting",c,{selecting:b.element}):f._trigger("unselecting",c,{unselecting:b.element});return false}})}},_mouseDrag:function(c){var f=this;this.dragged=true;if(!this.options.disabled){var d= +this.options,b=this.opos[0],g=this.opos[1],h=c.pageX,i=c.pageY;if(b>h){var j=h;h=b;b=j}if(g>i){j=i;i=g;g=j}this.helper.css({left:b,top:g,width:h-b,height:i-g});this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!(!a||a.element==f.element[0])){var k=false;if(d.tolerance=="touch")k=!(a.left>h||a.righti||a.bottomb&&a.rightg&&a.bottom *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1E3},_create:function(){this.containerCache={};this.element.addClass("ui-sortable"); +this.refresh();this.floating=this.items.length?/left|right/.test(this.items[0].item.css("float")):false;this.offset=this.element.offset();this._mouseInit()},destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable");this._mouseDestroy();for(var a=this.items.length-1;a>=0;a--)this.items[a].item.removeData("sortable-item");return this},_setOption:function(a,b){if(a==="disabled"){this.options[a]=b;this.widget()[b?"addClass":"removeClass"]("ui-sortable-disabled")}else d.Widget.prototype._setOption.apply(this, +arguments)},_mouseCapture:function(a,b){if(this.reverting)return false;if(this.options.disabled||this.options.type=="static")return false;this._refreshItems(a);var c=null,e=this;d(a.target).parents().each(function(){if(d.data(this,"sortable-item")==e){c=d(this);return false}});if(d.data(a.target,"sortable-item")==e)c=d(a.target);if(!c)return false;if(this.options.handle&&!b){var f=false;d(this.options.handle,c).find("*").andSelf().each(function(){if(this==a.target)f=true});if(!f)return false}this.currentItem= +c;this._removeCurrentsFromItems();return true},_mouseStart:function(a,b,c){b=this.options;var e=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(a);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");d.extend(this.offset, +{click:{left:a.pageX-this.offset.left,top:a.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(a);this.originalPageX=a.pageX;this.originalPageY=a.pageY;b.cursorAt&&this._adjustOffsetFromHelper(b.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};this.helper[0]!=this.currentItem[0]&&this.currentItem.hide();this._createPlaceholder();b.containment&&this._setContainment(); +if(b.cursor){if(d("body").css("cursor"))this._storedCursor=d("body").css("cursor");d("body").css("cursor",b.cursor)}if(b.opacity){if(this.helper.css("opacity"))this._storedOpacity=this.helper.css("opacity");this.helper.css("opacity",b.opacity)}if(b.zIndex){if(this.helper.css("zIndex"))this._storedZIndex=this.helper.css("zIndex");this.helper.css("zIndex",b.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML")this.overflowOffset=this.scrollParent.offset();this._trigger("start", +a,this._uiHash());this._preserveHelperProportions||this._cacheHelperProportions();if(!c)for(c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("activate",a,e._uiHash(this));if(d.ui.ddmanager)d.ui.ddmanager.current=this;d.ui.ddmanager&&!b.dropBehaviour&&d.ui.ddmanager.prepareOffsets(this,a);this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(a);return true},_mouseDrag:function(a){this.position=this._generatePosition(a);this.positionAbs=this._convertPositionTo("absolute"); +if(!this.lastPositionAbs)this.lastPositionAbs=this.positionAbs;if(this.options.scroll){var b=this.options,c=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-a.pageY=0;b--){c=this.items[b];var e=c.item[0],f=this._intersectsWithPointer(c);if(f)if(e!=this.currentItem[0]&&this.placeholder[f==1?"next":"prev"]()[0]!=e&&!d.ui.contains(this.placeholder[0],e)&&(this.options.type=="semi-dynamic"?!d.ui.contains(this.element[0],e):true)){this.direction=f==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(c))this._rearrange(a, +c);else break;this._trigger("change",a,this._uiHash());break}}this._contactContainers(a);d.ui.ddmanager&&d.ui.ddmanager.drag(this,a);this._trigger("sort",a,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(a,b){if(a){d.ui.ddmanager&&!this.options.dropBehaviour&&d.ui.ddmanager.drop(this,a);if(this.options.revert){var c=this;b=c.placeholder.offset();c.reverting=true;d(this.helper).animate({left:b.left-this.offset.parent.left-c.margins.left+(this.offsetParent[0]== +document.body?0:this.offsetParent[0].scrollLeft),top:b.top-this.offset.parent.top-c.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){c._clear(a)})}else this._clear(a,b);return false}},cancel:function(){var a=this;if(this.dragging){this._mouseUp();this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var b=this.containers.length-1;b>=0;b--){this.containers[b]._trigger("deactivate", +null,a._uiHash(this));if(this.containers[b].containerCache.over){this.containers[b]._trigger("out",null,a._uiHash(this));this.containers[b].containerCache.over=0}}}this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]);this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove();d.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});this.domPosition.prev?d(this.domPosition.prev).after(this.currentItem): +d(this.domPosition.parent).prepend(this.currentItem);return this},serialize:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};d(b).each(function(){var e=(d(a.item||this).attr(a.attribute||"id")||"").match(a.expression||/(.+)[-=_](.+)/);if(e)c.push((a.key||e[1]+"[]")+"="+(a.key&&a.expression?e[1]:e[2]))});!c.length&&a.key&&c.push(a.key+"=");return c.join("&")},toArray:function(a){var b=this._getItemsAsjQuery(a&&a.connected),c=[];a=a||{};b.each(function(){c.push(d(a.item||this).attr(a.attribute|| +"id")||"")});return c},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,e=this.positionAbs.top,f=e+this.helperProportions.height,g=a.left,h=g+a.width,i=a.top,k=i+a.height,j=this.offset.click.top,l=this.offset.click.left;j=e+j>i&&e+jg&&b+la[this.floating?"width":"height"]?j:g0?"down":"up")}, +_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){this._refreshItems(a);this.refreshPositions();return this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(a){var b=[],c=[],e=this._connectWith();if(e&&a)for(a=e.length-1;a>=0;a--)for(var f=d(e[a]),g=f.length-1;g>=0;g--){var h=d.data(f[g],"sortable");if(h&&h!= +this&&!h.options.disabled)c.push([d.isFunction(h.options.items)?h.options.items.call(h.element):d(h.options.items,h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),h])}c.push([d.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):d(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(a=c.length-1;a>=0;a--)c[a][0].each(function(){b.push(this)});return d(b)},_removeCurrentsFromItems:function(){for(var a= +this.currentItem.find(":data(sortable-item)"),b=0;b=0;f--)for(var g=d(e[f]),h=g.length-1;h>=0;h--){var i=d.data(g[h],"sortable"); +if(i&&i!=this&&!i.options.disabled){c.push([d.isFunction(i.options.items)?i.options.items.call(i.element[0],a,{item:this.currentItem}):d(i.options.items,i.element),i]);this.containers.push(i)}}for(f=c.length-1;f>=0;f--){a=c[f][1];e=c[f][0];h=0;for(g=e.length;h= +0;b--){var c=this.items[b],e=this.options.toleranceElement?d(this.options.toleranceElement,c.item):c.item;if(!a){c.width=e.outerWidth();c.height=e.outerHeight()}e=e.offset();c.left=e.left;c.top=e.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(b=this.containers.length-1;b>=0;b--){e=this.containers[b].element.offset();this.containers[b].containerCache.left=e.left;this.containers[b].containerCache.top=e.top;this.containers[b].containerCache.width= +this.containers[b].element.outerWidth();this.containers[b].containerCache.height=this.containers[b].element.outerHeight()}return this},_createPlaceholder:function(a){var b=a||this,c=b.options;if(!c.placeholder||c.placeholder.constructor==String){var e=c.placeholder;c.placeholder={element:function(){var f=d(document.createElement(b.currentItem[0].nodeName)).addClass(e||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!e)f.style.visibility="hidden";return f}, +update:function(f,g){if(!(e&&!c.forcePlaceholderSize)){g.height()||g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10));g.width()||g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=d(c.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);c.placeholder.update(b,b.placeholder)},_contactContainers:function(a){for(var b= +null,c=null,e=this.containers.length-1;e>=0;e--)if(!d.ui.contains(this.currentItem[0],this.containers[e].element[0]))if(this._intersectsWith(this.containers[e].containerCache)){if(!(b&&d.ui.contains(this.containers[e].element[0],b.element[0]))){b=this.containers[e];c=e}}else if(this.containers[e].containerCache.over){this.containers[e]._trigger("out",a,this._uiHash(this));this.containers[e].containerCache.over=0}if(b)if(this.containers.length===1){this.containers[c]._trigger("over",a,this._uiHash(this)); +this.containers[c].containerCache.over=1}else if(this.currentContainer!=this.containers[c]){b=1E4;e=null;for(var f=this.positionAbs[this.containers[c].floating?"left":"top"],g=this.items.length-1;g>=0;g--)if(d.ui.contains(this.containers[c].element[0],this.items[g].item[0])){var h=this.items[g][this.containers[c].floating?"left":"top"];if(Math.abs(h-f)this.containment[2])f=this.containment[2]+this.offset.click.left;if(a.pageY-this.offset.click.top>this.containment[3])g=this.containment[3]+this.offset.click.top}if(b.grid){g=this.originalPageY+Math.round((g-this.originalPageY)/b.grid[1])*b.grid[1];g=this.containment?!(g-this.offset.click.topthis.containment[3])? +g:!(g-this.offset.click.topthis.containment[2])?f:!(f-this.offset.click.left=0;e--)if(d.ui.contains(this.containers[e].element[0],this.currentItem[0])&&!b){c.push(function(f){return function(g){f._trigger("receive", +g,this._uiHash(this))}}.call(this,this.containers[e]));c.push(function(f){return function(g){f._trigger("update",g,this._uiHash(this))}}.call(this,this.containers[e]))}}for(e=this.containers.length-1;e>=0;e--){b||c.push(function(f){return function(g){f._trigger("deactivate",g,this._uiHash(this))}}.call(this,this.containers[e]));if(this.containers[e].containerCache.over){c.push(function(f){return function(g){f._trigger("out",g,this._uiHash(this))}}.call(this,this.containers[e]));this.containers[e].containerCache.over= +0}}this._storedCursor&&d("body").css("cursor",this._storedCursor);this._storedOpacity&&this.helper.css("opacity",this._storedOpacity);if(this._storedZIndex)this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex);this.dragging=false;if(this.cancelHelperRemoval){if(!b){this._trigger("beforeStop",a,this._uiHash());for(e=0;e0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* + * jQuery UI Draggable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/public/javascripts/jquery.fancybox-1.3.1.js b/public/javascripts/jquery.fancybox-1.3.1.js new file mode 100644 index 0000000..688f93a --- /dev/null +++ b/public/javascripts/jquery.fancybox-1.3.1.js @@ -0,0 +1,1077 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * + * Version: 1.3.1 (05/03/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +(function($) { + + var tmp, loading, overlay, wrap, outer, inner, close, nav_left, nav_right, + + selectedIndex = 0, selectedOpts = {}, selectedArray = [], currentIndex = 0, currentOpts = {}, currentArray = [], + + ajaxLoader = null, imgPreloader = new Image(), imgRegExp = /\.(jpg|gif|png|bmp|jpeg)(.*)?$/i, swfRegExp = /[^\.]\.(swf)\s*$/i, + + loadingTimer, loadingFrame = 1, + + start_pos, final_pos, busy = false, shadow = 20, fx = $.extend($('
')[0], { prop: 0 }), titleh = 0, + + isIE6 = !$.support.opacity && !window.XMLHttpRequest, + + /* + * Private methods + */ + + fancybox_abort = function() { + loading.hide(); + + imgPreloader.onerror = imgPreloader.onload = null; + + if (ajaxLoader) { + ajaxLoader.abort(); + } + + tmp.empty(); + }, + + fancybox_error = function() { + $.fancybox('

The requested content cannot be loaded.
Please try again later.

', { + 'scrolling' : 'no', + 'padding' : 20, + 'transitionIn' : 'none', + 'transitionOut' : 'none' + }); + }, + + fancybox_get_viewport = function() { + return [ $(window).width(), $(window).height(), $(document).scrollLeft(), $(document).scrollTop() ]; + }, + + fancybox_get_zoom_to = function () { + var view = fancybox_get_viewport(), + to = {}, + + margin = currentOpts.margin, + resize = currentOpts.autoScale, + + horizontal_space = (shadow + margin) * 2, + vertical_space = (shadow + margin) * 2, + double_padding = (currentOpts.padding * 2), + + ratio; + + if (currentOpts.width.toString().indexOf('%') > -1) { + to.width = ((view[0] * parseFloat(currentOpts.width)) / 100) - (shadow * 2) ; + resize = false; + + } else { + to.width = currentOpts.width + double_padding; + } + + if (currentOpts.height.toString().indexOf('%') > -1) { + to.height = ((view[1] * parseFloat(currentOpts.height)) / 100) - (shadow * 2); + resize = false; + + } else { + to.height = currentOpts.height + double_padding; + } + + if (resize && (to.width > (view[0] - horizontal_space) || to.height > (view[1] - vertical_space))) { + if (selectedOpts.type == 'image' || selectedOpts.type == 'swf') { + horizontal_space += double_padding; + vertical_space += double_padding; + + ratio = Math.min(Math.min( view[0] - horizontal_space, currentOpts.width) / currentOpts.width, Math.min( view[1] - vertical_space, currentOpts.height) / currentOpts.height); + + to.width = Math.round(ratio * (to.width - double_padding)) + double_padding; + to.height = Math.round(ratio * (to.height - double_padding)) + double_padding; + + } else { + to.width = Math.min(to.width, (view[0] - horizontal_space)); + to.height = Math.min(to.height, (view[1] - vertical_space)); + } + } + + to.top = view[3] + ((view[1] - (to.height + (shadow * 2 ))) * 0.5); + to.left = view[2] + ((view[0] - (to.width + (shadow * 2 ))) * 0.5); + + if (currentOpts.autoScale === false) { + to.top = Math.max(view[3] + margin, to.top); + to.left = Math.max(view[2] + margin, to.left); + } + + return to; + }, + + fancybox_format_title = function(title) { + if (title && title.length) { + switch (currentOpts.titlePosition) { + case 'inside': + return title; + case 'over': + return '' + title + ''; + default: + return '' + title + ''; + } + } + + return false; + }, + + fancybox_process_title = function() { + var title = currentOpts.title, + width = final_pos.width - (currentOpts.padding * 2), + titlec = 'fancybox-title-' + currentOpts.titlePosition; + + $('#fancybox-title').remove(); + + titleh = 0; + + if (currentOpts.titleShow === false) { + return; + } + + title = $.isFunction(currentOpts.titleFormat) ? currentOpts.titleFormat(title, currentArray, currentIndex, currentOpts) : fancybox_format_title(title); + + if (!title || title === '') { + return; + } + + $('
').css({ + 'width' : width, + 'paddingLeft' : currentOpts.padding, + 'paddingRight' : currentOpts.padding + }).html(title).appendTo('body'); + + switch (currentOpts.titlePosition) { + case 'inside': + titleh = $("#fancybox-title").outerHeight(true) - currentOpts.padding; + final_pos.height += titleh; + break; + + case 'over': + $('#fancybox-title').css('bottom', currentOpts.padding); + break; + + default: + $('#fancybox-title').css('bottom', $("#fancybox-title").outerHeight(true) * -1); + break; + } + + $('#fancybox-title').appendTo( outer ).hide(); + }, + + fancybox_set_navigation = function() { + $(document).unbind('keydown.fb').bind('keydown.fb', function(e) { + if (e.keyCode == 27 && currentOpts.enableEscapeButton) { + e.preventDefault(); + $.fancybox.close(); + + } else if (e.keyCode == 37) { + e.preventDefault(); + $.fancybox.prev(); + + } else if (e.keyCode == 39) { + e.preventDefault(); + $.fancybox.next(); + } + }); + + if ($.fn.mousewheel) { + wrap.unbind('mousewheel.fb'); + + if (currentArray.length > 1) { + wrap.bind('mousewheel.fb', function(e, delta) { + e.preventDefault(); + + if (busy || delta === 0) { + return; + } + + if (delta > 0) { + $.fancybox.prev(); + } else { + $.fancybox.next(); + } + }); + } + } + + if (!currentOpts.showNavArrows) { return; } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex !== 0) { + nav_left.show(); + } + + if ((currentOpts.cyclic && currentArray.length > 1) || currentIndex != (currentArray.length -1)) { + nav_right.show(); + } + }, + + fancybox_preload_images = function() { + var href, + objNext; + + if ((currentArray.length -1) > currentIndex) { + href = currentArray[ currentIndex + 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + + if (currentIndex > 0) { + href = currentArray[ currentIndex - 1 ].href; + + if (typeof href !== 'undefined' && href.match(imgRegExp)) { + objNext = new Image(); + objNext.src = href; + } + } + }, + + _finish = function () { + inner.css('overflow', (currentOpts.scrolling == 'auto' ? (currentOpts.type == 'image' || currentOpts.type == 'iframe' || currentOpts.type == 'swf' ? 'hidden' : 'auto') : (currentOpts.scrolling == 'yes' ? 'auto' : 'visible'))); + + if (!$.support.opacity) { + inner.get(0).style.removeAttribute('filter'); + wrap.get(0).style.removeAttribute('filter'); + } + + $('#fancybox-title').show(); + + if (currentOpts.hideOnContentClick) { + inner.one('click', $.fancybox.close); + } + if (currentOpts.hideOnOverlayClick) { + overlay.one('click', $.fancybox.close); + } + + if (currentOpts.showCloseButton) { + close.show(); + } + + fancybox_set_navigation(); + + $(window).bind("resize.fb", $.fancybox.center); + + if (currentOpts.centerOnScroll) { + $(window).bind("scroll.fb", $.fancybox.center); + } else { + $(window).unbind("scroll.fb"); + } + + if ($.isFunction(currentOpts.onComplete)) { + currentOpts.onComplete(currentArray, currentIndex, currentOpts); + } + + busy = false; + + fancybox_preload_images(); + }, + + fancybox_draw = function(pos) { + var width = Math.round(start_pos.width + (final_pos.width - start_pos.width) * pos), + height = Math.round(start_pos.height + (final_pos.height - start_pos.height) * pos), + + top = Math.round(start_pos.top + (final_pos.top - start_pos.top) * pos), + left = Math.round(start_pos.left + (final_pos.left - start_pos.left) * pos); + + wrap.css({ + 'width' : width + 'px', + 'height' : height + 'px', + 'top' : top + 'px', + 'left' : left + 'px' + }); + + width = Math.max(width - currentOpts.padding * 2, 0); + height = Math.max(height - (currentOpts.padding * 2 + (titleh * pos)), 0); + + inner.css({ + 'width' : width + 'px', + 'height' : height + 'px' + }); + + if (typeof final_pos.opacity !== 'undefined') { + wrap.css('opacity', (pos < 0.5 ? 0.5 : pos)); + } + }, + + fancybox_get_obj_pos = function(obj) { + var pos = obj.offset(); + + pos.top += parseFloat( obj.css('paddingTop') ) || 0; + pos.left += parseFloat( obj.css('paddingLeft') ) || 0; + + pos.top += parseFloat( obj.css('border-top-width') ) || 0; + pos.left += parseFloat( obj.css('border-left-width') ) || 0; + + pos.width = obj.width(); + pos.height = obj.height(); + + return pos; + }, + + fancybox_get_zoom_from = function() { + var orig = selectedOpts.orig ? $(selectedOpts.orig) : false, + from = {}, + pos, + view; + + if (orig && orig.length) { + pos = fancybox_get_obj_pos(orig); + + from = { + width : (pos.width + (currentOpts.padding * 2)), + height : (pos.height + (currentOpts.padding * 2)), + top : (pos.top - currentOpts.padding - shadow), + left : (pos.left - currentOpts.padding - shadow) + }; + + } else { + view = fancybox_get_viewport(); + + from = { + width : 1, + height : 1, + top : view[3] + view[1] * 0.5, + left : view[2] + view[0] * 0.5 + }; + } + + return from; + }, + + fancybox_show = function() { + loading.hide(); + + if (wrap.is(":visible") && $.isFunction(currentOpts.onCleanup)) { + if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) { + $.event.trigger('fancybox-cancel'); + + busy = false; + return; + } + } + + currentArray = selectedArray; + currentIndex = selectedIndex; + currentOpts = selectedOpts; + + inner.get(0).scrollTop = 0; + inner.get(0).scrollLeft = 0; + + if (currentOpts.overlayShow) { + if (isIE6) { + $('select:not(#fancybox-tmp select)').filter(function() { + return this.style.visibility !== 'hidden'; + }).css({'visibility':'hidden'}).one('fancybox-cleanup', function() { + this.style.visibility = 'inherit'; + }); + } + + overlay.css({ + 'background-color' : currentOpts.overlayColor, + 'opacity' : currentOpts.overlayOpacity + }).unbind().show(); + } + + final_pos = fancybox_get_zoom_to(); + + fancybox_process_title(); + + if (wrap.is(":visible")) { + $( close.add( nav_left ).add( nav_right ) ).hide(); + + var pos = wrap.position(), + equal; + + start_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + equal = (start_pos.width == final_pos.width && start_pos.height == final_pos.height); + + inner.fadeOut(currentOpts.changeFade, function() { + var finish_resizing = function() { + inner.html( tmp.contents() ).fadeIn(currentOpts.changeFade, _finish); + }; + + $.event.trigger('fancybox-change'); + + inner.empty().css('overflow', 'hidden'); + + if (equal) { + inner.css({ + top : currentOpts.padding, + left : currentOpts.padding, + width : Math.max(final_pos.width - (currentOpts.padding * 2), 1), + height : Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1) + }); + + finish_resizing(); + + } else { + inner.css({ + top : currentOpts.padding, + left : currentOpts.padding, + width : Math.max(start_pos.width - (currentOpts.padding * 2), 1), + height : Math.max(start_pos.height - (currentOpts.padding * 2), 1) + }); + + fx.prop = 0; + + $(fx).animate({ prop: 1 }, { + duration : currentOpts.changeSpeed, + easing : currentOpts.easingChange, + step : fancybox_draw, + complete : finish_resizing + }); + } + }); + + return; + } + + wrap.css('opacity', 1); + + if (currentOpts.transitionIn == 'elastic') { + start_pos = fancybox_get_zoom_from(); + + inner.css({ + top : currentOpts.padding, + left : currentOpts.padding, + width : Math.max(start_pos.width - (currentOpts.padding * 2), 1), + height : Math.max(start_pos.height - (currentOpts.padding * 2), 1) + }) + .html( tmp.contents() ); + + wrap.css(start_pos).show(); + + if (currentOpts.opacity) { + final_pos.opacity = 0; + } + + fx.prop = 0; + + $(fx).animate({ prop: 1 }, { + duration : currentOpts.speedIn, + easing : currentOpts.easingIn, + step : fancybox_draw, + complete : _finish + }); + + } else { + inner.css({ + top : currentOpts.padding, + left : currentOpts.padding, + width : Math.max(final_pos.width - (currentOpts.padding * 2), 1), + height : Math.max(final_pos.height - (currentOpts.padding * 2) - titleh, 1) + }) + .html( tmp.contents() ); + + wrap.css( final_pos ).fadeIn( currentOpts.transitionIn == 'none' ? 0 : currentOpts.speedIn, _finish ); + } + }, + + fancybox_process_inline = function() { + tmp.width( selectedOpts.width ); + tmp.height( selectedOpts.height ); + + if (selectedOpts.width == 'auto') { + selectedOpts.width = tmp.width(); + } + if (selectedOpts.height == 'auto') { + selectedOpts.height = tmp.height(); + } + + fancybox_show(); + }, + + fancybox_process_image = function() { + busy = true; + + selectedOpts.width = imgPreloader.width; + selectedOpts.height = imgPreloader.height; + + $("").attr({ + 'id' : 'fancybox-img', + 'src' : imgPreloader.src, + 'alt' : selectedOpts.title + }).appendTo( tmp ); + + fancybox_show(); + }, + + fancybox_start = function() { + fancybox_abort(); + + var obj = selectedArray[ selectedIndex ], + href, + type, + title, + str, + emb, + selector, + data; + + selectedOpts = $.extend({}, $.fn.fancybox.defaults, (typeof $(obj).data('fancybox') == 'undefined' ? selectedOpts : $(obj).data('fancybox'))); + title = obj.title || $(obj).title || selectedOpts.title || ''; + + if (obj.nodeName && !selectedOpts.orig) { + selectedOpts.orig = $(obj).children("img:first").length ? $(obj).children("img:first") : $(obj); + } + + if (title === '' && selectedOpts.orig) { + title = selectedOpts.orig.attr('alt'); + } + + if (obj.nodeName && (/^(?:javascript|#)/i).test(obj.href)) { + href = selectedOpts.href || null; + } else { + href = selectedOpts.href || obj.href || null; + } + + if (selectedOpts.type) { + type = selectedOpts.type; + + if (!href) { + href = selectedOpts.content; + } + + } else if (selectedOpts.content) { + type = 'html'; + + } else if (href) { + if (href.match(imgRegExp)) { + type = 'image'; + + } else if (href.match(swfRegExp)) { + type = 'swf'; + + } else if ($(obj).hasClass("iframe")) { + type = 'iframe'; + + } else if (href.match(/#/)) { + obj = href.substr(href.indexOf("#")); + + type = $(obj).length > 0 ? 'inline' : 'ajax'; + } else { + type = 'ajax'; + } + } else { + type = 'inline'; + } + + selectedOpts.type = type; + selectedOpts.href = href; + selectedOpts.title = title; + + if (selectedOpts.autoDimensions && selectedOpts.type !== 'iframe' && selectedOpts.type !== 'swf') { + selectedOpts.width = 'auto'; + selectedOpts.height = 'auto'; + } + + if (selectedOpts.modal) { + selectedOpts.overlayShow = true; + selectedOpts.hideOnOverlayClick = false; + selectedOpts.hideOnContentClick = false; + selectedOpts.enableEscapeButton = false; + selectedOpts.showCloseButton = false; + } + + if ($.isFunction(selectedOpts.onStart)) { + if (selectedOpts.onStart(selectedArray, selectedIndex, selectedOpts) === false) { + busy = false; + return; + } + } + + tmp.css('padding', (shadow + selectedOpts.padding + selectedOpts.margin)); + + $('.fancybox-inline-tmp').unbind('fancybox-cancel').bind('fancybox-change', function() { + $(this).replaceWith(inner.children()); + }); + + switch (type) { + case 'html' : + tmp.html( selectedOpts.content ); + fancybox_process_inline(); + break; + + case 'inline' : + $('
').hide().insertBefore( $(obj) ).bind('fancybox-cleanup', function() { + $(this).replaceWith(inner.children()); + }).bind('fancybox-cancel', function() { + $(this).replaceWith(tmp.children()); + }); + + $(obj).appendTo(tmp); + + fancybox_process_inline(); + break; + + case 'image': + busy = false; + + $.fancybox.showActivity(); + + imgPreloader = new Image(); + + imgPreloader.onerror = function() { + fancybox_error(); + }; + + imgPreloader.onload = function() { + imgPreloader.onerror = null; + imgPreloader.onload = null; + fancybox_process_image(); + }; + + imgPreloader.src = href; + + break; + + case 'swf': + str = ''; + emb = ''; + + $.each(selectedOpts.swf, function(name, val) { + str += ''; + emb += ' ' + name + '="' + val + '"'; + }); + + str += ''; + + tmp.html(str); + + fancybox_process_inline(); + break; + + case 'ajax': + selector = href.split('#', 2); + data = selectedOpts.ajax.data || {}; + + if (selector.length > 1) { + href = selector[0]; + + if (typeof data == "string") { + data += '&selector=' + selector[1]; + } else { + data.selector = selector[1]; + } + } + + busy = false; + $.fancybox.showActivity(); + + ajaxLoader = $.ajax($.extend(selectedOpts.ajax, { + url : href, + data : data, + error : fancybox_error, + success : function(data, textStatus, XMLHttpRequest) { + if (ajaxLoader.status == 200) { + tmp.html( data ); + fancybox_process_inline(); + } + } + })); + + break; + + case 'iframe' : + $('').appendTo(tmp); + fancybox_show(); + break; + } + }, + + fancybox_animate_loading = function() { + if (!loading.is(':visible')){ + clearInterval(loadingTimer); + return; + } + + $('div', loading).css('top', (loadingFrame * -40) + 'px'); + + loadingFrame = (loadingFrame + 1) % 12; + }, + + fancybox_init = function() { + if ($("#fancybox-wrap").length) { + return; + } + + $('body').append( + tmp = $('
'), + loading = $('
'), + overlay = $('
'), + wrap = $('
') + ); + + if (!$.support.opacity) { + wrap.addClass('fancybox-ie'); + loading.addClass('fancybox-ie'); + } + + outer = $('
') + .append('
') + .appendTo( wrap ); + + outer.append( + inner = $('
'), + close = $(''), + + nav_left = $(''), + nav_right = $('') + ); + + close.click($.fancybox.close); + loading.click($.fancybox.cancel); + + nav_left.click(function(e) { + e.preventDefault(); + $.fancybox.prev(); + }); + + nav_right.click(function(e) { + e.preventDefault(); + $.fancybox.next(); + }); + + if (isIE6) { + overlay.get(0).style.setExpression('height', "document.body.scrollHeight > document.body.offsetHeight ? document.body.scrollHeight : document.body.offsetHeight + 'px'"); + loading.get(0).style.setExpression('top', "(-20 + (document.documentElement.clientHeight ? document.documentElement.clientHeight/2 : document.body.clientHeight/2 ) + ( ignoreMe = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop )) + 'px'"); + + outer.prepend(''); + } + }; + + /* + * Public methods + */ + + $.fn.fancybox = function(options) { + $(this) + .data('fancybox', $.extend({}, options, ($.metadata ? $(this).metadata() : {}))) + .unbind('click.fb').bind('click.fb', function(e) { + e.preventDefault(); + + if (busy) { + return; + } + + busy = true; + + $(this).blur(); + + selectedArray = []; + selectedIndex = 0; + + var rel = $(this).attr('rel') || ''; + + if (!rel || rel == '' || rel === 'nofollow') { + selectedArray.push(this); + + } else { + selectedArray = $("a[rel=" + rel + "], area[rel=" + rel + "]"); + selectedIndex = selectedArray.index( this ); + } + + fancybox_start(); + + return false; + }); + + return this; + }; + + $.fancybox = function(obj) { + if (busy) { + return; + } + + busy = true; + + var opts = typeof arguments[1] !== 'undefined' ? arguments[1] : {}; + + selectedArray = []; + selectedIndex = opts.index || 0; + + if ($.isArray(obj)) { + for (var i = 0, j = obj.length; i < j; i++) { + if (typeof obj[i] == 'object') { + $(obj[i]).data('fancybox', $.extend({}, opts, obj[i])); + } else { + obj[i] = $({}).data('fancybox', $.extend({content : obj[i]}, opts)); + } + } + + selectedArray = jQuery.merge(selectedArray, obj); + + } else { + if (typeof obj == 'object') { + $(obj).data('fancybox', $.extend({}, opts, obj)); + } else { + obj = $({}).data('fancybox', $.extend({content : obj}, opts)); + } + + selectedArray.push(obj); + } + + if (selectedIndex > selectedArray.length || selectedIndex < 0) { + selectedIndex = 0; + } + + fancybox_start(); + }; + + $.fancybox.showActivity = function() { + clearInterval(loadingTimer); + + loading.show(); + loadingTimer = setInterval(fancybox_animate_loading, 66); + }; + + $.fancybox.hideActivity = function() { + loading.hide(); + }; + + $.fancybox.next = function() { + return $.fancybox.pos( currentIndex + 1); + }; + + $.fancybox.prev = function() { + return $.fancybox.pos( currentIndex - 1); + }; + + $.fancybox.pos = function(pos) { + if (busy) { + return; + } + + pos = parseInt(pos, 10); + + if (pos > -1 && currentArray.length > pos) { + selectedIndex = pos; + fancybox_start(); + } + + if (currentOpts.cyclic && currentArray.length > 1 && pos < 0) { + selectedIndex = currentArray.length - 1; + fancybox_start(); + } + + if (currentOpts.cyclic && currentArray.length > 1 && pos >= currentArray.length) { + selectedIndex = 0; + fancybox_start(); + } + + return; + }; + + $.fancybox.cancel = function() { + if (busy) { + return; + } + + busy = true; + + $.event.trigger('fancybox-cancel'); + + fancybox_abort(); + + if (selectedOpts && $.isFunction(selectedOpts.onCancel)) { + selectedOpts.onCancel(selectedArray, selectedIndex, selectedOpts); + } + + busy = false; + }; + + // Note: within an iframe use - parent.$.fancybox.close(); + $.fancybox.close = function() { + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + if (currentOpts && $.isFunction(currentOpts.onCleanup)) { + if (currentOpts.onCleanup(currentArray, currentIndex, currentOpts) === false) { + busy = false; + return; + } + } + + fancybox_abort(); + + $(close.add( nav_left ).add( nav_right )).hide(); + + $('#fancybox-title').remove(); + + wrap.add(inner).add(overlay).unbind(); + + $(window).unbind("resize.fb scroll.fb"); + $(document).unbind('keydown.fb'); + + function _cleanup() { + overlay.fadeOut('fast'); + + wrap.hide(); + + $.event.trigger('fancybox-cleanup'); + + inner.empty(); + + if ($.isFunction(currentOpts.onClosed)) { + currentOpts.onClosed(currentArray, currentIndex, currentOpts); + } + + currentArray = selectedOpts = []; + currentIndex = selectedIndex = 0; + currentOpts = selectedOpts = {}; + + busy = false; + } + + inner.css('overflow', 'hidden'); + + if (currentOpts.transitionOut == 'elastic') { + start_pos = fancybox_get_zoom_from(); + + var pos = wrap.position(); + + final_pos = { + top : pos.top , + left : pos.left, + width : wrap.width(), + height : wrap.height() + }; + + if (currentOpts.opacity) { + final_pos.opacity = 1; + } + + fx.prop = 1; + + $(fx).animate({ prop: 0 }, { + duration : currentOpts.speedOut, + easing : currentOpts.easingOut, + step : fancybox_draw, + complete : _cleanup + }); + + } else { + wrap.fadeOut( currentOpts.transitionOut == 'none' ? 0 : currentOpts.speedOut, _cleanup); + } + }; + + $.fancybox.resize = function() { + var c, h; + + if (busy || wrap.is(':hidden')) { + return; + } + + busy = true; + + c = inner.wrapInner("
").children(); + h = c.height(); + + wrap.css({height: h + (currentOpts.padding * 2) + titleh}); + inner.css({height: h}); + + c.replaceWith(c.children()); + + $.fancybox.center(); + }; + + $.fancybox.center = function() { + busy = true; + + var view = fancybox_get_viewport(), + margin = currentOpts.margin, + to = {}; + + to.top = view[3] + ((view[1] - ((wrap.height() - titleh) + (shadow * 2 ))) * 0.5); + to.left = view[2] + ((view[0] - (wrap.width() + (shadow * 2 ))) * 0.5); + + to.top = Math.max(view[3] + margin, to.top); + to.left = Math.max(view[2] + margin, to.left); + + wrap.css(to); + + busy = false; + }; + + $.fn.fancybox.defaults = { + padding : 10, + margin : 20, + opacity : false, + modal : false, + cyclic : false, + scrolling : 'auto', // 'auto', 'yes' or 'no' + + width : 560, + height : 340, + + autoScale : true, + autoDimensions : true, + centerOnScroll : false, + + ajax : {}, + swf : { wmode: 'transparent' }, + + hideOnOverlayClick : true, + hideOnContentClick : false, + + overlayShow : true, + overlayOpacity : 0.3, + overlayColor : '#666', + + titleShow : true, + titlePosition : 'outside', // 'outside', 'inside' or 'over' + titleFormat : null, + + transitionIn : 'fade', // 'elastic', 'fade' or 'none' + transitionOut : 'fade', // 'elastic', 'fade' or 'none' + + speedIn : 300, + speedOut : 300, + + changeSpeed : 300, + changeFade : 'fast', + + easingIn : 'swing', + easingOut : 'swing', + + showCloseButton : true, + showNavArrows : true, + enableEscapeButton : true, + + onStart : null, + onCancel : null, + onComplete : null, + onCleanup : null, + onClosed : null + }; + + $(document).ready(function() { + fancybox_init(); + }); + +})(jQuery); \ No newline at end of file diff --git a/public/javascripts/jquery.js b/public/javascripts/jquery.js new file mode 100644 index 0000000..7c24308 --- /dev/null +++ b/public/javascripts/jquery.js @@ -0,0 +1,154 @@ +/*! + * jQuery JavaScript Library v1.4.2 + * http://jquery.com/ + * + * Copyright 2010, John Resig + * Dual licensed under the MIT or GPL Version 2 licenses. + * http://jquery.org/license + * + * Includes Sizzle.js + * http://sizzlejs.com/ + * Copyright 2010, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * + * Date: Sat Feb 13 22:33:48 2010 -0500 + */ +(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, +Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& +(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, +a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== +"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, +function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b
a"; +var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, +parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= +false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= +s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, +applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; +else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, +a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== +w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, +cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= +c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); +a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, +function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); +k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), +C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B=0){a.type= +e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& +f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; +if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", +e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, +"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, +d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, +e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); +t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| +g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, +CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, +g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, +text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, +setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return hl[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= +h[3];l=0;for(m=h.length;l=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== +"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, +h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& +q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML=""; +if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="

";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); +(function(){var g=s.createElement("div");g.innerHTML="
";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: +function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f0)for(var j=d;j0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= +{},i;if(f&&a.length){e=0;for(var o=a.length;e-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== +"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", +d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? +a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== +1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/"},F={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div
","
"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= +c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, +wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, +prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, +this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); +return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, +""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); +return this}else{e=0;for(var j=d.length;e0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", +""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]===""&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= +c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? +c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= +function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= +Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, +"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= +a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= +a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=//gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== +"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("
").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, +serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), +function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, +global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& +e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? +"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== +false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= +false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", +c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| +d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); +g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== +1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== +"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; +if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== +"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| +c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; +this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= +this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, +e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b
"; +a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); +c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, +d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- +f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": +"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in +e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); diff --git a/public/javascripts/jrails.js b/public/javascripts/jrails.js new file mode 100644 index 0000000..39aa4ec --- /dev/null +++ b/public/javascripts/jrails.js @@ -0,0 +1 @@ +(function($){$.ajaxSettings.accepts._default="text/javascript, text/html, application/xml, text/xml, */*"})(jQuery);(function($){$.fn.reset=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};$.fn.enable=function(){return this.each(function(){this.disabled=false})};$.fn.disable=function(){return this.each(function(){this.disabled=true})}})(jQuery);(function($){$.extend({fieldEvent:function(el,obs){var field=el[0]||el,e="change";if(field.type=="radio"||field.type=="checkbox"){e="click"}else{if(obs&&(field.type=="text"||field.type=="textarea"||field.type=="password")){e="keyup"}}return e}});$.fn.extend({delayedObserver:function(delay,callback){var el=$(this);if(typeof window.delayedObserverStack=="undefined"){window.delayedObserverStack=[]}if(typeof window.delayedObserverCallback=="undefined"){window.delayedObserverCallback=function(stackPos){var observed=window.delayedObserverStack[stackPos];if(observed.timer){clearTimeout(observed.timer)}observed.timer=setTimeout(function(){observed.timer=null;observed.callback(observed.obj,observed.obj.formVal())},observed.delay*1000);observed.oldVal=observed.obj.formVal()}}window.delayedObserverStack.push({obj:el,timer:null,delay:delay,oldVal:el.formVal(),callback:callback});var stackPos=window.delayedObserverStack.length-1;if(el[0].tagName=="FORM"){$(":input",el).each(function(){var field=$(this);field.bind($.fieldEvent(field,delay),function(){var observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.oldVal){return}else{window.delayedObserverCallback(stackPos)}})})}else{el.bind($.fieldEvent(el,delay),function(){var observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.oldVal){return}else{window.delayedObserverCallback(stackPos)}})}},formVal:function(){var el=this[0];if(el.tagName=="FORM"){return this.serialize()}if(el.type=="checkbox"||el.type=="radio"){return this.filter("input:checked").val()||""}else{return this.val()}}})})(jQuery);(function($){$.fn.extend({visualEffect:function(o,options){if(options){speed=options.duration*1000}else{speed=null}e=o.replace(/\_(.)/g,function(m,l){return l.toUpperCase()});return eval("$(this)."+e+"("+speed+")")},appear:function(speed,callback){return this.fadeIn(speed,callback)},blindDown:function(speed,callback){return this.show("blind",{direction:"vertical"},speed,callback)},blindUp:function(speed,callback){return this.hide("blind",{direction:"vertical"},speed,callback)},blindRight:function(speed,callback){return this.show("blind",{direction:"horizontal"},speed,callback)},blindLeft:function(speed,callback){this.hide("blind",{direction:"horizontal"},speed,callback);return this},dropOut:function(speed,callback){return this.hide("drop",{direction:"down"},speed,callback)},dropIn:function(speed,callback){return this.show("drop",{direction:"up"},speed,callback)},fade:function(speed,callback){return this.fadeOut(speed,callback)},fadeToggle:function(speed,callback){return this.animate({opacity:"toggle"},speed,callback)},fold:function(speed,callback){return this.hide("fold",{},speed,callback)},foldOut:function(speed,callback){return this.show("fold",{},speed,callback)},grow:function(speed,callback){return this.show("scale",{},speed,callback)},highlight:function(speed,callback){return this.show("highlight",{},speed,callback)},puff:function(speed,callback){return this.hide("puff",{},speed,callback)},pulsate:function(speed,callback){return this.show("pulsate",{},speed,callback)},shake:function(speed,callback){return this.show("shake",{},speed,callback)},shrink:function(speed,callback){return this.hide("scale",{},speed,callback)},squish:function(speed,callback){return this.hide("scale",{origin:["top","left"]},speed,callback)},slideUp:function(speed,callback){return this.hide("slide",{direction:"up"},speed,callback)},slideDown:function(speed,callback){return this.show("slide",{direction:"up"},speed,callback)},switchOff:function(speed,callback){return this.hide("clip",{},speed,callback)},switchOn:function(speed,callback){return this.show("clip",{},speed,callback)}})})(jQuery); \ No newline at end of file diff --git a/public/javascripts/mousewheel.js b/public/javascripts/mousewheel.js new file mode 100644 index 0000000..b950db1 --- /dev/null +++ b/public/javascripts/mousewheel.js @@ -0,0 +1,13 @@ +/*! Copyright (c) 2009 Brandon Aaron (http://brandonaaron.net) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers. + * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix. + * + * Version: 3.0.2 + * + * Requires: 1.2.2+ + */ + +(function(b){function d(a){var f=[].slice.call(arguments,1),e=0;a=b.event.fix(a||window.event);a.type="mousewheel";if(a.wheelDelta)e=a.wheelDelta/120;if(a.detail)e=-a.detail/3;f.unshift(a,e);return b.event.handle.apply(this,f)}var c=["DOMMouseScroll","mousewheel"];b.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var a=c.length;a;)this.addEventListener(c[--a],d,false);else this.onmousewheel=d},teardown:function(){if(this.removeEventListener)for(var a=c.length;a;)this.removeEventListener(c[--a], +d,false);else this.onmousewheel=null}};b.fn.extend({mousewheel:function(a){return a?this.bind("mousewheel",a):this.trigger("mousewheel")},unmousewheel:function(a){return this.unbind("mousewheel",a)}})})(jQuery); \ No newline at end of file diff --git a/public/javascripts/photos.js b/public/javascripts/photos.js new file mode 100644 index 0000000..306353b --- /dev/null +++ b/public/javascripts/photos.js @@ -0,0 +1,5 @@ +$(document).ready(function() { + $('.fancy').fancybox({ + 'titlePosition' : 'inside' + }); +}); diff --git a/public/photos/0000/0001/Buttercup.jpg b/public/photos/0000/0001/Buttercup.jpg new file mode 100644 index 0000000000000000000000000000000000000000..50ae9bc563764c0b032a57a6c4c553a9eaa0a5ec GIT binary patch literal 271536 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

E-5fwI=e7b>1{9zX_v6G|qMm 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ÓP^UIlXP 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

%vV)mm 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 literal 0 HcmV?d00001 diff --git a/public/photos/0000/0001/Buttercup_thumb.jpg b/public/photos/0000/0001/Buttercup_thumb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..77481c41d44c40243d9ad3b0151e74914a6f4353 GIT binary patch literal 22093 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 G;lBX?5V~{# literal 0 HcmV?d00001 diff --git a/public/stylesheets/.fancybox.css.swp b/public/stylesheets/.fancybox.css.swp new file mode 100644 index 0000000000000000000000000000000000000000..f79dcf820e54963375e18b4d47f09a3f5930fea7 GIT binary patch literal 28672 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 literal 0 HcmV?d00001 diff --git a/public/stylesheets/.fancybox.css.un~ b/public/stylesheets/.fancybox.css.un~ new file mode 100644 index 0000000000000000000000000000000000000000..26e99cbf9b788261fe497e8ba2aaa48655d96589 GIT binary patch literal 18934 zcmeI4U5pb|6vyY{sw|?Sg5Mui(A_HS#waB2x*;kr;*uy)L_q6oJME6!&aBh2%OZa8 z>YFj~!T1qhd?02YFn|UnQ6t2}4-#2pqH&e@k(l^MqC&F%&+W``x;neJx3s?8Np9v$ zn|5yhzyCQiou27txANvA-g^HRYti?Wo=qnQ4{e>^uB)6J zAK$ii$tuedqn2g8lr7p`esb8~nQ@)eO1Y64E@iy#XHrGCTyui{)L7t`+(Q5QE%#UK zlJjt2d)1;JRI(f0eBf98Vl8`5d2Ga%&kp%^!3lb+L4L3&dgneF<2FzrgAt0J?qNGWS_=FfULoU> ziTYDJf^u){5NV0@z?wahCcWewjA$XUPh%LGks@tfgXRmI<{0)C=+h*6U2MWc_8^9# z$wX;i2%0Z)ng_6}_ZZE-d2=&Yb8BTM=Z`x>(+F@Mx@D3FBhVMk#iqjyOt#5O_U*NH?Shl8< z_(n7{I~#ctzs2;<;X-VuF$~X0kyh3!Joj>*$Fa9>7|$lFFVX8}6DG1hVHlcB6zx!j z<`k#-BX)Iy(Oi|3ox^3@8_ky7BEGkVUtI{@5;j%BdJ4m!WTI$?Dk%4Jlz(Gary0s7 z6O-sIWwQlY`fh4yGEMYD6`BV)%~{9~{dF%ZP+ne$aX~m`kQFx|Hn|xJ($Y$W<{?H? zTo3tEjAqj(L6n&nVMGhqikq=vct(n}vR2{wA?JyUv*H%Uv&mXZnRzjrFvyAwwhc`t zigu_%^Dw80s|+H`XfB+clZ{_dC^Ii%^95URC$~b!t*1}^A5q2~9n6m_Oc$+CD!IGJt++>F$H%VtuSZ$7y45*YJeHD1IMckob4W&Xa@7Q z$b=UgsYF~sA2D2DGWulJByF3nmrxbWm6EZhxv`Mb;xT5dcN%ngMq)hT(D2~~r=#8$+nR%zOZzf8$e-*HQkozMsuU-3MgU@6(9k)bY)4%%u? zYe=HEcKLp#KXp4=`$CgZ&AN&S1H;j$G$v!3XopHBo8cxyev9qQWc%keS=lMpI&L!B zsagS};&n9>4?d$0XS~HU(GHcob%J|~ir3@H-m2Ix^&NNWWUF4lXs2r4qMCIL6AwP4 z4`)3`kD2o=ri@0Y^F-^2XC1d@; zjfI>RHZ#_{3C5D8LprN-M?^AK6D5nv6@JE#7r0D*RoPCDn35Iiq7^7P>rd{ir`Ud| zPwD0VaF)EcYXT=(ZMwN@LhWEj^@w_Jq6IDzG<}>e8s|i!=&qHVbBa61ttW1LogwM2 z!1ftO(Kl3WQcM?kNMQ1osW?m&-B8Ilv)nf$^|XzBlT>l4?K4hQ(K%FYZe+@&Fm+7d zR2-&>cBtZZX!nKoYF zA%V%8iW4i+LZIZEW!yJ~dfLXmNvb$r`;6l$I)_&q(ui8JF?~~US};ufQYGgsm(CIL zZ!ko@p184dk}A&s_g^dF53;=Po;pL(`n literal 0 HcmV?d00001 diff --git a/public/stylesheets/.photos.css.swp b/public/stylesheets/.photos.css.swp new file mode 100644 index 0000000000000000000000000000000000000000..2ae6acfd78c3ba841c31d10df1afe1dbf61b58c0 GIT binary patch literal 12288 zcmeI1J!=#}9ET_NzMzd*jb5RG+1tDG$Z;ubL=a3RO6;7yo$QY8?F_TCnjq1}%3Ayw z3St$~_z5g*1QEm!U~lJdv$rv%NNV*r+`}+4|CgDkJ2r{$-(Hg|(MVvN5n}zz+dB_$ zd=%?zLZqrpv~CWL9*^qMX%iKyJUZ@qTd;rE1YPyLGDX#QxeXRmofKx)ufkTLt6b~Q zokX*$I=U)PX@CZfHBg6*<;h7g8V=$nws+~GJa_iqv1tsT0UDqI8lV9hpaB}70UG#s z3@gaD_fXU`YcgbhU4+IjyM`$ z-4{kig)!EU?=Q)z0-Y;WDmwMw;@`Cz|Mcau>(=?W)m_BivlF4L*(#qngAY#i?B zb)kZJf{tCu?qvs)O_^(N0)n1;S= literal 0 HcmV?d00001 diff --git a/public/stylesheets/.photos.css.un~ b/public/stylesheets/.photos.css.un~ new file mode 100644 index 0000000000000000000000000000000000000000..c148022769c7f4bdb8deec52d44db6de266d277b GIT binary patch literal 33708 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 ZQ?|xa%SK6fH2pB$#(89uVe;=c{s-?3jp_gZ literal 0 HcmV?d00001 diff --git a/public/stylesheets/fancybox.css b/public/stylesheets/fancybox.css new file mode 100644 index 0000000..2f91772 --- /dev/null +++ b/public/stylesheets/fancybox.css @@ -0,0 +1,363 @@ +/* + * FancyBox - jQuery Plugin + * Simple and fancy lightbox alternative + * + * Examples and documentation at: http://fancybox.net + * + * Copyright (c) 2008 - 2010 Janis Skarnelis + * + * Version: 1.3.1 (05/03/2010) + * Requires: jQuery v1.3+ + * + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ + +#fancybox-loading { + position: fixed; + top: 50%; + left: 50%; + height: 40px; + width: 40px; + margin-top: -20px; + margin-left: -20px; + cursor: pointer; + overflow: hidden; + z-index: 1104; + display: none; +} + +* html #fancybox-loading { /* IE6 */ + position: absolute; + margin-top: 0; +} + +#fancybox-loading div { + position: absolute; + top: 0; + left: 0; + width: 40px; + height: 480px; + background-image: url('/images/fancybox/fancybox.png'); +} + +#fancybox-overlay { + position: fixed; + top: 0; + left: 0; + bottom: 0; + right: 0; + background: #000; + z-index: 1100; + display: none; +} + +* html #fancybox-overlay { /* IE6 */ + position: absolute; + width: 100%; +} + +#fancybox-tmp { + padding: 0; + margin: 0; + border: 0; + overflow: auto; + display: none; +} + +#fancybox-wrap { + position: absolute; + top: 0; + left: 0; + margin: 0; + padding: 20px; + z-index: 1101; + display: none; +} + +#fancybox-outer { + position: relative; + width: 100%; + height: 100%; + background: #FFF; +} + +#fancybox-inner { + position: absolute; + top: 0; + left: 0; + width: 1px; + height: 1px; + padding: 0; + margin: 0; + outline: none; + overflow: hidden; +} + +#fancybox-hide-sel-frame { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background: transparent; +} + +#fancybox-close { + position: absolute; + top: -15px; + right: -15px; + width: 30px; + height: 30px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px 0px; + cursor: pointer; + z-index: 1103; + display: none; +} + +#fancybox_error { + color: #444; + font: normal 12px/20px Arial; + padding: 7px; + margin: 0; +} + +#fancybox-content { + height: auto; + width: auto; + padding: 0; + margin: 0; +} + +#fancybox-img { + width: 100%; + height: 100%; + padding: 0; + margin: 0; + border: none; + outline: none; + line-height: 0; + vertical-align: top; + -ms-interpolation-mode: bicubic; +} + +#fancybox-frame { + position: relative; + width: 100%; + height: 100%; + border: none; + display: block; +} + +#fancybox-title { + position: absolute; + bottom: 0; + left: 0; + font-family: Arial; + font-size: 12px; + z-index: 1102; +} + +.fancybox-title-inside { + padding: 10px 0; + text-align: center; + color: #333; +} + +.fancybox-title-outside { + padding-top: 5px; + color: #FFF; + text-align: center; + font-weight: bold; +} + +.fancybox-title-over { + color: #FFF; + text-align: left; +} + +#fancybox-title-over { + padding: 10px; + background-image: url('/images/fancybox/fancy_title_over.png'); + display: block; +} + +#fancybox-title-wrap { + display: inline-block; +} + +#fancybox-title-wrap span { + height: 32px; + float: left; +} + +#fancybox-title-left { + padding-left: 15px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -90px; + background-repeat: no-repeat; +} + +#fancybox-title-main { + font-weight: bold; + line-height: 29px; + background-image: url('/images/fancybox/fancybox-x.png'); + background-position: 0px -40px; + color: #FFF; +} + +#fancybox-title-right { + padding-left: 15px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -55px -90px; + background-repeat: no-repeat; +} + +#fancybox-left, #fancybox-right { + position: absolute; + bottom: 0px; + height: 100%; + width: 35%; + cursor: pointer; + outline: none; + background-image: url('/images/fancybox/blank.gif'); + z-index: 1102; + display: none; +} + +#fancybox-left { + left: 0px; +} + +#fancybox-right { + right: 0px; +} + +#fancybox-left-ico, #fancybox-right-ico { + position: absolute; + top: 50%; + left: -9999px; + width: 30px; + height: 30px; + margin-top: -15px; + cursor: pointer; + z-index: 1102; + display: block; +} + +#fancybox-left-ico { + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -30px; +} + +#fancybox-right-ico { + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -60px; +} + +#fancybox-left:hover, #fancybox-right:hover { + visibility: visible; /* IE6 */ +} + +#fancybox-left:hover span { + left: 20px; +} + +#fancybox-right:hover span { + left: auto; + right: 20px; +} + +.fancy-bg { + position: absolute; + padding: 0; + margin: 0; + border: 0; + width: 20px; + height: 20px; + z-index: 1001; +} + +#fancy-bg-n { + top: -20px; + left: 0; + width: 100%; + background-image: url('/images/fancybox/fancybox-x.png'); +} + +#fancy-bg-ne { + top: -20px; + right: -20px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -162px; +} + +#fancy-bg-e { + top: 0; + right: -20px; + height: 100%; + background-image: url('/images/fancybox/fancybox-y.png'); + background-position: -20px 0px; +} + +#fancy-bg-se { + bottom: -20px; + right: -20px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -182px; +} + +#fancy-bg-s { + bottom: -20px; + left: 0; + width: 100%; + background-image: url('/images/fancybox/fancybox-x.png'); + background-position: 0px -20px; +} + +#fancy-bg-sw { + bottom: -20px; + left: -20px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -142px; +} + +#fancy-bg-w { + top: 0; + left: -20px; + height: 100%; + background-image: url('/images/fancybox/fancybox-y.png'); +} + +#fancy-bg-nw { + top: -20px; + left: -20px; + background-image: url('/images/fancybox/fancybox.png'); + background-position: -40px -122px; +} + +/* IE */ + +#fancybox-loading.fancybox-ie div { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_loading.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_close.png', sizingMethod='scale'); } + +.fancybox-ie #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; } +.fancybox-ie #fancybox-title-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_title_left.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-title-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_title_main.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-title-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_title_right.png', sizingMethod='scale'); } + +.fancybox-ie #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_nav_left.png', sizingMethod='scale'); } +.fancybox-ie #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_nav_right.png', sizingMethod='scale'); } + +.fancybox-ie .fancy-bg { background: transparent !important; } + +.fancybox-ie #fancy-bg-n { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_n.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-ne { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_ne.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-e { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_e.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-se { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_se.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-s { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_s.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-sw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_sw.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-w { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_w.png', sizingMethod='scale'); } +.fancybox-ie #fancy-bg-nw { filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/fancybox/fancy_shadow_nw.png', sizingMethod='scale'); } diff --git a/public/stylesheets/photos.css b/public/stylesheets/photos.css new file mode 100644 index 0000000..c250e2b --- /dev/null +++ b/public/stylesheets/photos.css @@ -0,0 +1,26 @@ +body { + background: black; +} +#container { + padding-top: 20px; +} +#wrapper { + background: inherit; +} +#header { + position: relative; + background: #0082bf; + height: 308px; +} +#header h1 { + padding: 0; + margin: 0; + position: absolute; + bottom: 15px; + right: 20px; +} +.image140 { + height: 140px; +} +img { +} diff --git a/public/stylesheets/squaregrid.css b/public/stylesheets/squaregrid.css new file mode 100644 index 0000000..bb423ca --- /dev/null +++ b/public/stylesheets/squaregrid.css @@ -0,0 +1,39 @@ +/* RESET CSS by http://meyerweb.com/eric/tools/css/reset/ */ +html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin:0; padding:0; border:0; outline:0; font-size:100%; vertical-align:baseline; background:transparent;} +body {line-height:1;} +ol, ul {list-style:none;} +blockquote, q {quotes:none;} +blockquote:before, blockquote:after, q:before, q:after {content:''; content:none;} +:focus {outline:0;} /* remember to define focus styles! */ +ins {text-decoration:none;} /* remember to highlight inserts somehow! */ +del {text-decoration:line-through;} +table {border-collapse:collapse; border-spacing:0;} /* tables still need 'cellspacing="0"' in the markup */ +.clear { clear:both; display:block; overflow:hidden; visibility:hidden; width:0; height:0;} /* source: http://sonspring.com/journal/clearing-floats */ + +/* BEGIN SQUARE GRID CODE */ +body {background-color:#f4f4f4; font-size:62.5%; line-height:28px; /* for RTL add: 'direction: rtl;' */ } + +/* your main wrapping div */ +#wrapper{ margin: 0 auto; position:relative; overflow: hidden; width: 994px;background:#fff url(../images/sg_grid_sub.png) center top repeat; } +#container{width:1008px; /* essential */ margin-left:-7px;} + +/* global styling to apply to all columns */ +.sg-1, .sg-2, .sg-3, .sg-4, .sg-5, .sg-6, .sg-7, .sg-8, .sg-9, .sg-10, .sg-11, .sg-12, .sg-13, .sg-14, .sg-15, .sg-16, .sg-17, .sg-18, .sg-19, .sg-20, .sg-21, .sg-22, .sg-23, .sg-24, .sg-25, .sg-26, .sg-27, .sg-28, .sg-29, .sg-30, .sg-31, .sg-32, .sg-33, .sg-34, .sg-35 +{margin:0px 14px 28px 14px; float:left; /* for RTL change float to 'right' */ } + +/* if you want to have a div as a parent with divs inside - add this class to parent div */ +.sgParent{margin:0px;} + +/* essential: width for all columns */ +.sg-1{width:28px} .sg-2{width:56px} .sg-3{width:84px} .sg-4{width:112px} .sg-5{width:140px} .sg-6{width:168px} .sg-7{width:196px} .sg-8{width:224px} .sg-9{width:252px} .sg-10{width:280px} .sg-11{width:308px} .sg-12{width:336px} .sg-13{width:364px} .sg-14{width:392px} .sg-15{width:420px} .sg-16{width:448px} .sg-17{width:476px} .sg-18{width:504px} .sg-19{width:532px} .sg-20{width:560px} .sg-21{width:588px} .sg-22{width:616px} .sg-23{width:644px} .sg-24{width:672px} .sg-25{width:700px} .sg-26{width:728px} .sg-27{width:756px} .sg-28{width:784px} .sg-29{width:812px} .sg-30{width:840px} .sg-31{width:868px} .sg-32{width:896px} .sg-33{width:924px} .sg-34{width:952px} .sg-35{width:980px} + +/* add a dividing border to the right or left simply by addiing one of these classes to a div */ +.borderRight{border-right:1px solid #222; margin-right:0px; padding-right:13px;} +.borderLeft {border-left:1px solid #222; margin-left:0px; padding-left:13px;} + +/* CONTROLLER - optional */ +#controller{position:fixed; top:14px; right:14px; z-index:9999;} +#controller ul{border-color:#222; border-style:solid; border-width:0px 1px;} +#controller ul li a{color:#222; display:block; font:14px/26px Verdana ; height:26px; width:26px; margin:1px; text-align:center; text-decoration:none;} +#controller ul li a:hover{font-weight:bold;} +#controller ul li.selected a{background-color:#222; color:#fff; font-weight:bold;} diff --git a/tmp/attachment_fu/1105732050Bell_Tower_thumb59048-0.jpg b/tmp/attachment_fu/1105732050Bell_Tower_thumb59048-0.jpg new file mode 100644 index 0000000..606959a --- /dev/null +++ b/tmp/attachment_fu/1105732050Bell_Tower_thumb59048-0.jpg @@ -0,0 +1 @@ +Bell_Tower_thumb.jpg \ No newline at end of file diff --git a/tmp/attachment_fu/622555081Bell_Tower59048-0.jpg b/tmp/attachment_fu/622555081Bell_Tower59048-0.jpg new file mode 100644 index 0000000000000000000000000000000000000000..599e87aa81d7b891548c8fb9c1b6666b17e2b282 GIT binary patch literal 616171 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 z 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�OFeAwq!u{`x_IF*sN^8H7dbzK=Ggl@J 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 lN;LB7b@M9IgOZfxMM9nuoZZq;Sc [:help] + +rakeapp.top_level diff --git a/vendor/plugins/jrails/init.rb b/vendor/plugins/jrails/init.rb new file mode 100644 index 0000000..ca9c82a --- /dev/null +++ b/vendor/plugins/jrails/init.rb @@ -0,0 +1 @@ +require 'rails/init.rb' diff --git a/vendor/plugins/jrails/install.rb b/vendor/plugins/jrails/install.rb new file mode 100644 index 0000000..d8f6e9b --- /dev/null +++ b/vendor/plugins/jrails/install.rb @@ -0,0 +1,9 @@ +# Install hook code here +puts "Copying files..." +dir = "javascripts" +["jquery-ui.js", "jquery.js", "jrails.js"].each do |js_file| + dest_file = File.join(RAILS_ROOT, "public", dir, js_file) + src_file = File.join(File.dirname(__FILE__) , dir, js_file) + FileUtils.cp_r(src_file, dest_file) +end +puts "Files copied - Installation complete!" diff --git a/vendor/plugins/jrails/javascripts/jquery-ui.js b/vendor/plugins/jrails/javascripts/jquery-ui.js new file mode 100644 index 0000000..3efce20 --- /dev/null +++ b/vendor/plugins/jrails/javascripts/jquery-ui.js @@ -0,0 +1,188 @@ +/* + * jQuery UI 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI + */ +jQuery.ui||(function(c){var i=c.fn.remove,d=c.browser.mozilla&&(parseFloat(c.browser.version)<1.9);c.ui={version:"1.7.2",plugin:{add:function(k,l,n){var m=c.ui[k].prototype;for(var j in n){m.plugins[j]=m.plugins[j]||[];m.plugins[j].push([l,n[j]])}},call:function(j,l,k){var n=j.plugins[l];if(!n||!j.element[0].parentNode){return}for(var m=0;m0){return true}m[j]=1;l=(m[j]>0);m[j]=0;return l},isOverAxis:function(k,j,l){return(k>j)&&(k<(j+l))},isOver:function(o,k,n,m,j,l){return c.ui.isOverAxis(o,n,j)&&c.ui.isOverAxis(k,m,l)},keyCode:{BACKSPACE:8,CAPS_LOCK:20,COMMA:188,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38}};if(d){var f=c.attr,e=c.fn.removeAttr,h="http://www.w3.org/2005/07/aaa",a=/^aria-/,b=/^wairole:/;c.attr=function(k,j,l){var m=l!==undefined;return(j=="role"?(m?f.call(this,k,j,"wairole:"+l):(f.apply(this,arguments)||"").replace(b,"")):(a.test(j)?(m?k.setAttributeNS(h,j.replace(a,"aaa:"),l):f.call(this,k,j.replace(a,"aaa:"))):f.apply(this,arguments)))};c.fn.removeAttr=function(j){return(a.test(j)?this.each(function(){this.removeAttributeNS(h,j.replace(a,""))}):e.call(this,j))}}c.fn.extend({remove:function(){c("*",this).add(this).each(function(){c(this).triggerHandler("remove")});return i.apply(this,arguments)},enableSelection:function(){return this.attr("unselectable","off").css("MozUserSelect","").unbind("selectstart.ui")},disableSelection:function(){return this.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})},scrollParent:function(){var j;if((c.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){j=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(c.curCSS(this,"position",1))&&(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}else{j=this.parents().filter(function(){return(/(auto|scroll)/).test(c.curCSS(this,"overflow",1)+c.curCSS(this,"overflow-y",1)+c.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!j.length?c(document):j}});c.extend(c.expr[":"],{data:function(l,k,j){return !!c.data(l,j[3])},focusable:function(k){var l=k.nodeName.toLowerCase(),j=c.attr(k,"tabindex");return(/input|select|textarea|button|object/.test(l)?!k.disabled:"a"==l||"area"==l?k.href||!isNaN(j):!isNaN(j))&&!c(k)["area"==l?"parents":"closest"](":hidden").length},tabbable:function(k){var j=c.attr(k,"tabindex");return(isNaN(j)||j>=0)&&c(k).is(":focusable")}});function g(m,n,o,l){function k(q){var p=c[m][n][q]||[];return(typeof p=="string"?p.split(/,?\s+/):p)}var j=k("getter");if(l.length==1&&typeof l[0]=="string"){j=j.concat(k("getterSetter"))}return(c.inArray(o,j)!=-1)}c.widget=function(k,j){var l=k.split(".")[0];k=k.split(".")[1];c.fn[k]=function(p){var n=(typeof p=="string"),o=Array.prototype.slice.call(arguments,1);if(n&&p.substring(0,1)=="_"){return this}if(n&&g(l,k,p,o)){var m=c.data(this[0],k);return(m?m[p].apply(m,o):undefined)}return this.each(function(){var q=c.data(this,k);(!q&&!n&&c.data(this,k,new c[l][k](this,p))._init());(q&&n&&c.isFunction(q[p])&&q[p].apply(q,o))})};c[l]=c[l]||{};c[l][k]=function(o,n){var m=this;this.namespace=l;this.widgetName=k;this.widgetEventPrefix=c[l][k].eventPrefix||k;this.widgetBaseClass=l+"-"+k;this.options=c.extend({},c.widget.defaults,c[l][k].defaults,c.metadata&&c.metadata.get(o)[k],n);this.element=c(o).bind("setData."+k,function(q,p,r){if(q.target==o){return m._setData(p,r)}}).bind("getData."+k,function(q,p){if(q.target==o){return m._getData(p)}}).bind("remove",function(){return m.destroy()})};c[l][k].prototype=c.extend({},c.widget.prototype,j);c[l][k].getterSetter="option"};c.widget.prototype={_init:function(){},destroy:function(){this.element.removeData(this.widgetName).removeClass(this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").removeAttr("aria-disabled")},option:function(l,m){var k=l,j=this;if(typeof l=="string"){if(m===undefined){return this._getData(l)}k={};k[l]=m}c.each(k,function(n,o){j._setData(n,o)})},_getData:function(j){return this.options[j]},_setData:function(j,k){this.options[j]=k;if(j=="disabled"){this.element[k?"addClass":"removeClass"](this.widgetBaseClass+"-disabled "+this.namespace+"-state-disabled").attr("aria-disabled",k)}},enable:function(){this._setData("disabled",false)},disable:function(){this._setData("disabled",true)},_trigger:function(l,m,n){var p=this.options[l],j=(l==this.widgetEventPrefix?l:this.widgetEventPrefix+l);m=c.Event(m);m.type=j;if(m.originalEvent){for(var k=c.event.props.length,o;k;){o=c.event.props[--k];m[o]=m.originalEvent[o]}}this.element.trigger(m,n);return !(c.isFunction(p)&&p.call(this.element[0],m,n)===false||m.isDefaultPrevented())}};c.widget.defaults={disabled:false};c.ui.mouse={_mouseInit:function(){var j=this;this.element.bind("mousedown."+this.widgetName,function(k){return j._mouseDown(k)}).bind("click."+this.widgetName,function(k){if(j._preventClickEvent){j._preventClickEvent=false;k.stopImmediatePropagation();return false}});if(c.browser.msie){this._mouseUnselectable=this.element.attr("unselectable");this.element.attr("unselectable","on")}this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);(c.browser.msie&&this.element.attr("unselectable",this._mouseUnselectable))},_mouseDown:function(l){l.originalEvent=l.originalEvent||{};if(l.originalEvent.mouseHandled){return}(this._mouseStarted&&this._mouseUp(l));this._mouseDownEvent=l;var k=this,m=(l.which==1),j=(typeof this.options.cancel=="string"?c(l.target).parents().add(l.target).filter(this.options.cancel).length:false);if(!m||j||!this._mouseCapture(l)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){k.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(l)&&this._mouseDelayMet(l)){this._mouseStarted=(this._mouseStart(l)!==false);if(!this._mouseStarted){l.preventDefault();return true}}this._mouseMoveDelegate=function(n){return k._mouseMove(n)};this._mouseUpDelegate=function(n){return k._mouseUp(n)};c(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);(c.browser.safari||l.preventDefault());l.originalEvent.mouseHandled=true;return true},_mouseMove:function(j){if(c.browser.msie&&!j.button){return this._mouseUp(j)}if(this._mouseStarted){this._mouseDrag(j);return j.preventDefault()}if(this._mouseDistanceMet(j)&&this._mouseDelayMet(j)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,j)!==false);(this._mouseStarted?this._mouseDrag(j):this._mouseUp(j))}return !this._mouseStarted},_mouseUp:function(j){c(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;this._preventClickEvent=(j.target==this._mouseDownEvent.target);this._mouseStop(j)}return false},_mouseDistanceMet:function(j){return(Math.max(Math.abs(this._mouseDownEvent.pageX-j.pageX),Math.abs(this._mouseDownEvent.pageY-j.pageY))>=this.options.distance)},_mouseDelayMet:function(j){return this.mouseDelayMet},_mouseStart:function(j){},_mouseDrag:function(j){},_mouseStop:function(j){},_mouseCapture:function(j){return true}};c.ui.mouse.defaults={cancel:null,distance:1,delay:0}})(jQuery);;/* + * jQuery UI Draggable 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Draggables + * + * Depends: + * ui.core.js + */ +(function(a){a.widget("ui.draggable",a.extend({},a.ui.mouse,{_init:function(){if(this.options.helper=="original"&&!(/^(?:r|a|f)/).test(this.element.css("position"))){this.element[0].style.position="relative"}(this.options.addClasses&&this.element.addClass("ui-draggable"));(this.options.disabled&&this.element.addClass("ui-draggable-disabled"));this._mouseInit()},destroy:function(){if(!this.element.data("draggable")){return}this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._mouseDestroy()},_mouseCapture:function(b){var c=this.options;if(this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")){return false}this.handle=this._getHandle(b);if(!this.handle){return false}return true},_mouseStart:function(b){var c=this.options;this.helper=this._createHelper(b);this._cacheHelperProportions();if(a.ui.ddmanager){a.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent();this.offset=this.element.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(b);this.originalPageX=b.pageX;this.originalPageY=b.pageY;if(c.cursorAt){this._adjustOffsetFromHelper(c.cursorAt)}if(c.containment){this._setContainment()}this._trigger("start",b);this._cacheHelperProportions();if(a.ui.ddmanager&&!c.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,b)}this.helper.addClass("ui-draggable-dragging");this._mouseDrag(b,true);return true},_mouseDrag:function(b,d){this.position=this._generatePosition(b);this.positionAbs=this._convertPositionTo("absolute");if(!d){var c=this._uiHash();this._trigger("drag",b,c);this.position=c.position}if(!this.options.axis||this.options.axis!="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!="x"){this.helper[0].style.top=this.position.top+"px"}if(a.ui.ddmanager){a.ui.ddmanager.drag(this,b)}return false},_mouseStop:function(c){var d=false;if(a.ui.ddmanager&&!this.options.dropBehaviour){d=a.ui.ddmanager.drop(this,c)}if(this.dropped){d=this.dropped;this.dropped=false}if((this.options.revert=="invalid"&&!d)||(this.options.revert=="valid"&&d)||this.options.revert===true||(a.isFunction(this.options.revert)&&this.options.revert.call(this.element,d))){var b=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){b._trigger("stop",c);b._clear()})}else{this._trigger("stop",c);this._clear()}return false},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?true:false;a(this.options.handle,this.element).find("*").andSelf().each(function(){if(this==b.target){c=true}});return c},_createHelper:function(c){var d=this.options;var b=a.isFunction(d.helper)?a(d.helper.apply(this.element[0],[c])):(d.helper=="clone"?this.element.clone():this.element);if(!b.parents("body").length){b.appendTo((d.appendTo=="parent"?this.element[0].parentNode:d.appendTo))}if(b[0]!=this.element[0]&&!(/(fixed|absolute)/).test(b.css("position"))){b.css("position","absolute")}return b},_adjustOffsetFromHelper:function(b){if(b.left!=undefined){this.offset.click.left=b.left+this.margins.left}if(b.right!=undefined){this.offset.click.left=this.helperProportions.width-b.right+this.margins.left}if(b.top!=undefined){this.offset.click.top=b.top+this.margins.top}if(b.bottom!=undefined){this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();if(this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])){b.left+=this.scrollParent.scrollLeft();b.top+=this.scrollParent.scrollTop()}if((this.offsetParent[0]==document.body)||(this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)){b={top:0,left:0}}return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var b=this.element.position();return{top:b.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:b.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:(parseInt(this.element.css("marginLeft"),10)||0),top:(parseInt(this.element.css("marginTop"),10)||0)}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e=this.options;if(e.containment=="parent"){e.containment=this.helper[0].parentNode}if(e.containment=="document"||e.containment=="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(e.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(e.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!(/^(document|window|parent)$/).test(e.containment)&&e.containment.constructor!=Array){var c=a(e.containment)[0];if(!c){return}var d=a(e.containment).offset();var b=(a(c).css("overflow")!="hidden");this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(b?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(b?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}else{if(e.containment.constructor==Array){this.containment=e.containment}}},_convertPositionTo:function(f,h){if(!h){h=this.position}var c=f=="absolute"?1:-1;var e=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=(/(html|body)/i).test(b[0].tagName);return{top:(h.top+this.offset.relative.top*c+this.offset.parent.top*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():(g?0:b.scrollTop()))*c)),left:(h.left+this.offset.relative.left*c+this.offset.parent.left*c-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:b.scrollLeft())*c))}},_generatePosition:function(e){var h=this.options,b=this.cssPosition=="absolute"&&!(this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,i=(/(html|body)/i).test(b[0].tagName);if(this.cssPosition=="relative"&&!(this.scrollParent[0]!=document&&this.scrollParent[0]!=this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}var d=e.pageX;var c=e.pageY;if(this.originalPosition){if(this.containment){if(e.pageX-this.offset.click.leftthis.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left

').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1000}).css(a(this).offset()).appendTo("body")})},stop:function(b,c){a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)})}});a.ui.plugin.add("draggable","opacity",{start:function(c,d){var b=a(d.helper),e=a(this).data("draggable").options;if(b.css("opacity")){e._opacity=b.css("opacity")}b.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;if(d._opacity){a(c.helper).css("opacity",d._opacity)}}});a.ui.plugin.add("draggable","scroll",{start:function(c,d){var b=a(this).data("draggable");if(b.scrollParent[0]!=document&&b.scrollParent[0].tagName!="HTML"){b.overflowOffset=b.scrollParent.offset()}},drag:function(d,e){var c=a(this).data("draggable"),f=c.options,b=false;if(c.scrollParent[0]!=document&&c.scrollParent[0].tagName!="HTML"){if(!f.axis||f.axis!="x"){if((c.overflowOffset.top+c.scrollParent[0].offsetHeight)-d.pageY=0;v--){var s=g.snapElements[v].left,n=s+g.snapElements[v].width,m=g.snapElements[v].top,A=m+g.snapElements[v].height;if(!((s-y=p&&n<=k)||(m>=p&&m<=k)||(nk))&&((e>=g&&e<=c)||(d>=g&&d<=c)||(ec));break;default:return false;break}};a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,g){var b=a.ui.ddmanager.droppables[e.options.scope];var f=g?g.type:null;var h=(e.currentItem||e.element).find(":data(droppable)").andSelf();droppablesLoop:for(var d=0;d=0;b--){this.items[b].item.removeData("sortable-item")}},_mouseCapture:function(e,f){if(this.reverting){return false}if(this.options.disabled||this.options.type=="static"){return false}this._refreshItems(e);var d=null,c=this,b=a(e.target).parents().each(function(){if(a.data(this,"sortable-item")==c){d=a(this);return false}});if(a.data(e.target,"sortable-item")==c){d=a(e.target)}if(!d){return false}if(this.options.handle&&!f){var g=false;a(this.options.handle,d).find("*").andSelf().each(function(){if(this==e.target){g=true}});if(!g){return false}}this.currentItem=d;this._removeCurrentsFromItems();return true},_mouseStart:function(e,f,b){var g=this.options,c=this;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(e);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");a.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.originalPosition=this._generatePosition(e);this.originalPageX=e.pageX;this.originalPageY=e.pageY;if(g.cursorAt){this._adjustOffsetFromHelper(g.cursorAt)}this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!=this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(g.containment){this._setContainment()}if(g.cursor){if(a("body").css("cursor")){this._storedCursor=a("body").css("cursor")}a("body").css("cursor",g.cursor)}if(g.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",g.opacity)}if(g.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",g.zIndex)}if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",e,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!b){for(var d=this.containers.length-1;d>=0;d--){this.containers[d]._trigger("activate",e,c._uiHash(this))}}if(a.ui.ddmanager){a.ui.ddmanager.current=this}if(a.ui.ddmanager&&!g.dropBehaviour){a.ui.ddmanager.prepareOffsets(this,e)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(e);return true},_mouseDrag:function(f){this.position=this._generatePosition(f);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){var g=this.options,b=false;if(this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"){if((this.overflowOffset.top+this.scrollParent[0].offsetHeight)-f.pageY=0;d--){var e=this.items[d],c=e.item[0],h=this._intersectsWithPointer(e);if(!h){continue}if(c!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=c&&!a.ui.contains(this.placeholder[0],c)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],c):true)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(e)){this._rearrange(f,e)}else{break}this._trigger("change",f,this._uiHash());break}}this._contactContainers(f);if(a.ui.ddmanager){a.ui.ddmanager.drag(this,f)}this._trigger("sort",f,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(c,d){if(!c){return}if(a.ui.ddmanager&&!this.options.dropBehaviour){a.ui.ddmanager.drop(this,c)}if(this.options.revert){var b=this;var e=b.placeholder.offset();b.reverting=true;a(this.helper).animate({left:e.left-this.offset.parent.left-b.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-b.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){b._clear(c)})}else{this._clear(c,d)}return false},cancel:function(){var b=this;if(this.dragging){this._mouseUp();if(this.options.helper=="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var c=this.containers.length-1;c>=0;c--){this.containers[c]._trigger("deactivate",null,b._uiHash(this));if(this.containers[c].containerCache.over){this.containers[c]._trigger("out",null,b._uiHash(this));this.containers[c].containerCache.over=0}}}if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}a.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){a(this.domPosition.prev).after(this.currentItem)}else{a(this.domPosition.parent).prepend(this.currentItem)}return true},serialize:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};a(b).each(function(){var e=(a(d.item||this).attr(d.attribute||"id")||"").match(d.expression||(/(.+)[-=_](.+)/));if(e){c.push((d.key||e[1]+"[]")+"="+(d.key&&d.expression?e[1]:e[2]))}});return c.join("&")},toArray:function(d){var b=this._getItemsAsjQuery(d&&d.connected);var c=[];d=d||{};b.each(function(){c.push(a(d.item||this).attr(d.attribute||"id")||"")});return c},_intersectsWith:function(m){var e=this.positionAbs.left,d=e+this.helperProportions.width,k=this.positionAbs.top,j=k+this.helperProportions.height;var f=m.left,c=f+m.width,n=m.top,i=n+m.height;var o=this.offset.click.top,h=this.offset.click.left;var g=(k+o)>n&&(k+o)f&&(e+h)m[this.floating?"width":"height"])){return g}else{return(f0?"down":"up")},_getDragHorizontalDirection:function(){var b=this.positionAbs.left-this.lastPositionAbs.left;return b!=0&&(b>0?"right":"left")},refresh:function(b){this._refreshItems(b);this.refreshPositions()},_connectWith:function(){var b=this.options;return b.connectWith.constructor==String?[b.connectWith]:b.connectWith},_getItemsAsjQuery:function(b){var l=this;var g=[];var e=[];var h=this._connectWith();if(h&&b){for(var d=h.length-1;d>=0;d--){var k=a(h[d]);for(var c=k.length-1;c>=0;c--){var f=a.data(k[c],"sortable");if(f&&f!=this&&!f.options.disabled){e.push([a.isFunction(f.options.items)?f.options.items.call(f.element):a(f.options.items,f.element).not(".ui-sortable-helper"),f])}}}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper"),this]);for(var d=e.length-1;d>=0;d--){e[d][0].each(function(){g.push(this)})}return a(g)},_removeCurrentsFromItems:function(){var d=this.currentItem.find(":data(sortable-item)");for(var c=0;c=0;e--){var m=a(l[e]);for(var d=m.length-1;d>=0;d--){var g=a.data(m[d],"sortable");if(g&&g!=this&&!g.options.disabled){f.push([a.isFunction(g.options.items)?g.options.items.call(g.element[0],b,{item:this.currentItem}):a(g.options.items,g.element),g]);this.containers.push(g)}}}}for(var e=f.length-1;e>=0;e--){var k=f[e][1];var c=f[e][0];for(var d=0,n=c.length;d=0;d--){var e=this.items[d];if(e.instance!=this.currentContainer&&this.currentContainer&&e.item[0]!=this.currentItem[0]){continue}var c=this.options.toleranceElement?a(this.options.toleranceElement,e.item):e.item;if(!b){e.width=c.outerWidth();e.height=c.outerHeight()}var f=c.offset();e.left=f.left;e.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(var d=this.containers.length-1;d>=0;d--){var f=this.containers[d].element.offset();this.containers[d].containerCache.left=f.left;this.containers[d].containerCache.top=f.top;this.containers[d].containerCache.width=this.containers[d].element.outerWidth();this.containers[d].containerCache.height=this.containers[d].element.outerHeight()}}},_createPlaceholder:function(d){var b=d||this,e=b.options;if(!e.placeholder||e.placeholder.constructor==String){var c=e.placeholder;e.placeholder={element:function(){var f=a(document.createElement(b.currentItem[0].nodeName)).addClass(c||b.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];if(!c){f.style.visibility="hidden"}return f},update:function(f,g){if(c&&!e.forcePlaceholderSize){return}if(!g.height()){g.height(b.currentItem.innerHeight()-parseInt(b.currentItem.css("paddingTop")||0,10)-parseInt(b.currentItem.css("paddingBottom")||0,10))}if(!g.width()){g.width(b.currentItem.innerWidth()-parseInt(b.currentItem.css("paddingLeft")||0,10)-parseInt(b.currentItem.css("paddingRight")||0,10))}}}}b.placeholder=a(e.placeholder.element.call(b.element,b.currentItem));b.currentItem.after(b.placeholder);e.placeholder.update(b,b.placeholder)},_contactContainers:function(d){for(var c=this.containers.length-1;c>=0;c--){if(this._intersectsWith(this.containers[c].containerCache)){if(!this.containers[c].containerCache.over){if(this.currentContainer!=this.containers[c]){var h=10000;var g=null;var e=this.positionAbs[this.containers[c].floating?"left":"top"];for(var b=this.items.length-1;b>=0;b--){if(!a.ui.contains(this.containers[c].element[0],this.items[b].item[0])){continue}var f=this.items[b][this.containers[c].floating?"left":"top"];if(Math.abs(f-e)this.containment[2]){d=this.containment[2]+this.offset.click.left}if(e.pageY-this.offset.click.top>this.containment[3]){c=this.containment[3]+this.offset.click.top}}if(h.grid){var g=this.originalPageY+Math.round((c-this.originalPageY)/h.grid[1])*h.grid[1];c=this.containment?(!(g-this.offset.click.topthis.containment[3])?g:(!(g-this.offset.click.topthis.containment[2])?f:(!(f-this.offset.click.left=0;c--){if(a.ui.contains(this.containers[c].element[0],this.currentItem[0])&&!e){f.push((function(g){return function(h){g._trigger("receive",h,this._uiHash(this))}}).call(this,this.containers[c]));f.push((function(g){return function(h){g._trigger("update",h,this._uiHash(this))}}).call(this,this.containers[c]))}}}for(var c=this.containers.length-1;c>=0;c--){if(!e){f.push((function(g){return function(h){g._trigger("deactivate",h,this._uiHash(this))}}).call(this,this.containers[c]))}if(this.containers[c].containerCache.over){f.push((function(g){return function(h){g._trigger("out",h,this._uiHash(this))}}).call(this,this.containers[c]));this.containers[c].containerCache.over=0}}if(this._storedCursor){a("body").css("cursor",this._storedCursor)}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex)}this.dragging=false;if(this.cancelHelperRemoval){if(!e){this._trigger("beforeStop",d,this._uiHash());for(var c=0;c *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1000}})})(jQuery);;/* + * jQuery UI Effects 1.7.2 + * + * Copyright (c) 2009 AUTHORS.txt (http://jqueryui.com/about) + * Dual licensed under the MIT (MIT-LICENSE.txt) + * and GPL (GPL-LICENSE.txt) licenses. + * + * http://docs.jquery.com/UI/Effects/ + */ +jQuery.effects||(function(d){d.effects={version:"1.7.2",save:function(g,h){for(var f=0;f
');var j=f.parent();if(f.css("position")=="static"){j.css({position:"relative"});f.css({position:"relative"})}else{var i=f.css("top");if(isNaN(parseInt(i,10))){i="auto"}var h=f.css("left");if(isNaN(parseInt(h,10))){h="auto"}j.css({position:f.css("position"),top:i,left:h,zIndex:f.css("z-index")}).show();f.css({position:"relative",top:0,left:0})}j.css(g);return j},removeWrapper:function(f){if(f.parent().is(".ui-effects-wrapper")){return f.parent().replaceWith(f)}return f},setTransition:function(g,i,f,h){h=h||{};d.each(i,function(k,j){unit=g.cssUnit(j);if(unit[0]>0){h[j]=unit[0]*f+unit[1]}});return h},animateClass:function(h,i,k,j){var f=(typeof k=="function"?k:(j?j:null));var g=(typeof k=="string"?k:null);return this.each(function(){var q={};var o=d(this);var p=o.attr("style")||"";if(typeof p=="object"){p=p.cssText}if(h.toggle){o.hasClass(h.toggle)?h.remove=h.toggle:h.add=h.toggle}var l=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.addClass(h.add)}if(h.remove){o.removeClass(h.remove)}var m=d.extend({},(document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle));if(h.add){o.removeClass(h.add)}if(h.remove){o.addClass(h.remove)}for(var r in m){if(typeof m[r]!="function"&&m[r]&&r.indexOf("Moz")==-1&&r.indexOf("length")==-1&&m[r]!=l[r]&&(r.match(/color/i)||(!r.match(/color/i)&&!isNaN(parseInt(m[r],10))))&&(l.position!="static"||(l.position=="static"&&!r.match(/left|top|bottom|right/)))){q[r]=m[r]}}o.animate(q,i,g,function(){if(typeof d(this).attr("style")=="object"){d(this).attr("style")["cssText"]="";d(this).attr("style")["cssText"]=p}else{d(this).attr("style",p)}if(h.add){d(this).addClass(h.add)}if(h.remove){d(this).removeClass(h.remove)}if(f){f.apply(this,arguments)}})})}};function c(g,f){var i=g[1]&&g[1].constructor==Object?g[1]:{};if(f){i.mode=f}var h=g[1]&&g[1].constructor!=Object?g[1]:(i.duration?i.duration:g[2]);h=d.fx.off?0:typeof h==="number"?h:d.fx.speeds[h]||d.fx.speeds._default;var j=i.callback||(d.isFunction(g[1])&&g[1])||(d.isFunction(g[2])&&g[2])||(d.isFunction(g[3])&&g[3]);return[g[0],i,h,j]}d.fn.extend({_show:d.fn.show,_hide:d.fn.hide,__toggle:d.fn.toggle,_addClass:d.fn.addClass,_removeClass:d.fn.removeClass,_toggleClass:d.fn.toggleClass,effect:function(g,f,h,i){return d.effects[g]?d.effects[g].call(this,{method:g,options:f||{},duration:h,callback:i}):null},show:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._show.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"show"))}},hide:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))){return this._hide.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"hide"))}},toggle:function(){if(!arguments[0]||(arguments[0].constructor==Number||(/(slow|normal|fast)/).test(arguments[0]))||(d.isFunction(arguments[0])||typeof arguments[0]=="boolean")){return this.__toggle.apply(this,arguments)}else{return this.effect.apply(this,c(arguments,"toggle"))}},addClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{add:g},f,i,h]):this._addClass(g)},removeClass:function(g,f,i,h){return f?d.effects.animateClass.apply(this,[{remove:g},f,i,h]):this._removeClass(g)},toggleClass:function(g,f,i,h){return((typeof f!=="boolean")&&f)?d.effects.animateClass.apply(this,[{toggle:g},f,i,h]):this._toggleClass(g,f)},morph:function(f,h,g,j,i){return d.effects.animateClass.apply(this,[{add:h,remove:f},g,j,i])},switchClass:function(){return this.morph.apply(this,arguments)},cssUnit:function(f){var g=this.css(f),h=[];d.each(["em","px","%","pt"],function(j,k){if(g.indexOf(k)>0){h=[parseFloat(g),k]}});return h}});d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(g,f){d.fx.step[f]=function(h){if(h.state==0){h.start=e(h.elem,f);h.end=b(h.end)}h.elem.style[f]="rgb("+[Math.max(Math.min(parseInt((h.pos*(h.end[0]-h.start[0]))+h.start[0],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[1]-h.start[1]))+h.start[1],10),255),0),Math.max(Math.min(parseInt((h.pos*(h.end[2]-h.start[2]))+h.start[2],10),255),0)].join(",")+")"}});function b(g){var f;if(g&&g.constructor==Array&&g.length==3){return g}if(f=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(g)){return[parseInt(f[1],10),parseInt(f[2],10),parseInt(f[3],10)]}if(f=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(g)){return[parseFloat(f[1])*2.55,parseFloat(f[2])*2.55,parseFloat(f[3])*2.55]}if(f=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(g)){return[parseInt(f[1],16),parseInt(f[2],16),parseInt(f[3],16)]}if(f=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(g)){return[parseInt(f[1]+f[1],16),parseInt(f[2]+f[2],16),parseInt(f[3]+f[3],16)]}if(f=/rgba\(0, 0, 0, 0\)/.exec(g)){return a.transparent}return a[d.trim(g).toLowerCase()]}function e(h,f){var g;do{g=d.curCSS(h,f);if(g!=""&&g!="transparent"||d.nodeName(h,"body")){break}f="backgroundColor"}while(h=h.parentNode);return b(g)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]};d.easing.jswing=d.easing.swing;d.extend(d.easing,{def:"easeOutQuad",swing:function(g,h,f,j,i){return d.easing[d.easing.def](g,h,f,j,i)},easeInQuad:function(g,h,f,j,i){return j*(h/=i)*h+f},easeOutQuad:function(g,h,f,j,i){return -j*(h/=i)*(h-2)+f},easeInOutQuad:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h+f}return -j/2*((--h)*(h-2)-1)+f},easeInCubic:function(g,h,f,j,i){return j*(h/=i)*h*h+f},easeOutCubic:function(g,h,f,j,i){return j*((h=h/i-1)*h*h+1)+f},easeInOutCubic:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h+f}return j/2*((h-=2)*h*h+2)+f},easeInQuart:function(g,h,f,j,i){return j*(h/=i)*h*h*h+f},easeOutQuart:function(g,h,f,j,i){return -j*((h=h/i-1)*h*h*h-1)+f},easeInOutQuart:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h+f}return -j/2*((h-=2)*h*h*h-2)+f},easeInQuint:function(g,h,f,j,i){return j*(h/=i)*h*h*h*h+f},easeOutQuint:function(g,h,f,j,i){return j*((h=h/i-1)*h*h*h*h+1)+f},easeInOutQuint:function(g,h,f,j,i){if((h/=i/2)<1){return j/2*h*h*h*h*h+f}return j/2*((h-=2)*h*h*h*h+2)+f},easeInSine:function(g,h,f,j,i){return -j*Math.cos(h/i*(Math.PI/2))+j+f},easeOutSine:function(g,h,f,j,i){return j*Math.sin(h/i*(Math.PI/2))+f},easeInOutSine:function(g,h,f,j,i){return -j/2*(Math.cos(Math.PI*h/i)-1)+f},easeInExpo:function(g,h,f,j,i){return(h==0)?f:j*Math.pow(2,10*(h/i-1))+f},easeOutExpo:function(g,h,f,j,i){return(h==i)?f+j:j*(-Math.pow(2,-10*h/i)+1)+f},easeInOutExpo:function(g,h,f,j,i){if(h==0){return f}if(h==i){return f+j}if((h/=i/2)<1){return j/2*Math.pow(2,10*(h-1))+f}return j/2*(-Math.pow(2,-10*--h)+2)+f},easeInCirc:function(g,h,f,j,i){return -j*(Math.sqrt(1-(h/=i)*h)-1)+f},easeOutCirc:function(g,h,f,j,i){return j*Math.sqrt(1-(h=h/i-1)*h)+f},easeInOutCirc:function(g,h,f,j,i){if((h/=i/2)<1){return -j/2*(Math.sqrt(1-h*h)-1)+f}return j/2*(Math.sqrt(1-(h-=2)*h)+1)+f},easeInElastic:function(g,i,f,m,l){var j=1.70158;var k=0;var h=m;if(i==0){return f}if((i/=l)==1){return f+m}if(!k){k=l*0.3}if(h
').appendTo(document.body).addClass(b.options.className).css({top:d.top,left:d.left,height:f.innerHeight(),width:f.innerWidth(),position:"absolute"}).animate(g,b.duration,b.options.easing,function(){c.remove();(b.callback&&b.callback.apply(f[0],arguments));f.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/vendor/plugins/jrails/javascripts/jquery.js b/vendor/plugins/jrails/javascripts/jquery.js new file mode 100644 index 0000000..b1ae21d --- /dev/null +++ b/vendor/plugins/jrails/javascripts/jquery.js @@ -0,0 +1,19 @@ +/* + * jQuery JavaScript Library v1.3.2 + * http://jquery.com/ + * + * Copyright (c) 2009 John Resig + * Dual licensed under the MIT and GPL licenses. + * http://docs.jquery.com/License + * + * Date: 2009-02-19 17:34:21 -0500 (Thu, 19 Feb 2009) + * Revision: 6246 + */ +(function(){var l=this,g,y=l.jQuery,p=l.$,o=l.jQuery=l.$=function(E,F){return new o.fn.init(E,F)},D=/^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="
";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/vendor/plugins/jrails/javascripts/jrails.js b/vendor/plugins/jrails/javascripts/jrails.js new file mode 100644 index 0000000..39aa4ec --- /dev/null +++ b/vendor/plugins/jrails/javascripts/jrails.js @@ -0,0 +1 @@ +(function($){$.ajaxSettings.accepts._default="text/javascript, text/html, application/xml, text/xml, */*"})(jQuery);(function($){$.fn.reset=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};$.fn.enable=function(){return this.each(function(){this.disabled=false})};$.fn.disable=function(){return this.each(function(){this.disabled=true})}})(jQuery);(function($){$.extend({fieldEvent:function(el,obs){var field=el[0]||el,e="change";if(field.type=="radio"||field.type=="checkbox"){e="click"}else{if(obs&&(field.type=="text"||field.type=="textarea"||field.type=="password")){e="keyup"}}return e}});$.fn.extend({delayedObserver:function(delay,callback){var el=$(this);if(typeof window.delayedObserverStack=="undefined"){window.delayedObserverStack=[]}if(typeof window.delayedObserverCallback=="undefined"){window.delayedObserverCallback=function(stackPos){var observed=window.delayedObserverStack[stackPos];if(observed.timer){clearTimeout(observed.timer)}observed.timer=setTimeout(function(){observed.timer=null;observed.callback(observed.obj,observed.obj.formVal())},observed.delay*1000);observed.oldVal=observed.obj.formVal()}}window.delayedObserverStack.push({obj:el,timer:null,delay:delay,oldVal:el.formVal(),callback:callback});var stackPos=window.delayedObserverStack.length-1;if(el[0].tagName=="FORM"){$(":input",el).each(function(){var field=$(this);field.bind($.fieldEvent(field,delay),function(){var observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.oldVal){return}else{window.delayedObserverCallback(stackPos)}})})}else{el.bind($.fieldEvent(el,delay),function(){var observed=window.delayedObserverStack[stackPos];if(observed.obj.formVal()==observed.oldVal){return}else{window.delayedObserverCallback(stackPos)}})}},formVal:function(){var el=this[0];if(el.tagName=="FORM"){return this.serialize()}if(el.type=="checkbox"||el.type=="radio"){return this.filter("input:checked").val()||""}else{return this.val()}}})})(jQuery);(function($){$.fn.extend({visualEffect:function(o,options){if(options){speed=options.duration*1000}else{speed=null}e=o.replace(/\_(.)/g,function(m,l){return l.toUpperCase()});return eval("$(this)."+e+"("+speed+")")},appear:function(speed,callback){return this.fadeIn(speed,callback)},blindDown:function(speed,callback){return this.show("blind",{direction:"vertical"},speed,callback)},blindUp:function(speed,callback){return this.hide("blind",{direction:"vertical"},speed,callback)},blindRight:function(speed,callback){return this.show("blind",{direction:"horizontal"},speed,callback)},blindLeft:function(speed,callback){this.hide("blind",{direction:"horizontal"},speed,callback);return this},dropOut:function(speed,callback){return this.hide("drop",{direction:"down"},speed,callback)},dropIn:function(speed,callback){return this.show("drop",{direction:"up"},speed,callback)},fade:function(speed,callback){return this.fadeOut(speed,callback)},fadeToggle:function(speed,callback){return this.animate({opacity:"toggle"},speed,callback)},fold:function(speed,callback){return this.hide("fold",{},speed,callback)},foldOut:function(speed,callback){return this.show("fold",{},speed,callback)},grow:function(speed,callback){return this.show("scale",{},speed,callback)},highlight:function(speed,callback){return this.show("highlight",{},speed,callback)},puff:function(speed,callback){return this.hide("puff",{},speed,callback)},pulsate:function(speed,callback){return this.show("pulsate",{},speed,callback)},shake:function(speed,callback){return this.show("shake",{},speed,callback)},shrink:function(speed,callback){return this.hide("scale",{},speed,callback)},squish:function(speed,callback){return this.hide("scale",{origin:["top","left"]},speed,callback)},slideUp:function(speed,callback){return this.hide("slide",{direction:"up"},speed,callback)},slideDown:function(speed,callback){return this.show("slide",{direction:"up"},speed,callback)},switchOff:function(speed,callback){return this.hide("clip",{},speed,callback)},switchOn:function(speed,callback){return this.show("clip",{},speed,callback)}})})(jQuery); \ No newline at end of file diff --git a/vendor/plugins/jrails/javascripts/sources/jrails.js b/vendor/plugins/jrails/javascripts/sources/jrails.js new file mode 100644 index 0000000..dc697ee --- /dev/null +++ b/vendor/plugins/jrails/javascripts/sources/jrails.js @@ -0,0 +1,197 @@ +/* +* +* jRails ajax extras +* version 0.1 +* | http://www.ennerchi.com +* +*/ + +(function($) { + $.ajaxSettings.accepts._default = "text/javascript, text/html, application/xml, text/xml, */*"; +})(jQuery); + + +/* +* +* jRails form extras +* | http://www.ennerchi.com +* +*/ + + +(function($) { + // reset a form + $.fn.reset = function() { + return this.each(function() { + // guard against an input with the name of 'reset' + // note that IE reports the reset function as an 'object' + if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) + this.reset(); + }); + }; + // enable a form element + $.fn.enable = function() { + return this.each(function() { + this.disabled = false; + }); + }; + // disable a form element + $.fn.disable = function() { + return this.each(function() { + this.disabled = true; + }); + }; + +})(jQuery); + +/* +* +* jRails form observer plugin +* version 0.2 +* | http://www.ennerchi.com +* +*/ + +(function($) { + $.extend({ // Translate field to event + fieldEvent: function(el, obs) { + var field = el[0] || el, e = 'change'; + if (field.type == 'radio' || field.type == 'checkbox') e = 'click'; + else if (obs && (field.type == 'text' || field.type == 'textarea' || field.type == 'password')) e = 'keyup'; + return e; + } + }); + $.fn.extend({ // Delayed observer for fields and forms + delayedObserver: function(delay, callback){ + var el = $(this); + if (typeof window.delayedObserverStack == 'undefined') window.delayedObserverStack = []; + if (typeof window.delayedObserverCallback == 'undefined') { + window.delayedObserverCallback = function(stackPos) { + var observed = window.delayedObserverStack[stackPos]; + if (observed.timer) clearTimeout(observed.timer); + observed.timer = setTimeout(function(){ + observed.timer = null; + observed.callback(observed.obj, observed.obj.formVal()); + }, observed.delay * 1000); + observed.oldVal = observed.obj.formVal(); + }; + } + window.delayedObserverStack.push({ + obj: el, timer: null, delay: delay, + oldVal: el.formVal(), callback: callback + }); + var stackPos = window.delayedObserverStack.length-1; + if (el[0].tagName == 'FORM') { + $(':input', el).each(function(){ + var field = $(this); + field.bind($.fieldEvent(field, delay), function(){ + var observed = window.delayedObserverStack[stackPos]; + if (observed.obj.formVal() == observed.oldVal) return; + else window.delayedObserverCallback(stackPos); + }); + }); + } else { + el.bind($.fieldEvent(el, delay), function(){ + var observed = window.delayedObserverStack[stackPos]; + if (observed.obj.formVal() == observed.oldVal) return; + else window.delayedObserverCallback(stackPos); + }); + }; + }, + formVal: function() { // Gets form values + var el = this[0]; + if(el.tagName == 'FORM') return this.serialize(); + if(el.type == 'checkbox' || el.type == 'radio') return this.filter('input:checked').val() || ''; + else return this.val(); + } + }); +})(jQuery); + +/* +* +* jRails visual effects stubs +* version 0.2 +* | http://www.ennerchi.com +* +*/ + +(function($) { + $.fn.extend({ + visualEffect : function(o, options) { + if (options) { + speed = options.duration * 1000; + } else { + speed = null; + } + e = o.replace(/\_(.)/g, function(m, l){return l.toUpperCase()}); + return eval('$(this).'+e+'('+ speed + ')'); + }, + appear : function(speed, callback) { + return this.fadeIn(speed, callback); + }, + blindDown : function(speed, callback) { + return this.show('blind', { direction: 'vertical' }, speed, callback); + }, + blindUp : function(speed, callback) { + return this.hide('blind', { direction: 'vertical' }, speed, callback); + }, + blindRight : function(speed, callback) { + return this.show('blind', { direction: 'horizontal' }, speed, callback); + }, + blindLeft : function(speed, callback) { + this.hide('blind', { direction: 'horizontal' }, speed, callback); + return this; + }, + dropOut : function(speed, callback) { + return this.hide('drop', {direction: 'down' }, speed, callback); + }, + dropIn : function(speed, callback) { + return this.show('drop', { direction: 'up' }, speed, callback); + }, + fade : function(speed, callback) { + return this.fadeOut(speed, callback); + }, + fadeToggle : function(speed, callback) { + return this.animate({opacity: 'toggle'}, speed, callback); + }, + fold : function(speed, callback) { + return this.hide('fold', {}, speed, callback); + }, + foldOut : function(speed, callback) { + return this.show('fold', {}, speed, callback); + }, + grow : function(speed, callback) { + return this.show('scale', {}, speed, callback); + }, + highlight : function(speed, callback) { + return this.show('highlight', {}, speed, callback); + }, + puff : function(speed, callback) { + return this.hide('puff', {}, speed, callback); + }, + pulsate : function(speed, callback) { + return this.show('pulsate', {}, speed, callback); + }, + shake : function(speed, callback) { + return this.show('shake', {}, speed, callback); + }, + shrink : function(speed, callback) { + return this.hide('scale', {}, speed, callback); + }, + squish : function(speed, callback) { + return this.hide('scale', { origin: ['top', 'left'] }, speed, callback); + }, + slideUp : function(speed, callback) { + return this.hide('slide', { direction: 'up'}, speed, callback); + }, + slideDown : function(speed, callback) { + return this.show('slide', { direction: 'up'}, speed, callback); + }, + switchOff : function(speed, callback) { + return this.hide('clip', {}, speed, callback); + }, + switchOn : function(speed, callback) { + return this.show('clip', {}, speed, callback); + } + }); +})(jQuery); diff --git a/vendor/plugins/jrails/jrails.gemspec b/vendor/plugins/jrails/jrails.gemspec new file mode 100644 index 0000000..ffe22e9 --- /dev/null +++ b/vendor/plugins/jrails/jrails.gemspec @@ -0,0 +1,52 @@ +# Generated by jeweler +# DO NOT EDIT THIS FILE DIRECTLY +# Instead, edit Jeweler::Tasks in rakefile, and run the gemspec command +# -*- encoding: utf-8 -*- + +Gem::Specification.new do |s| + s.name = %q{jrails} + s.version = "0.6.0" + + s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version= + s.authors = ["Aaron Eisenberger", "Patrick Hurley"] + s.date = %q{2009-10-20} + s.default_executable = %q{jrails} + s.description = %q{Using jRails, you can get all of the same default Rails helpers for javascript functionality using the lighter jQuery library.} + s.email = %q{aaronchi@gmail.com} + s.executables = ["jrails"] + s.extra_rdoc_files = [ + "CHANGELOG", + "LICENSE", + "README.rdoc" + ] + s.files = [ + "bin/jrails", + "init.rb", + "install.rb", + "javascripts/jquery-ui.js", + "javascripts/jquery.js", + "javascripts/jrails.js", + "javascripts/sources/jrails.js", + "lib/jquery_selector_assertions.rb", + "lib/jrails.rb", + "rails/init.rb", + "tasks/jrails.rake" + ] + s.homepage = %q{http://ennerchi.com/projects/jrails} + s.rdoc_options = ["--charset=UTF-8"] + s.require_paths = ["lib"] + s.rubyforge_project = %q{jrails} + s.rubygems_version = %q{1.3.5} + s.summary = %q{jRails is a drop-in jQuery replacement for the Rails Prototype/script.aculo.us helpers.} + + if s.respond_to? :specification_version then + current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION + s.specification_version = 3 + + if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then + else + end + else + end +end + diff --git a/vendor/plugins/jrails/lib/jquery_selector_assertions.rb b/vendor/plugins/jrails/lib/jquery_selector_assertions.rb new file mode 100644 index 0000000..bdba57b --- /dev/null +++ b/vendor/plugins/jrails/lib/jquery_selector_assertions.rb @@ -0,0 +1,78 @@ +# +# jQuery Selector Assertions (modifications to the prototype/scriptaculous assertions) +# +# From http://pastie.org/303776 +# +# 1. Make sure to use '#' prefix when referring to element IDs in assert_select_rjs(), +# like this: +# assert_select_rjs :replace_html, '#someid' +# instead of prototype convention: +# assert_select_rjs :replace_html, 'someid' +# +# We monkey-patch some RJS-matching constants for assert_select_rjs to work +# with jQuery-based code as opposed to Prototype's: +# +module ActionController + module Assertions + module SelectorAssertions + silence_warnings do + RJS_PATTERN_HTML = "\"((\\\\\"|[^\"])*)\"" +# RJS_ANY_ID = "\"([^\"])*\"" +# better match with single or double quoted ids + RJS_ANY_ID = "[\"']([^\"])*[\"']" + + RJS_STATEMENTS = { + :chained_replace => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.replaceWith\\(#{RJS_PATTERN_HTML}\\)", + :chained_replace_html => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.updateWith\\(#{RJS_PATTERN_HTML}\\)", + :replace_html => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.html\\(#{RJS_PATTERN_HTML}\\)", + :replace => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.replaceWith\\(#{RJS_PATTERN_HTML}\\)", + :insert_top => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.prepend\\(#{RJS_PATTERN_HTML}\\)", + :insert_bottom => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.append\\(#{RJS_PATTERN_HTML}\\)", + :effect => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.effect\\(", + :highlight => "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.effect\\('highlight'" + +=begin TODO: + +I've never used the chained_* so I don't know if they work. + +I couldn't seem to get assert_select_rjs to actually match the single quoted ids +which are created by some of the effects like ... + ... jQuery('#item_1559').effect('highlight',{},1000); +so I modified jrails/lib/jrails.rb line 337 + ... javascript = "#{JQUERY_VAR}('#{jquery_id(element_id)}').#{mode || 'effect'}('#{name}'" +to + ... javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{mode || 'effect'}('#{name}'" +so it writes double quotes like most of the others. This change should probably be +done to the others, but as I don't use them so haven't tested them. + +My other option seemed to require modifying rails' selector_assertions.rb line 427 + ... id ? statement.gsub(RJS_ANY_ID, "\"#{id}\"") : statement +which forces the expectation that the id is double quoted. If I changed it to + ... statement.gsub(RJS_ANY_ID, "[\"']{1}#{id}[\"']{1}") +I believe that it would work as the logic seemed to work in some testing. +I have not actually tried to modify rails, as this file doesn't seem to +actually be in the git repository. + + +jrails now uses a nonconflict option so $ is jQuery. I put both in the pattern in case it gets changed. + + :insert_after => "", + :insert_before => "", +=end + + } + + [:remove, :show, :hide, :toggle, :reset ].each do |action| + RJS_STATEMENTS[action] = "\(jQuery|$\)\\(#{RJS_ANY_ID}\\)\\.#{action}\\(\\)" + end + + # TODO: + #RJS_STATEMENTS[:insert_html] = "Element.insert\\(#{RJS_ANY_ID}, \\{ (#{RJS_INSERTIONS.join('|')}): + #{RJS_PATTERN_HTML} \\}\\)" + + RJS_STATEMENTS[:any] = Regexp.new("(#{RJS_STATEMENTS.values.join('|')})") + RJS_PATTERN_UNICODE_ESCAPED_CHAR = /\\u([0-9a-zA-Z]{4})/ + end + end + end +end diff --git a/vendor/plugins/jrails/lib/jrails.rb b/vendor/plugins/jrails/lib/jrails.rb new file mode 100644 index 0000000..11935bb --- /dev/null +++ b/vendor/plugins/jrails/lib/jrails.rb @@ -0,0 +1,423 @@ +module ActionView + module Helpers + + module JavaScriptHelper + + # This function can be used to render rjs inline + # + # <%= javascript_function do |page| + # page.replace_html :list, :partial => 'list', :object => @list + # end %> + # + def javascript_function(*args, &block) + html_options = args.extract_options! + function = args[0] || '' + + html_options.symbolize_keys! + function = update_page(&block) if block_given? + javascript_tag(function) + end + + def jquery_id(id) + id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id + end + + def jquery_ids(ids) + Array(ids).map{|id| jquery_id(id)}.join(',') + end + + end + + module PrototypeHelper + + USE_PROTECTION = const_defined?(:DISABLE_JQUERY_FORGERY_PROTECTION) ? !DISABLE_JQUERY_FORGERY_PROTECTION : true + + unless const_defined? :JQUERY_VAR + JQUERY_VAR = 'jQuery' + end + + unless const_defined? :JQCALLBACKS + JQCALLBACKS = Set.new([ :beforeSend, :complete, :error, :success ] + (100..599).to_a) + #instance_eval { remove_const :AJAX_OPTIONS } + remove_const(:AJAX_OPTIONS) if const_defined?(:AJAX_OPTIONS) + AJAX_OPTIONS = Set.new([ :before, :after, :condition, :url, + :asynchronous, :method, :insertion, :position, + :form, :with, :update, :script ]).merge(JQCALLBACKS) + end + + def periodically_call_remote(options = {}) + frequency = options[:frequency] || 10 # every ten seconds by default + code = "setInterval(function() {#{remote_function(options)}}, #{frequency} * 1000)" + javascript_tag(code) + end + + def remote_function(options) + javascript_options = options_for_ajax(options) + + update = '' + if options[:update] && options[:update].is_a?(Hash) + update = [] + update << "success:'#{options[:update][:success]}'" if options[:update][:success] + update << "failure:'#{options[:update][:failure]}'" if options[:update][:failure] + update = '{' + update.join(',') + '}' + elsif options[:update] + update << "'#{options[:update]}'" + end + + function = "#{JQUERY_VAR}.ajax(#{javascript_options})" + + function = "#{options[:before]}; #{function}" if options[:before] + function = "#{function}; #{options[:after]}" if options[:after] + function = "if (#{options[:condition]}) { #{function}; }" if options[:condition] + function = "if (confirm('#{escape_javascript(options[:confirm])}')) { #{function}; }" if options[:confirm] + return function + end + + class JavaScriptGenerator + module GeneratorMethods + + def insert_html(position, id, *options_for_render) + insertion = position.to_s.downcase + insertion = 'append' if insertion == 'bottom' + insertion = 'prepend' if insertion == 'top' + call "#{JQUERY_VAR}(\"#{jquery_id(id)}\").#{insertion}", render(*options_for_render) + end + + def replace_html(id, *options_for_render) + insert_html(:html, id, *options_for_render) + end + + def replace(id, *options_for_render) + call "#{JQUERY_VAR}(\"#{jquery_id(id)}\").replaceWith", render(*options_for_render) + end + + def remove(*ids) + call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").remove" + end + + def show(*ids) + call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").show" + end + + def hide(*ids) + call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").hide" + end + + def toggle(*ids) + call "#{JQUERY_VAR}(\"#{jquery_ids(ids)}\").toggle" + end + + def jquery_id(id) + id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id + end + + def jquery_ids(ids) + Array(ids).map{|id| jquery_id(id)}.join(',') + end + + end + end + + protected + def options_for_ajax(options) + js_options = build_callbacks(options) + + url_options = options[:url] + url_options = url_options.merge(:escape => false) if url_options.is_a?(Hash) + js_options['url'] = "'#{url_for(url_options)}'" + js_options['async'] = false if options[:type] == :synchronous + js_options['type'] = options[:method] ? method_option_to_s(options[:method]) : ( options[:form] ? "'post'" : nil ) + js_options['dataType'] = options[:datatype] ? "'#{options[:datatype]}'" : (options[:update] ? nil : "'script'") + + if options[:form] + js_options['data'] = "#{JQUERY_VAR}.param(#{JQUERY_VAR}(this).serializeArray())" + elsif options[:submit] + js_options['data'] = "#{JQUERY_VAR}(\"##{options[:submit]} :input\").serialize()" + elsif options[:with] + js_options['data'] = options[:with].gsub("Form.serialize(this.form)","#{JQUERY_VAR}.param(#{JQUERY_VAR}(this.form).serializeArray())") + end + + js_options['type'] ||= "'post'" + if options[:method] + if method_option_to_s(options[:method]) == "'put'" || method_option_to_s(options[:method]) == "'delete'" + js_options['type'] = "'post'" + if js_options['data'] + js_options['data'] << " + '&" + else + js_options['data'] = "'" + end + js_options['data'] << "_method=#{options[:method]}'" + end + end + + if USE_PROTECTION && respond_to?('protect_against_forgery?') && protect_against_forgery? + if js_options['data'] + js_options['data'] << " + '&" + else + js_options['data'] = "'" + end + js_options['data'] << "#{request_forgery_protection_token}=' + encodeURIComponent('#{escape_javascript form_authenticity_token}')" + end + js_options['data'] = "''" if js_options['type'] == "'post'" && js_options['data'].nil? + options_for_javascript(js_options.reject {|key, value| value.nil?}) + end + + def build_update_for_success(html_id, insertion=nil) + insertion = build_insertion(insertion) + "#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request);" + end + + def build_update_for_error(html_id, insertion=nil) + insertion = build_insertion(insertion) + "#{JQUERY_VAR}('#{jquery_id(html_id)}').#{insertion}(request.responseText);" + end + + def build_insertion(insertion) + insertion = insertion ? insertion.to_s.downcase : 'html' + insertion = 'append' if insertion == 'bottom' + insertion = 'prepend' if insertion == 'top' + insertion + end + + def build_observer(klass, name, options = {}) + if options[:with] && (options[:with] !~ /[\{=(.]/) + options[:with] = "'#{options[:with]}=' + value" + else + options[:with] ||= 'value' unless options[:function] + end + + callback = options[:function] || remote_function(options) + javascript = "#{JQUERY_VAR}('#{jquery_id(name)}').delayedObserver(" + javascript << "#{options[:frequency] || 0}, " + javascript << "function(element, value) {" + javascript << "#{callback}}" + #javascript << ", '#{options[:on]}'" if options[:on] + javascript << ")" + javascript_tag(javascript) + end + + def build_callbacks(options) + callbacks = {} + options[:beforeSend] = ''; + [:uninitialized,:loading].each do |key| + options[:beforeSend] << (options[key].last == ';' ? options.delete(key) : options.delete(key) << ';') if options[key] + end + options.delete(:beforeSend) if options[:beforeSend].blank? + options[:complete] = options.delete(:loaded) if options[:loaded] + options[:error] = options.delete(:failure) if options[:failure] + if options[:update] + if options[:update].is_a?(Hash) + options[:update][:error] = options[:update].delete(:failure) if options[:update][:failure] + if options[:update][:success] + options[:success] = build_update_for_success(options[:update][:success], options[:position]) << (options[:success] ? options[:success] : '') + end + if options[:update][:error] + options[:error] = build_update_for_error(options[:update][:error], options[:position]) << (options[:error] ? options[:error] : '') + end + else + options[:success] = build_update_for_success(options[:update], options[:position]) << (options[:success] ? options[:success] : '') + end + end + options.each do |callback, code| + if JQCALLBACKS.include?(callback) + callbacks[callback] = "function(request){#{code}}" + end + end + callbacks + end + + end + + class JavaScriptElementProxy < JavaScriptProxy #:nodoc: + + unless const_defined? :JQUERY_VAR + JQUERY_VAR = PrototypeHelper::JQUERY_VAR + end + + def initialize(generator, id) + id = id.to_s.count('#.*,>+~:[/ ') == 0 ? "##{id}" : id + @id = id + super(generator, "#{JQUERY_VAR}(\"#{id}\")") + end + + def replace_html(*options_for_render) + call 'html', @generator.send(:render, *options_for_render) + end + + def replace(*options_for_render) + call 'replaceWith', @generator.send(:render, *options_for_render) + end + + def reload(options_for_replace={}) + replace(options_for_replace.merge({ :partial => @id.to_s.sub(/^#/,'') })) + end + + def value() + call 'val()' + end + + def value=(value) + call 'val', value + end + + end + + class JavaScriptElementCollectionProxy < JavaScriptCollectionProxy #:nodoc:\ + + unless const_defined? :JQUERY_VAR + JQUERY_VAR = PrototypeHelper::JQUERY_VAR + end + + def initialize(generator, pattern) + super(generator, "#{JQUERY_VAR}(#{pattern.to_json})") + end + end + + module ScriptaculousHelper + + unless const_defined? :JQUERY_VAR + JQUERY_VAR = PrototypeHelper::JQUERY_VAR + end + + unless const_defined? :SCRIPTACULOUS_EFFECTS + SCRIPTACULOUS_EFFECTS = { + :appear => {:method => 'fadeIn'}, + :blind_down => {:method => 'blind', :mode => 'show', :options => {:direction => 'vertical'}}, + :blind_up => {:method => 'blind', :mode => 'hide', :options => {:direction => 'vertical'}}, + :blind_right => {:method => 'blind', :mode => 'show', :options => {:direction => 'horizontal'}}, + :blind_left => {:method => 'blind', :mode => 'hide', :options => {:direction => 'horizontal'}}, + :bounce_in => {:method => 'bounce', :mode => 'show', :options => {:direction => 'up'}}, + :bounce_out => {:method => 'bounce', :mode => 'hide', :options => {:direction => 'up'}}, + :drop_in => {:method => 'drop', :mode => 'show', :options => {:direction => 'up'}}, + :drop_out => {:method => 'drop', :mode => 'hide', :options => {:direction => 'down'}}, + :fade => {:method => 'fadeOut'}, + :fold_in => {:method => 'fold', :mode => 'hide'}, + :fold_out => {:method => 'fold', :mode => 'show'}, + :grow => {:method => 'scale', :mode => 'show'}, + :shrink => {:method => 'scale', :mode => 'hide'}, + :slide_down => {:method => 'slide', :mode => 'show', :options => {:direction => 'up'}}, + :slide_up => {:method => 'slide', :mode => 'hide', :options => {:direction => 'up'}}, + :slide_right => {:method => 'slide', :mode => 'show', :options => {:direction => 'left'}}, + :slide_left => {:method => 'slide', :mode => 'hide', :options => {:direction => 'left'}}, + :squish => {:method => 'scale', :mode => 'hide', :options => {:origin => "['top','left']"}}, + :switch_on => {:method => 'clip', :mode => 'show', :options => {:direction => 'vertical'}}, + :switch_off => {:method => 'clip', :mode => 'hide', :options => {:direction => 'vertical'}}, + :toggle_appear => {:method => 'fadeToggle'}, + :toggle_slide => {:method => 'slide', :mode => 'toggle', :options => {:direction => 'up'}}, + :toggle_blind => {:method => 'blind', :mode => 'toggle', :options => {:direction => 'vertical'}}, + } + end + + def visual_effect(name, element_id = false, js_options = {}) + element = element_id ? element_id : "this" + + if SCRIPTACULOUS_EFFECTS.has_key? name.to_sym + effect = SCRIPTACULOUS_EFFECTS[name.to_sym] + name = effect[:method] + mode = effect[:mode] + js_options = js_options.merge(effect[:options]) if effect[:options] + end + + [:color, :direction, :startcolor, :endcolor].each do |option| + js_options[option] = "'#{js_options[option]}'" if js_options[option] + end + + if js_options.has_key? :duration + speed = js_options.delete :duration + speed = (speed * 1000).to_i unless speed.nil? + else + speed = js_options.delete :speed + end + + if ['fadeIn','fadeOut','fadeToggle'].include?(name) + # 090905 - Jake - changed ' to \" so it passes assert_select_rjs with an id + javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{name}(" + javascript << "#{speed}" unless speed.nil? + javascript << ");" + else + # 090905 - Jake - changed ' to \" so it passes "assert_select_rjs :effect, ID" + javascript = "#{JQUERY_VAR}(\"#{jquery_id(element_id)}\").#{mode || 'effect'}('#{name}'" + javascript << ",#{options_for_javascript(js_options)}" unless speed.nil? && js_options.empty? + javascript << ",#{speed}" unless speed.nil? + javascript << ");" + end + + end + + def sortable_element_js(element_id, options = {}) #:nodoc: + #convert similar attributes + options[:handle] = ".#{options[:handle]}" if options[:handle] + if options[:tag] || options[:only] + options[:items] = "> " + options[:items] << options.delete(:tag) if options[:tag] + options[:items] << ".#{options.delete(:only)}" if options[:only] + end + options[:connectWith] = options.delete(:containment).map {|x| "##{x}"} if options[:containment] + options[:containment] = options.delete(:container) if options[:container] + options[:dropOnEmpty] = false unless options[:dropOnEmpty] + options[:helper] = "'clone'" if options[:ghosting] == true + options[:axis] = case options.delete(:constraint) + when "vertical", :vertical + "y" + when "horizontal", :horizontal + "x" + when false + nil + when nil + "y" + end + options.delete(:axis) if options[:axis].nil? + options.delete(:overlap) + options.delete(:ghosting) + + if options[:onUpdate] || options[:url] + if options[:format] + options[:with] ||= "#{JQUERY_VAR}(this).sortable('serialize',{key:'#{element_id}[]', expression:#{options[:format]}})" + options.delete(:format) + else + options[:with] ||= "#{JQUERY_VAR}(this).sortable('serialize',{key:'#{element_id}[]'})" + end + + options[:onUpdate] ||= "function(){" + remote_function(options) + "}" + end + + options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) } + options[:update] = options.delete(:onUpdate) if options[:onUpdate] + + [:axis, :cancel, :containment, :cursor, :handle, :tolerance, :items, :placeholder].each do |option| + options[option] = "'#{options[option]}'" if options[option] + end + + options[:connectWith] = array_or_string_for_javascript(options[:connectWith]) if options[:connectWith] + + %(#{JQUERY_VAR}('#{jquery_id(element_id)}').sortable(#{options_for_javascript(options)});) + end + + def draggable_element_js(element_id, options = {}) + %(#{JQUERY_VAR}("#{jquery_id(element_id)}").draggable(#{options_for_javascript(options)});) + end + + def drop_receiving_element_js(element_id, options = {}) + #convert similar options + options[:hoverClass] = options.delete(:hoverclass) if options[:hoverclass] + options[:drop] = options.delete(:onDrop) if options[:onDrop] + + if options[:drop] || options[:url] + options[:with] ||= "'id=' + encodeURIComponent(#{JQUERY_VAR}(ui.draggable).attr('id'))" + options[:drop] ||= "function(ev, ui){" + remote_function(options) + "}" + end + + options.delete_if { |key, value| PrototypeHelper::AJAX_OPTIONS.include?(key) } + + options[:accept] = array_or_string_for_javascript(options[:accept]) if options[:accept] + [:activeClass, :hoverClass, :tolerance].each do |option| + options[option] = "'#{options[option]}'" if options[option] + end + + %(#{JQUERY_VAR}('#{jquery_id(element_id)}').droppable(#{options_for_javascript(options)});) + end + + end + + end +end diff --git a/vendor/plugins/jrails/rails/init.rb b/vendor/plugins/jrails/rails/init.rb new file mode 100644 index 0000000..ef9e43a --- /dev/null +++ b/vendor/plugins/jrails/rails/init.rb @@ -0,0 +1,16 @@ +# The following options can be changed by creating an initializer in config/initializers/jrails.rb + +# jRails uses jQuery.noConflict() by default +# to use the default jQuery varibale, use: +# ActionView::Helpers::PrototypeHelper::JQUERY_VAR = '$' + +# ActionView::Helpers::PrototypeHelper:: DISABLE_JQUERY_FORGERY_PROTECTION +# Set this to disable forgery protection in ajax calls +# This is handy if you want to use caching with ajax by injecting the forgery token via another means +# for an example, see http://henrik.nyh.se/2008/05/rails-authenticity-token-with-jquery +# ActionView::Helpers::PrototypeHelper::DISABLE_JQUERY_FORGERY_PROTECTION = true + +ActionView::Helpers::AssetTagHelper::JAVASCRIPT_DEFAULT_SOURCES = ['jquery','jquery-ui','jrails'] +ActionView::Helpers::AssetTagHelper::reset_javascript_include_default +require 'jrails' +require 'jquery_selector_assertions' if RAILS_ENV == 'test' diff --git a/vendor/plugins/jrails/tasks/jrails.rake b/vendor/plugins/jrails/tasks/jrails.rake new file mode 100644 index 0000000..b91d82b --- /dev/null +++ b/vendor/plugins/jrails/tasks/jrails.rake @@ -0,0 +1,25 @@ +namespace :jrails do + + namespace :js do + desc "Copies the jQuery and jRails javascripts to public/javascripts" + task :install do + puts "Copying files..." + project_dir = RAILS_ROOT + '/public/javascripts/' + scripts = Dir[File.join(File.dirname(__FILE__), '..', '/javascripts/', '*.js')] + FileUtils.cp(scripts, project_dir) + puts "files copied successfully." + end + + desc 'Remove the prototype / script.aculo.us javascript files' + task :scrub do + puts "Removing files..." + files = %W[controls.js dragdrop.js effects.js prototype.js] + project_dir = File.join(RAILS_ROOT, 'public', 'javascripts') + files.each do |fname| + FileUtils.rm(File.join(project_dir, fname)) if File.exists?(File.join(project_dir, fname)) + end + puts "files removed successfully." + end + end + +end diff --git a/vendor/plugins/paperclip/LICENSE b/vendor/plugins/paperclip/LICENSE new file mode 100644 index 0000000..299b9ed --- /dev/null +++ b/vendor/plugins/paperclip/LICENSE @@ -0,0 +1,26 @@ + +LICENSE + +The MIT License + +Copyright (c) 2008 Jon Yurek and thoughtbot, inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + diff --git a/vendor/plugins/paperclip/README.rdoc b/vendor/plugins/paperclip/README.rdoc new file mode 100644 index 0000000..9f45a79 --- /dev/null +++ b/vendor/plugins/paperclip/README.rdoc @@ -0,0 +1,182 @@ +=Paperclip + +Paperclip is intended as an easy file attachment library for ActiveRecord. The +intent behind it was to keep setup as easy as possible and to treat files as +much like other attributes as possible. This means they aren't saved to their +final locations on disk, nor are they deleted if set to nil, until +ActiveRecord::Base#save is called. It manages validations based on size and +presence, if required. It can transform its assigned image into thumbnails if +needed, and the prerequisites are as simple as installing ImageMagick (which, +for most modern Unix-based systems, is as easy as installing the right +packages). Attached files are saved to the filesystem and referenced in the +browser by an easily understandable specification, which has sensible and +useful defaults. + +See the documentation for +has_attached_file+ in Paperclip::ClassMethods for +more detailed options. + +The complete RDoc[http://rdoc.info/projects/thoughtbot/paperclip] is online. + +==Quick Start + +In your model: + + class User < ActiveRecord::Base + has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" } + end + +In your migrations: + + class AddAvatarColumnsToUser < ActiveRecord::Migration + def self.up + add_column :users, :avatar_file_name, :string + add_column :users, :avatar_content_type, :string + add_column :users, :avatar_file_size, :integer + add_column :users, :avatar_updated_at, :datetime + end + + def self.down + remove_column :users, :avatar_file_name + remove_column :users, :avatar_content_type + remove_column :users, :avatar_file_size + remove_column :users, :avatar_updated_at + end + end + +In your edit and new views: + + <% form_for :user, @user, :url => user_path, :html => { :multipart => true } do |form| %> + <%= form.file_field :avatar %> + <% end %> + +In your controller: + + def create + @user = User.create( params[:user] ) + end + +In your show view: + + <%= image_tag @user.avatar.url %> + <%= image_tag @user.avatar.url(:medium) %> + <%= image_tag @user.avatar.url(:thumb) %> + +==Usage + +The basics of paperclip are quite simple: Declare that your model has an +attachment with the has_attached_file method, and give it a name. Paperclip +will wrap up up to four attributes (all prefixed with that attachment's name, +so you can have multiple attachments per model if you wish) and give the a +friendly front end. The attributes are _file_name, +_file_size, _content_type, and _updated_at. +Only _file_name is required for paperclip to operate. More +information about the options to has_attached_file is available in the +documentation of Paperclip::ClassMethods. + +Attachments can be validated with Paperclip's validation methods, +validates_attachment_presence, validates_attachment_content_type, and +validates_attachment_size. + +==Storage + +The files that are assigned as attachments are, by default, placed in the +directory specified by the :path option to has_attached_file. By default, this +location is ":rails_root/public/system/:attachment/:id/:style/:filename". This +location was chosen because on standard Capistrano deployments, the +public/system directory is symlinked to the app's shared directory, meaning it +will survive between deployments. For example, using that :path, you may have a +file at + + /data/myapp/releases/20081229172410/public/system/avatars/13/small/my_pic.png + +NOTE: This is a change from previous versions of Paperclip, but is overall a +safer choice for the default file store. + +You may also choose to store your files using Amazon's S3 service. You can find +more information about S3 storage at the description for +Paperclip::Storage::S3. + +Files on the local filesystem (and in the Rails app's public directory) will be +available to the internet at large. If you require access control, it's +possible to place your files in a different location. You will need to change +both the :path and :url options in order to make sure the files are unavailable +to the public. Both :path and :url allow the same set of interpolated +variables. + +==Post Processing + +Paperclip supports an extensible selection of post-processors. When you define +a set of styles for an attachment, by default it is expected that those +"styles" are actually "thumbnails". However, you can do much more than just +thumbnail images. By defining a subclass of Paperclip::Processor, you can +perform any processing you want on the files that are attached. Any file in +your Rails app's lib/paperclip_processors directory is automatically loaded by +paperclip, allowing you to easily define custom processors. You can specify a +processor with the :processors option to has_attached_file: + + has_attached_file :scan, :styles => { :text => { :quality => :better } }, + :processors => [:ocr] + +This would load the hypothetical class Paperclip::Ocr, which would have the +hash "{ :quality => :better }" passed to it along with the uploaded file. For +more information about defining processors, see Paperclip::Processor. + +The default processor is Paperclip::Thumbnail. For backwards compatability +reasons, you can pass a single geometry string or an array containing a +geometry and a format, which the file will be converted to, like so: + + has_attached_file :avatar, :styles => { :thumb => ["32x32#", :png] } + +This will convert the "thumb" style to a 32x32 square in png format, regardless +of what was uploaded. If the format is not specified, it is kept the same (i.e. +jpgs will remain jpgs). + +Multiple processors can be specified, and they will be invoked in the order +they are defined in the :processors array. Each successive processor will +be given the result of the previous processor's execution. All processors will +receive the same parameters, which are what you define in the :styles hash. +For example, assuming we had this definition: + + has_attached_file :scan, :styles => { :text => { :quality => :better } }, + :processors => [:rotator, :ocr] + +then both the :rotator processor and the :ocr processor would receive the +options "{ :quality => :better }". This parameter may not mean anything to one +or more or the processors, and they are expected to ignore it. + +NOTE: Because processors operate by turning the original attachment into the +styles, no processors will be run if there are no styles defined. + +==Events + +Before and after the Post Processing step, Paperclip calls back to the model +with a few callbacks, allowing the model to change or cancel the processing +step. The callbacks are "before_post_process" and "after_post_process" (which +are called before and after the processing of each attachment), and the +attachment-specific "before__post_process" and +"after__post_process". The callbacks are intended to be as close to +normal ActiveRecord callbacks as possible, so if you return false (specifically +- returning nil is not the same) in a before_ filter, the post processing step +will halt. Returning false in an after_ filter will not halt anything, but you +can access the model and the attachment if necessary. + +NOTE: Post processing will not even *start* if the attachment is not valid +according to the validations. Your callbacks and processors will *only* be +called with valid attachments. + +==Testing + +Paperclip provides rspec-compatible matchers for testing attachments. See the +documentation on Paperclip::Shoulda::Matchers for more information. + +==Contributing + +If you'd like to contribute a feature or bugfix: Thanks! To make sure your +fix/feature has a high chance of being included, please read the following +guidelines: + +1. Ask on the mailing list[http://groups.google.com/group/paperclip-plugin], or + post a new GitHub Issue[http://github.com/thoughtbot/paperclip/issues]. +2. Make sure there are tests! We will not accept any patch that is not tested. + It's a rare time when explicit tests aren't needed. If you have questions + about writing tests for paperclip, please ask the mailing list. diff --git a/vendor/plugins/paperclip/Rakefile b/vendor/plugins/paperclip/Rakefile new file mode 100644 index 0000000..6a11036 --- /dev/null +++ b/vendor/plugins/paperclip/Rakefile @@ -0,0 +1,76 @@ +require 'rake' +require 'rake/testtask' +require 'rake/rdoctask' + +$LOAD_PATH << File.join(File.dirname(__FILE__), 'lib') +require 'paperclip' + +desc 'Default: run unit tests.' +task :default => [:clean, :test] + +desc 'Test the paperclip plugin under all supported Rails versions.' +task :all do |t| + exec('rake RAILS_VERSION=2.1 && rake RAILS_VERSION=2.3 && rake RAILS_VERSION=3.0') +end + +desc 'Test the paperclip plugin.' +Rake::TestTask.new(:test) do |t| + t.libs << 'lib' << 'profile' + t.pattern = 'test/**/*_test.rb' + t.verbose = true +end + +desc 'Start an IRB session with all necessary files required.' +task :shell do |t| + chdir File.dirname(__FILE__) + exec 'irb -I lib/ -I lib/paperclip -r rubygems -r active_record -r tempfile -r init' +end + +desc 'Generate documentation for the paperclip plugin.' +Rake::RDocTask.new(:rdoc) do |rdoc| + rdoc.rdoc_dir = 'doc' + rdoc.title = 'Paperclip' + rdoc.options << '--line-numbers' << '--inline-source' + rdoc.rdoc_files.include('README*') + rdoc.rdoc_files.include('lib/**/*.rb') +end + +desc 'Update documentation on website' +task :sync_docs => 'rdoc' do + `rsync -ave ssh doc/ dev@dev.thoughtbot.com:/home/dev/www/dev.thoughtbot.com/paperclip` +end + +desc 'Clean up files.' +task :clean do |t| + FileUtils.rm_rf "doc" + FileUtils.rm_rf "tmp" + FileUtils.rm_rf "pkg" + FileUtils.rm_rf "public" + FileUtils.rm "test/debug.log" rescue nil + FileUtils.rm "test/paperclip.db" rescue nil + Dir.glob("paperclip-*.gem").each{|f| FileUtils.rm f } +end + +desc 'Build the gemspec.' +task :gemspec do |t| + exec 'gem build paperclip.gemspec' +end + +desc "Print a list of the files to be put into the gem" +task :manifest => :clean do + spec.files.each do |file| + puts file + end +end + +desc "Generate a gemspec file for GitHub" +task :gemspec => :clean do + File.open("#{spec.name}.gemspec", 'w') do |f| + f.write spec.to_ruby + end +end + +desc "Build the gem into the current directory" +task :gem => :gemspec do + `gem build #{spec.name}.gemspec` +end diff --git a/vendor/plugins/paperclip/cucumber/paperclip_steps.rb b/vendor/plugins/paperclip/cucumber/paperclip_steps.rb new file mode 100644 index 0000000..fac0c12 --- /dev/null +++ b/vendor/plugins/paperclip/cucumber/paperclip_steps.rb @@ -0,0 +1,6 @@ +When /^I attach an? "([^\"]*)" "([^\"]*)" file to an? "([^\"]*)" on S3$/ do |attachment, extension, model| + stub_paperclip_s3(model, attachment, extension) + attach_file attachment, + "features/support/paperclip/#{model.gsub(" ", "_").underscore}/#{attachment}.#{extension}" +end + diff --git a/vendor/plugins/paperclip/features/basic.feature b/vendor/plugins/paperclip/features/basic.feature new file mode 100644 index 0000000..8270fb4 --- /dev/null +++ b/vendor/plugins/paperclip/features/basic.feature @@ -0,0 +1,17 @@ +Feature: Running paperclip in a Rails app + + Scenario: Basic utilization + Given I have a rails application + And I save the following as "app/models/user.rb" + """ + class User < ActiveRecord::Base + has_attached_file :avatar + end + """ + When I visit /users/new + And I fill in "user_name" with "something" + And I attach the file "test/fixtures/5k.png" to "user_avatar" + And I press "Submit" + Then I should see "Name: something" + And I should see an image with a path of "/system/avatars/1/original/5k.png" + And the file at "/system/avatars/1/original/5k.png" is the same as "test/fixtures/5k.png" diff --git a/vendor/plugins/paperclip/features/s3.feature b/vendor/plugins/paperclip/features/s3.feature new file mode 100644 index 0000000..4342cc5 --- /dev/null +++ b/vendor/plugins/paperclip/features/s3.feature @@ -0,0 +1,27 @@ +Feature: Running paperclip in a Rails app using basic S3 support + + Scenario: Basic utilization + Given I have a rails application + And I save the following as "app/models/user.rb" + """ + class User < ActiveRecord::Base + has_attached_file :avatar, + :storage => :s3, + :path => "/:attachment/:id/:style/:filename", + :s3_credentials => Rails.root.join("config/s3.yml") + end + """ + And I validate my S3 credentials + And I save the following as "config/s3.yml" + """ + bucket: <%= ENV['PAPERCLIP_TEST_BUCKET'] || 'paperclip' %> + access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %> + secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %> + """ + When I visit /users/new + And I fill in "user_name" with "something" + And I attach the file "test/fixtures/5k.png" to "user_avatar" + And I press "Submit" + Then I should see "Name: something" + And I should see an image with a path of "http://s3.amazonaws.com/paperclip/avatars/1/original/5k.png" + And the file at "http://s3.amazonaws.com/paperclip/avatars/1/original/5k.png" is the same as "test/fixtures/5k.png" diff --git a/vendor/plugins/paperclip/features/step_definitions/html_steps.rb b/vendor/plugins/paperclip/features/step_definitions/html_steps.rb new file mode 100644 index 0000000..bf94a19 --- /dev/null +++ b/vendor/plugins/paperclip/features/step_definitions/html_steps.rb @@ -0,0 +1,14 @@ +Then %r{I should see an image with a path of "([^"]*)"} do |path| + page.should have_css("img[src^='#{path}']") +end + +Then %r{^the file at "([^"]*)" is the same as "([^"]*)"$} do |web_file, path| + expected = IO.read(path) + actual = if web_file.match %r{^https?://} + Net::HTTP.get(URI.parse(web_file)) + else + visit(web_file) + page.body + end + actual.should == expected +end diff --git a/vendor/plugins/paperclip/features/step_definitions/rails_steps.rb b/vendor/plugins/paperclip/features/step_definitions/rails_steps.rb new file mode 100644 index 0000000..5be63b6 --- /dev/null +++ b/vendor/plugins/paperclip/features/step_definitions/rails_steps.rb @@ -0,0 +1,90 @@ +Given "I have a rails application" do + steps %{ + Given I generate a rails application + And this plugin is available + And I have a "users" resource with "name:string" + And I turn off class caching + Given I save the following as "app/models/user.rb" + """ + class User < ActiveRecord::Base + end + """ + And I save the following as "config/s3.yml" + """ + access_key_id: <%= ENV['AWS_ACCESS_KEY_ID'] %> + secret_access_key: <%= ENV['AWS_SECRET_ACCESS_KEY'] %> + bucket: paperclip + """ + And I save the following as "app/views/users/new.html.erb" + """ + <% form_for @user, :html => { :multipart => true } do |f| %> + <%= f.text_field :name %> + <%= f.file_field :avatar %> + <%= submit_tag "Submit" %> + <% end %> + """ + And I save the following as "app/views/users/show.html.erb" + """ +

Name: <%= @user.name %>

+

Avatar: <%= image_tag @user.avatar.url %>

+ """ + And I run "script/generate paperclip user avatar" + And the rails application is prepped and running + } +end + +Given %r{I generate a rails application} do + FileUtils.rm_rf TEMP_ROOT + FileUtils.mkdir_p TEMP_ROOT + Dir.chdir(TEMP_ROOT) do + `rails _2.3.8_ #{APP_NAME}` + end +end + +When %r{I save the following as "([^"]*)"} do |path, string| + FileUtils.mkdir_p(File.join(CUC_RAILS_ROOT, File.dirname(path))) + File.open(File.join(CUC_RAILS_ROOT, path), 'w') { |file| file.write(string) } +end + +When %r{I turn off class caching} do + Dir.chdir(CUC_RAILS_ROOT) do + file = "config/environments/test.rb" + config = IO.read(file) + config.gsub!(%r{^\s*config.cache_classes.*$}, + "config.cache_classes = false") + File.open(file, "w"){|f| f.write(config) } + end +end + +When %r{the rails application is prepped and running$} do + When "I reset the database" + When "the rails application is running" +end + +When %r{I reset the database} do + When %{I run "rake db:drop db:create db:migrate"} +end + +When %r{the rails application is running} do + Dir.chdir(CUC_RAILS_ROOT) do + require "config/environment" + require "capybara/rails" + end +end + +When %r{this plugin is available} do + $LOAD_PATH << "#{PROJECT_ROOT}/lib" + require 'paperclip' + When %{I save the following as "vendor/plugins/paperclip/rails/init.rb"}, + IO.read("#{PROJECT_ROOT}/rails/init.rb") +end + +When %r{I run "([^"]*)"} do |command| + Dir.chdir(CUC_RAILS_ROOT) do + `#{command}` + end +end + +When %r{I have a "([^"]*)" resource with "([^"]*)"} do |resource, fields| + When %{I run "script/generate scaffold #{resource} #{fields}"} +end diff --git a/vendor/plugins/paperclip/features/step_definitions/s3_steps.rb b/vendor/plugins/paperclip/features/step_definitions/s3_steps.rb new file mode 100644 index 0000000..3652db8 --- /dev/null +++ b/vendor/plugins/paperclip/features/step_definitions/s3_steps.rb @@ -0,0 +1,9 @@ +Given /I validate my S3 credentials/ do + key = ENV['AWS_ACCESS_KEY_ID'] + secret = ENV['AWS_SECRET_ACCESS_KEY'] + + key.should_not be_nil + secret.should_not be_nil + + assert_credentials(key, secret) +end diff --git a/vendor/plugins/paperclip/features/step_definitions/web_steps.rb b/vendor/plugins/paperclip/features/step_definitions/web_steps.rb new file mode 100644 index 0000000..9349a0b --- /dev/null +++ b/vendor/plugins/paperclip/features/step_definitions/web_steps.rb @@ -0,0 +1,227 @@ +# IMPORTANT: This file is generated by cucumber-rails - edit at your own peril. +# It is recommended to regenerate this file in the future when you upgrade to a +# newer version of cucumber-rails. Consider adding your own code to a new file +# instead of editing this one. Cucumber will automatically load all features/**/*.rb +# files. + + +require 'uri' +require 'cgi' +require File.expand_path(File.join(File.dirname(__FILE__), "..", "support", "paths")) + +module WithinHelpers + def with_scope(locator) + locator ? within(locator) { yield } : yield + end +end +World(WithinHelpers) + +Given /^(?:|I )am on (.+)$/ do |page_name| + visit path_to(page_name) +end + +When /^(?:|I )go to (.+)$/ do |page_name| + visit path_to(page_name) +end + +When /^(?:|I )visit (\/.+)$/ do |page_path| + visit page_path +end + +When /^(?:|I )press "([^"]*)"(?: within "([^"]*)")?$/ do |button, selector| + with_scope(selector) do + click_button(button) + end +end + +When /^(?:|I )follow "([^"]*)"(?: within "([^"]*)")?$/ do |link, selector| + with_scope(selector) do + click_link(link) + end +end + +When /^(?:|I )fill in "([^"]*)" with "([^"]*)"(?: within "([^"]*)")?$/ do |field, value, selector| + with_scope(selector) do + fill_in(field, :with => value) + end +end + +When /^(?:|I )fill in "([^"]*)" for "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector| + with_scope(selector) do + fill_in(field, :with => value) + end +end + +# Use this to fill in an entire form with data from a table. Example: +# +# When I fill in the following: +# | Account Number | 5002 | +# | Expiry date | 2009-11-01 | +# | Note | Nice guy | +# | Wants Email? | | +# +# TODO: Add support for checkbox, select og option +# based on naming conventions. +# +When /^(?:|I )fill in the following(?: within "([^"]*)")?:$/ do |selector, fields| + with_scope(selector) do + fields.rows_hash.each do |name, value| + When %{I fill in "#{name}" with "#{value}"} + end + end +end + +When /^(?:|I )select "([^"]*)" from "([^"]*)"(?: within "([^"]*)")?$/ do |value, field, selector| + with_scope(selector) do + select(value, :from => field) + end +end + +When /^(?:|I )check "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector| + with_scope(selector) do + check(field) + end +end + +When /^(?:|I )uncheck "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector| + with_scope(selector) do + uncheck(field) + end +end + +When /^(?:|I )choose "([^"]*)"(?: within "([^"]*)")?$/ do |field, selector| + with_scope(selector) do + choose(field) + end +end + +When /^(?:|I )attach the file "([^"]*)" to "([^"]*)"(?: within "([^"]*)")?$/ do |path, field, selector| + with_scope(selector) do + attach_file(field, path) + end +end + +Then /^(?:|I )should see JSON:$/ do |expected_json| + require 'json' + expected = JSON.pretty_generate(JSON.parse(expected_json)) + actual = JSON.pretty_generate(JSON.parse(response.body)) + expected.should == actual +end + +Then /^(?:|I )should see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector| + with_scope(selector) do + if page.respond_to? :should + page.should have_content(text) + else + assert page.has_content?(text) + end + end +end + +Then /^(?:|I )should see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector| + regexp = Regexp.new(regexp) + with_scope(selector) do + if page.respond_to? :should + page.should have_xpath('//*', :text => regexp) + else + assert page.has_xpath?('//*', :text => regexp) + end + end +end + +Then /^(?:|I )should not see "([^"]*)"(?: within "([^"]*)")?$/ do |text, selector| + with_scope(selector) do + if page.respond_to? :should + page.should have_no_content(text) + else + assert page.has_no_content?(text) + end + end +end + +Then /^(?:|I )should not see \/([^\/]*)\/(?: within "([^"]*)")?$/ do |regexp, selector| + regexp = Regexp.new(regexp) + with_scope(selector) do + if page.respond_to? :should + page.should have_no_xpath('//*', :text => regexp) + else + assert page.has_no_xpath?('//*', :text => regexp) + end + end +end + +Then /^the "([^"]*)" field(?: within "([^"]*)")? should contain "([^"]*)"$/ do |field, selector, value| + with_scope(selector) do + field = find_field(field) + field_value = (field.tag_name == 'textarea') ? field.text : field.value + if field_value.respond_to? :should + field_value.should =~ /#{value}/ + else + assert_match(/#{value}/, field_value) + end + end +end + +Then /^the "([^"]*)" field(?: within "([^"]*)")? should not contain "([^"]*)"$/ do |field, selector, value| + with_scope(selector) do + field = find_field(field) + field_value = (field.tag_name == 'textarea') ? field.text : field.value + if field_value.respond_to? :should_not + field_value.should_not =~ /#{value}/ + else + assert_no_match(/#{value}/, field_value) + end + end +end + +Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should be checked$/ do |label, selector| + with_scope(selector) do + field_checked = find_field(label)['checked'] + if field_checked.respond_to? :should + field_checked.should be_true + else + assert field_checked + end + end +end + +Then /^the "([^"]*)" checkbox(?: within "([^"]*)")? should not be checked$/ do |label, selector| + with_scope(selector) do + field_checked = find_field(label)['checked'] + if field_checked.respond_to? :should + field_checked.should be_false + else + assert !field_checked + end + end +end + +Then /^(?:|I )should be on (.+)$/ do |page_name| + current_path = URI.parse(current_url).path + if current_path.respond_to? :should + current_path.should == path_to(page_name) + else + assert_equal path_to(page_name), current_path + end +end + +Then /^(?:|I )should have the following query string:$/ do |expected_pairs| + query = URI.parse(current_url).query + actual_params = query ? CGI.parse(query) : {} + expected_params = {} + expected_pairs.rows_hash.each_pair{|k,v| expected_params[k] = v.split(',')} + + if actual_params.respond_to? :should + actual_params.should == expected_params + else + assert_equal expected_params, actual_params + end +end + +Then /^I save and open the page$/ do + save_and_open_page +end + +Then /^show me the page$/ do + save_and_open_page +end diff --git a/vendor/plugins/paperclip/features/support/env.rb b/vendor/plugins/paperclip/features/support/env.rb new file mode 100644 index 0000000..dca8900 --- /dev/null +++ b/vendor/plugins/paperclip/features/support/env.rb @@ -0,0 +1,3 @@ +require 'capybara/cucumber' +require 'test/unit/assertions' +World(Test::Unit::Assertions) diff --git a/vendor/plugins/paperclip/features/support/paths.rb b/vendor/plugins/paperclip/features/support/paths.rb new file mode 100644 index 0000000..e9a9b1c --- /dev/null +++ b/vendor/plugins/paperclip/features/support/paths.rb @@ -0,0 +1,35 @@ +module NavigationHelpers + # Maps a name to a path. Used by the + # + # When /^I go to (.+)$/ do |page_name| + # + # step definition in web_steps.rb + # + def path_to(page_name) + case page_name + + when /the new user page/ + '/users/new' + when /the home\s?page/ + '/' + + # Add more mappings here. + # Here is an example that pulls values out of the Regexp: + # + # when /^(.*)'s profile page$/i + # user_profile_path(User.find_by_login($1)) + + else + begin + page_name =~ /the (.*) page/ + path_components = $1.split(/\s+/) + self.send(path_components.push('path').join('_').to_sym) + rescue Object => e + raise "Can't find mapping from \"#{page_name}\" to a path.\n" + + "Now, go and add a mapping in #{__FILE__}" + end + end + end +end + +World(NavigationHelpers) diff --git a/vendor/plugins/paperclip/features/support/rails.rb b/vendor/plugins/paperclip/features/support/rails.rb new file mode 100644 index 0000000..ec1d4d5 --- /dev/null +++ b/vendor/plugins/paperclip/features/support/rails.rb @@ -0,0 +1,5 @@ +PROJECT_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..', '..')).freeze +TEMP_ROOT = File.join(PROJECT_ROOT, 'tmp').freeze +APP_NAME = 'testapp'.freeze +CUC_RAILS_ROOT = File.join(TEMP_ROOT, APP_NAME).freeze +ENV['RAILS_ENV'] = 'test' diff --git a/vendor/plugins/paperclip/features/support/s3.rb b/vendor/plugins/paperclip/features/support/s3.rb new file mode 100644 index 0000000..6c532ec --- /dev/null +++ b/vendor/plugins/paperclip/features/support/s3.rb @@ -0,0 +1,25 @@ +module AWSS3Methods + def load_s3 + begin + require 'aws/s3' + rescue LoadError => e + fail "You do not have aws-s3 installed." + end + end + + def assert_credentials(key, secret) + load_s3 + begin + AWS::S3::Base.establish_connection!( + :access_key_id => key, + :secret_access_key => secret + ) + AWS::S3::Service.buckets + rescue AWS::S3::ResponseError => e + fail "Could not connect using AWS credentials in AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. " + + "Please make sure these are set in your environment." + end + end +end + +World(AWSS3Methods) diff --git a/vendor/plugins/paperclip/generators/paperclip/USAGE b/vendor/plugins/paperclip/generators/paperclip/USAGE new file mode 100644 index 0000000..4ad7e96 --- /dev/null +++ b/vendor/plugins/paperclip/generators/paperclip/USAGE @@ -0,0 +1,5 @@ +Usage: + + script/generate paperclip Class attachment1 (attachment2 ...) + +This will create a migration that will add the proper columns to your class's table. diff --git a/vendor/plugins/paperclip/generators/paperclip/paperclip_generator.rb b/vendor/plugins/paperclip/generators/paperclip/paperclip_generator.rb new file mode 100644 index 0000000..b5d3c22 --- /dev/null +++ b/vendor/plugins/paperclip/generators/paperclip/paperclip_generator.rb @@ -0,0 +1,27 @@ +class PaperclipGenerator < Rails::Generator::NamedBase + attr_accessor :attachments, :migration_name + + def initialize(args, options = {}) + super + @class_name, @attachments = args[0], args[1..-1] + end + + def manifest + file_name = generate_file_name + @migration_name = file_name.camelize + record do |m| + m.migration_template "paperclip_migration.rb.erb", + File.join('db', 'migrate'), + :migration_file_name => file_name + end + end + + private + + def generate_file_name + names = attachments.map{|a| a.underscore } + names = names[0..-2] + ["and", names[-1]] if names.length > 1 + "add_attachments_#{names.join("_")}_to_#{@class_name.underscore}" + end + +end diff --git a/vendor/plugins/paperclip/generators/paperclip/templates/paperclip_migration.rb.erb b/vendor/plugins/paperclip/generators/paperclip/templates/paperclip_migration.rb.erb new file mode 100644 index 0000000..eebb0e5 --- /dev/null +++ b/vendor/plugins/paperclip/generators/paperclip/templates/paperclip_migration.rb.erb @@ -0,0 +1,19 @@ +class <%= migration_name %> < ActiveRecord::Migration + def self.up +<% attachments.each do |attachment| -%> + add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_name, :string + add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_content_type, :string + add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_size, :integer + add_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at, :datetime +<% end -%> + end + + def self.down +<% attachments.each do |attachment| -%> + remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_name + remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_content_type + remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_file_size + remove_column :<%= class_name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at +<% end -%> + end +end diff --git a/vendor/plugins/paperclip/init.rb b/vendor/plugins/paperclip/init.rb new file mode 100644 index 0000000..5a07dda --- /dev/null +++ b/vendor/plugins/paperclip/init.rb @@ -0,0 +1 @@ +require File.join(File.dirname(__FILE__), "lib", "paperclip") diff --git a/vendor/plugins/paperclip/lib/generators/paperclip/USAGE b/vendor/plugins/paperclip/lib/generators/paperclip/USAGE new file mode 100644 index 0000000..a19ba5e --- /dev/null +++ b/vendor/plugins/paperclip/lib/generators/paperclip/USAGE @@ -0,0 +1,8 @@ +Description: + Explain the generator + +Example: + rails generate paperclip Thing + + This will create: + what/will/it/create diff --git a/vendor/plugins/paperclip/lib/generators/paperclip/paperclip_generator.rb b/vendor/plugins/paperclip/lib/generators/paperclip/paperclip_generator.rb new file mode 100644 index 0000000..d52d51a --- /dev/null +++ b/vendor/plugins/paperclip/lib/generators/paperclip/paperclip_generator.rb @@ -0,0 +1,31 @@ +require 'rails/generators/active_record' + +class PaperclipGenerator < ActiveRecord::Generators::Base + desc "Create a migration to add paperclip-specific fields to your model." + + argument :attachment_names, :required => true, :type => :array, :desc => "The names of the attachment(s) to add.", + :banner => "attachment_one attachment_two attachment_three ..." + + def self.source_root + @source_root ||= File.expand_path('../templates', __FILE__) + end + + def generate_migration + migration_template "paperclip_migration.rb.erb", "db/migrate/#{migration_file_name}" + end + + protected + + def migration_name + "add_attachment_#{attachment_names.join("_")}_to_#{name.underscore}" + end + + def migration_file_name + "#{migration_name}.rb" + end + + def migration_class_name + migration_name.camelize + end + +end diff --git a/vendor/plugins/paperclip/lib/generators/paperclip/templates/paperclip_migration.rb.erb b/vendor/plugins/paperclip/lib/generators/paperclip/templates/paperclip_migration.rb.erb new file mode 100644 index 0000000..44589d2 --- /dev/null +++ b/vendor/plugins/paperclip/lib/generators/paperclip/templates/paperclip_migration.rb.erb @@ -0,0 +1,19 @@ +class <%= migration_class_name %> < ActiveRecord::Migration + def self.up +<% attachment_names.each do |attachment| -%> + add_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_file_name, :string + add_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_content_type, :string + add_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_file_size, :integer + add_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at, :datetime +<% end -%> + end + + def self.down +<% attachment_names.each do |attachment| -%> + remove_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_file_name + remove_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_content_type + remove_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_file_size + remove_column :<%= name.underscore.camelize.tableize %>, :<%= attachment %>_updated_at +<% end -%> + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip.rb b/vendor/plugins/paperclip/lib/paperclip.rb new file mode 100644 index 0000000..5d2fda4 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip.rb @@ -0,0 +1,370 @@ +# Paperclip allows file attachments that are stored in the filesystem. All graphical +# transformations are done using the Graphics/ImageMagick command line utilities and +# are stored in Tempfiles until the record is saved. Paperclip does not require a +# separate model for storing the attachment's information, instead adding a few simple +# columns to your table. +# +# Author:: Jon Yurek +# Copyright:: Copyright (c) 2008-2009 thoughtbot, inc. +# License:: MIT License (http://www.opensource.org/licenses/mit-license.php) +# +# Paperclip defines an attachment as any file, though it makes special considerations +# for image files. You can declare that a model has an attached file with the +# +has_attached_file+ method: +# +# class User < ActiveRecord::Base +# has_attached_file :avatar, :styles => { :thumb => "100x100" } +# end +# +# user = User.new +# user.avatar = params[:user][:avatar] +# user.avatar.url +# # => "/users/avatars/4/original_me.jpg" +# user.avatar.url(:thumb) +# # => "/users/avatars/4/thumb_me.jpg" +# +# See the +has_attached_file+ documentation for more details. + +require 'erb' +require 'digest' +require 'tempfile' +require 'paperclip/version' +require 'paperclip/upfile' +require 'paperclip/iostream' +require 'paperclip/geometry' +require 'paperclip/processor' +require 'paperclip/thumbnail' +require 'paperclip/interpolations' +require 'paperclip/style' +require 'paperclip/attachment' +require 'paperclip/storage' +require 'paperclip/callback_compatability' +require 'paperclip/command_line' +require 'paperclip/railtie' +if defined?(Rails.root) && Rails.root + Dir.glob(File.join(File.expand_path(Rails.root), "lib", "paperclip_processors", "*.rb")).each do |processor| + require processor + end +end + +# The base module that gets included in ActiveRecord::Base. See the +# documentation for Paperclip::ClassMethods for more useful information. +module Paperclip + + class << self + # Provides configurability to Paperclip. There are a number of options available, such as: + # * whiny: Will raise an error if Paperclip cannot process thumbnails of + # an uploaded image. Defaults to true. + # * log: Logs progress to the Rails log. Uses ActiveRecord's logger, so honors + # log levels, etc. Defaults to true. + # * command_path: Defines the path at which to find the command line + # programs if they are not visible to Rails the system's search path. Defaults to + # nil, which uses the first executable found in the user's search path. + # * image_magick_path: Deprecated alias of command_path. + def options + @options ||= { + :whiny => true, + :image_magick_path => nil, + :command_path => nil, + :log => true, + :log_command => true, + :swallow_stderr => true + } + end + + def configure + yield(self) if block_given? + end + + def interpolates key, &block + Paperclip::Interpolations[key] = block + end + + # The run method takes a command to execute and an array of parameters + # that get passed to it. The command is prefixed with the :command_path + # option from Paperclip.options. If you have many commands to run and + # they are in different paths, the suggested course of action is to + # symlink them so they are all in the same directory. + # + # If the command returns with a result code that is not one of the + # expected_outcodes, a PaperclipCommandLineError will be raised. Generally + # a code of 0 is expected, but a list of codes may be passed if necessary. + # These codes should be passed as a hash as the last argument, like so: + # + # Paperclip.run("echo", "something", :expected_outcodes => [0,1,2,3]) + # + # This method can log the command being run when + # Paperclip.options[:log_command] is set to true (defaults to false). This + # will only log if logging in general is set to true as well. + def run cmd, *params + if options[:image_magick_path] + Paperclip.log("[DEPRECATION] :image_magick_path is deprecated and will be removed. Use :command_path instead") + end + CommandLine.path = options[:command_path] || options[:image_magick_path] + CommandLine.new(cmd, *params).run + end + + def processor name #:nodoc: + name = name.to_s.camelize + processor = Paperclip.const_get(name) + unless processor.ancestors.include?(Paperclip::Processor) + raise PaperclipError.new("Processor #{name} was not found") + end + processor + end + + # Log a paperclip-specific line. Uses ActiveRecord::Base.logger + # by default. Set Paperclip.options[:log] to false to turn off. + def log message + logger.info("[paperclip] #{message}") if logging? + end + + def logger #:nodoc: + ActiveRecord::Base.logger + end + + def logging? #:nodoc: + options[:log] + end + end + + class PaperclipError < StandardError #:nodoc: + end + + class PaperclipCommandLineError < PaperclipError #:nodoc: + attr_accessor :output + def initialize(msg = nil, output = nil) + super(msg) + @output = output + end + end + + class StorageMethodNotFound < PaperclipError + end + + class CommandNotFoundError < PaperclipError + end + + class NotIdentifiedByImageMagickError < PaperclipError #:nodoc: + end + + class InfiniteInterpolationError < PaperclipError #:nodoc: + end + + module Glue + def self.included base #:nodoc: + base.extend ClassMethods + if base.respond_to?("set_callback") + base.send :include, Paperclip::CallbackCompatability::Rails3 + else + base.send :include, Paperclip::CallbackCompatability::Rails21 + end + end + end + + module ClassMethods + # +has_attached_file+ gives the class it is called on an attribute that maps to a file. This + # is typically a file stored somewhere on the filesystem and has been uploaded by a user. + # The attribute returns a Paperclip::Attachment object which handles the management of + # that file. The intent is to make the attachment as much like a normal attribute. The + # thumbnails will be created when the new file is assigned, but they will *not* be saved + # until +save+ is called on the record. Likewise, if the attribute is set to +nil+ is + # called on it, the attachment will *not* be deleted until +save+ is called. See the + # Paperclip::Attachment documentation for more specifics. There are a number of options + # you can set to change the behavior of a Paperclip attachment: + # * +url+: The full URL of where the attachment is publically accessible. This can just + # as easily point to a directory served directly through Apache as it can to an action + # that can control permissions. You can specify the full domain and path, but usually + # just an absolute path is sufficient. The leading slash *must* be included manually for + # absolute paths. The default value is + # "/system/:attachment/:id/:style/:filename". See + # Paperclip::Attachment#interpolate for more information on variable interpolaton. + # :url => "/:class/:attachment/:id/:style_:filename" + # :url => "http://some.other.host/stuff/:class/:id_:extension" + # * +default_url+: The URL that will be returned if there is no attachment assigned. + # This field is interpolated just as the url is. The default value is + # "/:attachment/:style/missing.png" + # has_attached_file :avatar, :default_url => "/images/default_:style_avatar.png" + # User.new.avatar_url(:small) # => "/images/default_small_avatar.png" + # * +styles+: A hash of thumbnail styles and their geometries. You can find more about + # geometry strings at the ImageMagick website + # (http://www.imagemagick.org/script/command-line-options.php#resize). Paperclip + # also adds the "#" option (e.g. "50x50#"), which will resize the image to fit maximally + # inside the dimensions and then crop the rest off (weighted at the center). The + # default value is to generate no thumbnails. + # * +default_style+: The thumbnail style that will be used by default URLs. + # Defaults to +original+. + # has_attached_file :avatar, :styles => { :normal => "100x100#" }, + # :default_style => :normal + # user.avatar.url # => "/avatars/23/normal_me.png" + # * +whiny+: Will raise an error if Paperclip cannot post_process an uploaded file due + # to a command line error. This will override the global setting for this attachment. + # Defaults to true. This option used to be called :whiny_thumbanils, but this is + # deprecated. + # * +convert_options+: When creating thumbnails, use this free-form options + # array to pass in various convert command options. Typical options are "-strip" to + # remove all Exif data from the image (save space for thumbnails and avatars) or + # "-depth 8" to specify the bit depth of the resulting conversion. See ImageMagick + # convert documentation for more options: (http://www.imagemagick.org/script/convert.php) + # Note that this option takes a hash of options, each of which correspond to the style + # of thumbnail being generated. You can also specify :all as a key, which will apply + # to all of the thumbnails being generated. If you specify options for the :original, + # it would be best if you did not specify destructive options, as the intent of keeping + # the original around is to regenerate all the thumbnails when requirements change. + # has_attached_file :avatar, :styles => { :large => "300x300", :negative => "100x100" } + # :convert_options => { + # :all => "-strip", + # :negative => "-negate" + # } + # NOTE: While not deprecated yet, it is not recommended to specify options this way. + # It is recommended that :convert_options option be included in the hash passed to each + # :styles for compatability with future versions. + # NOTE: Strings supplied to :convert_options are split on space in order to undergo + # shell quoting for safety. If your options require a space, please pre-split them + # and pass an array to :convert_options instead. + # * +storage+: Chooses the storage backend where the files will be stored. The current + # choices are :filesystem and :s3. The default is :filesystem. Make sure you read the + # documentation for Paperclip::Storage::Filesystem and Paperclip::Storage::S3 + # for backend-specific options. + def has_attached_file name, options = {} + include InstanceMethods + + write_inheritable_attribute(:attachment_definitions, {}) if attachment_definitions.nil? + attachment_definitions[name] = {:validations => []}.merge(options) + + after_save :save_attached_files + before_destroy :destroy_attached_files + + define_paperclip_callbacks :post_process, :"#{name}_post_process" + + define_method name do |*args| + a = attachment_for(name) + (args.length > 0) ? a.to_s(args.first) : a + end + + define_method "#{name}=" do |file| + attachment_for(name).assign(file) + end + + define_method "#{name}?" do + attachment_for(name).file? + end + + validates_each(name) do |record, attr, value| + attachment = record.attachment_for(name) + attachment.send(:flush_errors) + end + end + + # Places ActiveRecord-style validations on the size of the file assigned. The + # possible options are: + # * +in+: a Range of bytes (i.e. +1..1.megabyte+), + # * +less_than+: equivalent to :in => 0..options[:less_than] + # * +greater_than+: equivalent to :in => options[:greater_than]..Infinity + # * +message+: error message to display, use :min and :max as replacements + # * +if+: A lambda or name of a method on the instance. Validation will only + # be run is this lambda or method returns true. + # * +unless+: Same as +if+ but validates if lambda or method returns false. + def validates_attachment_size name, options = {} + min = options[:greater_than] || (options[:in] && options[:in].first) || 0 + max = options[:less_than] || (options[:in] && options[:in].last) || (1.0/0) + range = (min..max) + message = options[:message] || "file size must be between :min and :max bytes." + message = message.gsub(/:min/, min.to_s).gsub(/:max/, max.to_s) + + validates_inclusion_of :"#{name}_file_size", + :in => range, + :message => message, + :if => options[:if], + :unless => options[:unless], + :allow_nil => true + end + + # Adds errors if thumbnail creation fails. The same as specifying :whiny_thumbnails => true. + def validates_attachment_thumbnails name, options = {} + warn('[DEPRECATION] validates_attachment_thumbnail is deprecated. ' + + 'This validation is on by default and will be removed from future versions. ' + + 'If you wish to turn it off, supply :whiny => false in your definition.') + attachment_definitions[name][:whiny_thumbnails] = true + end + + # Places ActiveRecord-style validations on the presence of a file. + # Options: + # * +if+: A lambda or name of a method on the instance. Validation will only + # be run is this lambda or method returns true. + # * +unless+: Same as +if+ but validates if lambda or method returns false. + def validates_attachment_presence name, options = {} + message = options[:message] || "must be set." + validates_presence_of :"#{name}_file_name", + :message => message, + :if => options[:if], + :unless => options[:unless] + end + + # Places ActiveRecord-style validations on the content type of the file + # assigned. The possible options are: + # * +content_type+: Allowed content types. Can be a single content type + # or an array. Each type can be a String or a Regexp. It should be + # noted that Internet Explorer upload files with content_types that you + # may not expect. For example, JPEG images are given image/pjpeg and + # PNGs are image/x-png, so keep that in mind when determining how you + # match. Allows all by default. + # * +message+: The message to display when the uploaded file has an invalid + # content type. + # * +if+: A lambda or name of a method on the instance. Validation will only + # be run is this lambda or method returns true. + # * +unless+: Same as +if+ but validates if lambda or method returns false. + # NOTE: If you do not specify an [attachment]_content_type field on your + # model, content_type validation will work _ONLY upon assignment_ and + # re-validation after the instance has been reloaded will always succeed. + def validates_attachment_content_type name, options = {} + validation_options = options.dup + allowed_types = [validation_options[:content_type]].flatten + validates_each(:"#{name}_content_type", validation_options) do |record, attr, value| + if !allowed_types.any?{|t| t === value } && !(value.nil? || value.blank?) + if record.errors.method(:add).arity == -2 + message = options[:message] || "is not one of #{allowed_types.join(", ")}" + record.errors.add(:"#{name}_content_type", message) + else + record.errors.add(:"#{name}_content_type", :inclusion, :default => options[:message], :value => value) + end + end + end + end + + # Returns the attachment definitions defined by each call to + # has_attached_file. + def attachment_definitions + read_inheritable_attribute(:attachment_definitions) + end + end + + module InstanceMethods #:nodoc: + def attachment_for name + @_paperclip_attachments ||= {} + @_paperclip_attachments[name] ||= Attachment.new(name, self, self.class.attachment_definitions[name]) + end + + def each_attachment + self.class.attachment_definitions.each do |name, definition| + yield(name, attachment_for(name)) + end + end + + def save_attached_files + Paperclip.log("Saving attachments.") + each_attachment do |name, attachment| + attachment.send(:save) + end + end + + def destroy_attached_files + Paperclip.log("Deleting attachments.") + each_attachment do |name, attachment| + attachment.send(:queue_existing_for_delete) + attachment.send(:flush_deletes) + end + end + end + +end diff --git a/vendor/plugins/paperclip/lib/paperclip/attachment.rb b/vendor/plugins/paperclip/lib/paperclip/attachment.rb new file mode 100644 index 0000000..5ea6177 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/attachment.rb @@ -0,0 +1,340 @@ +# encoding: utf-8 +module Paperclip + # The Attachment class manages the files for a given attachment. It saves + # when the model saves, deletes when the model is destroyed, and processes + # the file upon assignment. + class Attachment + + def self.default_options + @default_options ||= { + :url => "/system/:attachment/:id/:style/:filename", + :path => ":rails_root/public:url", + :styles => {}, + :processors => [:thumbnail], + :convert_options => {}, + :default_url => "/:attachment/:style/missing.png", + :default_style => :original, + :storage => :filesystem, + :use_timestamp => true, + :whiny => Paperclip.options[:whiny] || Paperclip.options[:whiny_thumbnails] + } + end + + attr_reader :name, :instance, :default_style, :convert_options, :queued_for_write, :whiny, :options + + # Creates an Attachment object. +name+ is the name of the attachment, + # +instance+ is the ActiveRecord object instance it's attached to, and + # +options+ is the same as the hash passed to +has_attached_file+. + def initialize name, instance, options = {} + @name = name + @instance = instance + + options = self.class.default_options.merge(options) + + @url = options[:url] + @url = @url.call(self) if @url.is_a?(Proc) + @path = options[:path] + @path = @path.call(self) if @path.is_a?(Proc) + @styles = options[:styles] + @normalized_styles = nil + @default_url = options[:default_url] + @default_style = options[:default_style] + @storage = options[:storage] + @use_timestamp = options[:use_timestamp] + @whiny = options[:whiny_thumbnails] || options[:whiny] + @convert_options = options[:convert_options] + @processors = options[:processors] + @options = options + @queued_for_delete = [] + @queued_for_write = {} + @errors = {} + @dirty = false + + initialize_storage + end + + def styles + unless @normalized_styles + @normalized_styles = {} + (@styles.respond_to?(:call) ? @styles.call(self) : @styles).each do |name, args| + @normalized_styles[name] = Paperclip::Style.new(name, args.dup, self) + end + end + @normalized_styles + end + + def processors + @processors.respond_to?(:call) ? @processors.call(instance) : @processors + end + + # What gets called when you call instance.attachment = File. It clears + # errors, assigns attributes, and processes the file. It + # also queues up the previous file for deletion, to be flushed away on + # #save of its host. In addition to form uploads, you can also assign + # another Paperclip attachment: + # new_user.avatar = old_user.avatar + def assign uploaded_file + ensure_required_accessors! + + if uploaded_file.is_a?(Paperclip::Attachment) + uploaded_file = uploaded_file.to_file(:original) + close_uploaded_file = uploaded_file.respond_to?(:close) + end + + return nil unless valid_assignment?(uploaded_file) + + uploaded_file.binmode if uploaded_file.respond_to? :binmode + self.clear + + return nil if uploaded_file.nil? + + @queued_for_write[:original] = uploaded_file.to_tempfile + instance_write(:file_name, uploaded_file.original_filename.strip) + instance_write(:content_type, uploaded_file.content_type.to_s.strip) + instance_write(:file_size, uploaded_file.size.to_i) + instance_write(:fingerprint, uploaded_file.fingerprint) + instance_write(:updated_at, Time.now) + + @dirty = true + + post_process + + # Reset the file size if the original file was reprocessed. + instance_write(:file_size, @queued_for_write[:original].size.to_i) + instance_write(:fingerprint, @queued_for_write[:original].fingerprint) + ensure + uploaded_file.close if close_uploaded_file + end + + # Returns the public URL of the attachment, with a given style. Note that + # this does not necessarily need to point to a file that your web server + # can access and can point to an action in your app, if you need fine + # grained security. This is not recommended if you don't need the + # security, however, for performance reasons. Set use_timestamp to false + # if you want to stop the attachment update time appended to the url + def url(style_name = default_style, use_timestamp = @use_timestamp) + url = original_filename.nil? ? interpolate(@default_url, style_name) : interpolate(@url, style_name) + use_timestamp && updated_at ? [url, updated_at].compact.join(url.include?("?") ? "&" : "?") : url + end + + # Returns the path of the attachment as defined by the :path option. If the + # file is stored in the filesystem the path refers to the path of the file + # on disk. If the file is stored in S3, the path is the "key" part of the + # URL, and the :bucket option refers to the S3 bucket. + def path style_name = default_style + original_filename.nil? ? nil : interpolate(@path, style_name) + end + + # Alias to +url+ + def to_s style_name = nil + url(style_name) + end + + # Returns an array containing the errors on this attachment. + def errors + @errors + end + + # Returns true if there are changes that need to be saved. + def dirty? + @dirty + end + + # Saves the file, if there are no errors. If there are, it flushes them to + # the instance's errors and returns false, cancelling the save. + def save + flush_deletes + flush_writes + @dirty = false + true + end + + # Clears out the attachment. Has the same effect as previously assigning + # nil to the attachment. Does NOT save. If you wish to clear AND save, + # use #destroy. + def clear + queue_existing_for_delete + @errors = {} + end + + # Destroys the attachment. Has the same effect as previously assigning + # nil to the attachment *and saving*. This is permanent. If you wish to + # wipe out the existing attachment but not save, use #clear. + def destroy + clear + save + end + + # Returns the name of the file as originally assigned, and lives in the + # _file_name attribute of the model. + def original_filename + instance_read(:file_name) + end + + # Returns the size of the file as originally assigned, and lives in the + # _file_size attribute of the model. + def size + instance_read(:file_size) || (@queued_for_write[:original] && @queued_for_write[:original].size) + end + + # Returns the hash of the file as originally assigned, and lives in the + # _fingerprint attribute of the model. + def fingerprint + instance_read(:fingerprint) || (@queued_for_write[:original] && @queued_for_write[:original].fingerprint) + end + + # Returns the content_type of the file as originally assigned, and lives + # in the _content_type attribute of the model. + def content_type + instance_read(:content_type) + end + + # Returns the last modified time of the file as originally assigned, and + # lives in the _updated_at attribute of the model. + def updated_at + time = instance_read(:updated_at) + time && time.to_f.to_i + end + + # Paths and URLs can have a number of variables interpolated into them + # to vary the storage location based on name, id, style, class, etc. + # This method is a deprecated access into supplying and retrieving these + # interpolations. Future access should use either Paperclip.interpolates + # or extend the Paperclip::Interpolations module directly. + def self.interpolations + warn('[DEPRECATION] Paperclip::Attachment.interpolations is deprecated ' + + 'and will be removed from future versions. ' + + 'Use Paperclip.interpolates instead') + Paperclip::Interpolations + end + + # This method really shouldn't be called that often. It's expected use is + # in the paperclip:refresh rake task and that's it. It will regenerate all + # thumbnails forcefully, by reobtaining the original file and going through + # the post-process again. + def reprocess! + new_original = Tempfile.new("paperclip-reprocess") + new_original.binmode + if old_original = to_file(:original) + new_original.write( old_original.respond_to?(:get) ? old_original.get : old_original.read ) + new_original.rewind + + @queued_for_write = { :original => new_original } + post_process + + old_original.close if old_original.respond_to?(:close) + + save + else + true + end + end + + # Returns true if a file has been assigned. + def file? + !original_filename.blank? + end + + # Writes the attachment-specific attribute on the instance. For example, + # instance_write(:file_name, "me.jpg") will write "me.jpg" to the instance's + # "avatar_file_name" field (assuming the attachment is called avatar). + def instance_write(attr, value) + setter = :"#{name}_#{attr}=" + responds = instance.respond_to?(setter) + self.instance_variable_set("@_#{setter.to_s.chop}", value) + instance.send(setter, value) if responds || attr.to_s == "file_name" + end + + # Reads the attachment-specific attribute on the instance. See instance_write + # for more details. + def instance_read(attr) + getter = :"#{name}_#{attr}" + responds = instance.respond_to?(getter) + cached = self.instance_variable_get("@_#{getter}") + return cached if cached + instance.send(getter) if responds || attr.to_s == "file_name" + end + + private + + def ensure_required_accessors! #:nodoc: + %w(file_name).each do |field| + unless @instance.respond_to?("#{name}_#{field}") && @instance.respond_to?("#{name}_#{field}=") + raise PaperclipError.new("#{@instance.class} model missing required attr_accessor for '#{name}_#{field}'") + end + end + end + + def log message #:nodoc: + Paperclip.log(message) + end + + def valid_assignment? file #:nodoc: + file.nil? || (file.respond_to?(:original_filename) && file.respond_to?(:content_type)) + end + + def initialize_storage #:nodoc: + storage_class_name = @storage.to_s.capitalize + begin + @storage_module = Paperclip::Storage.const_get(storage_class_name) + rescue NameError + raise StorageMethodNotFound, "Cannot load storage module '#{storage_class_name}'" + end + self.extend(@storage_module) + end + + def extra_options_for(style) #:nodoc: + all_options = convert_options[:all] + all_options = all_options.call(instance) if all_options.respond_to?(:call) + style_options = convert_options[style] + style_options = style_options.call(instance) if style_options.respond_to?(:call) + + [ style_options, all_options ].compact.join(" ") + end + + def post_process #:nodoc: + return if @queued_for_write[:original].nil? + instance.run_paperclip_callbacks(:post_process) do + instance.run_paperclip_callbacks(:"#{name}_post_process") do + post_process_styles + end + end + end + + def post_process_styles #:nodoc: + styles.each do |name, style| + begin + raise RuntimeError.new("Style #{name} has no processors defined.") if style.processors.blank? + @queued_for_write[name] = style.processors.inject(@queued_for_write[:original]) do |file, processor| + Paperclip.processor(processor).make(file, style.processor_options, self) + end + rescue PaperclipError => e + log("An error was received while processing: #{e.inspect}") + (@errors[:processing] ||= []) << e.message if @whiny + end + end + end + + def interpolate pattern, style_name = default_style #:nodoc: + Paperclip::Interpolations.interpolate(pattern, self, style_name) + end + + def queue_existing_for_delete #:nodoc: + return unless file? + @queued_for_delete += [:original, *styles.keys].uniq.map do |style| + path(style) if exists?(style) + end.compact + instance_write(:file_name, nil) + instance_write(:content_type, nil) + instance_write(:file_size, nil) + instance_write(:updated_at, nil) + end + + def flush_errors #:nodoc: + @errors.each do |error, message| + [message].flatten.each {|m| instance.errors.add(name, m) } + end + end + + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/callback_compatability.rb b/vendor/plugins/paperclip/lib/paperclip/callback_compatability.rb new file mode 100644 index 0000000..9a34882 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/callback_compatability.rb @@ -0,0 +1,61 @@ +module Paperclip + module CallbackCompatability + module Rails21 + def self.included(base) + base.extend(Defining) + base.send(:include, Running) + end + + module Defining + def define_paperclip_callbacks(*args) + args.each do |callback| + define_callbacks("before_#{callback}") + define_callbacks("after_#{callback}") + end + end + end + + module Running + def run_paperclip_callbacks(callback, opts = nil, &blk) + # The overall structure of this isn't ideal since after callbacks run even if + # befores return false. But this is how rails 3's callbacks work, unfortunately. + if run_callbacks(:"before_#{callback}"){ |result, object| result == false } != false + blk.call + end + run_callbacks(:"after_#{callback}"){ |result, object| result == false } + end + end + end + + module Rails3 + def self.included(base) + base.extend(Defining) + base.send(:include, Running) + end + + module Defining + def define_paperclip_callbacks(*callbacks) + define_callbacks *[callbacks, {:terminator => "result == false"}].flatten + callbacks.each do |callback| + eval <<-end_callbacks + def before_#{callback}(*args, &blk) + set_callback(:#{callback}, :before, *args, &blk) + end + def after_#{callback}(*args, &blk) + set_callback(:#{callback}, :after, *args, &blk) + end + end_callbacks + end + end + end + + module Running + def run_paperclip_callbacks(callback, opts = nil, &block) + run_callbacks(callback, opts, &block) + end + end + + end + + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/command_line.rb b/vendor/plugins/paperclip/lib/paperclip/command_line.rb new file mode 100644 index 0000000..67f2253 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/command_line.rb @@ -0,0 +1,80 @@ +module Paperclip + class CommandLine + class << self + attr_accessor :path + end + + def initialize(binary, params = "", options = {}) + @binary = binary.dup + @params = params.dup + @options = options.dup + @swallow_stderr = @options.has_key?(:swallow_stderr) ? @options.delete(:swallow_stderr) : Paperclip.options[:swallow_stderr] + @expected_outcodes = @options.delete(:expected_outcodes) + @expected_outcodes ||= [0] + end + + def command + cmd = [] + cmd << full_path(@binary) + cmd << interpolate(@params, @options) + cmd << bit_bucket if @swallow_stderr + cmd.join(" ") + end + + def run + Paperclip.log(command) + begin + output = self.class.send(:'`', command) + rescue Errno::ENOENT + raise Paperclip::CommandNotFoundError + end + if $?.exitstatus == 127 + raise Paperclip::CommandNotFoundError + end + unless @expected_outcodes.include?($?.exitstatus) + raise Paperclip::PaperclipCommandLineError, "Command '#{command}' returned #{$?.exitstatus}. Expected #{@expected_outcodes.join(", ")}" + end + output + end + + private + + def full_path(binary) + [self.class.path, binary].compact.join("/") + end + + def interpolate(pattern, vars) + # interpolates :variables and :{variables} + pattern.gsub(%r#:(?:\w+|\{\w+\})#) do |match| + key = match[1..-1] + key = key[1..-2] if key[0,1] == '{' + if invalid_variables.include?(key) + raise PaperclipCommandLineError, + "Interpolation of #{key} isn't allowed." + end + shell_quote(vars[key.to_sym]) + end + end + + def invalid_variables + %w(expected_outcodes swallow_stderr) + end + + def shell_quote(string) + return "" if string.nil? or string.blank? + if self.class.unix? + string.split("'").map{|m| "'#{m}'" }.join("\\'") + else + %{"#{string}"} + end + end + + def bit_bucket + self.class.unix? ? "2>/dev/null" : "2>NUL" + end + + def self.unix? + File.exist?("/dev/null") + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/geometry.rb b/vendor/plugins/paperclip/lib/paperclip/geometry.rb new file mode 100644 index 0000000..55cecde --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/geometry.rb @@ -0,0 +1,115 @@ +module Paperclip + + # Defines the geometry of an image. + class Geometry + attr_accessor :height, :width, :modifier + + # Gives a Geometry representing the given height and width + def initialize width = nil, height = nil, modifier = nil + @height = height.to_f + @width = width.to_f + @modifier = modifier + end + + # Uses ImageMagick to determing the dimensions of a file, passed in as either a + # File or path. + def self.from_file file + file = file.path if file.respond_to? "path" + geometry = begin + Paperclip.run("identify", "-format %wx%h :file", :file => "#{file}[0]") + rescue PaperclipCommandLineError + "" + end + parse(geometry) || + raise(NotIdentifiedByImageMagickError.new("#{file} is not recognized by the 'identify' command.")) + end + + # Parses a "WxH" formatted string, where W is the width and H is the height. + def self.parse string + if match = (string && string.match(/\b(\d*)x?(\d*)\b([\>\<\#\@\%^!])?/i)) + Geometry.new(*match[1,3]) + end + end + + # True if the dimensions represent a square + def square? + height == width + end + + # True if the dimensions represent a horizontal rectangle + def horizontal? + height < width + end + + # True if the dimensions represent a vertical rectangle + def vertical? + height > width + end + + # The aspect ratio of the dimensions. + def aspect + width / height + end + + # Returns the larger of the two dimensions + def larger + [height, width].max + end + + # Returns the smaller of the two dimensions + def smaller + [height, width].min + end + + # Returns the width and height in a format suitable to be passed to Geometry.parse + def to_s + s = "" + s << width.to_i.to_s if width > 0 + s << "x#{height.to_i}" if height > 0 + s << modifier.to_s + s + end + + # Same as to_s + def inspect + to_s + end + + # Returns the scaling and cropping geometries (in string-based ImageMagick format) + # neccessary to transform this Geometry into the Geometry given. If crop is true, + # then it is assumed the destination Geometry will be the exact final resolution. + # In this case, the source Geometry is scaled so that an image containing the + # destination Geometry would be completely filled by the source image, and any + # overhanging image would be cropped. Useful for square thumbnail images. The cropping + # is weighted at the center of the Geometry. + def transformation_to dst, crop = false + if crop + ratio = Geometry.new( dst.width / self.width, dst.height / self.height ) + scale_geometry, scale = scaling(dst, ratio) + crop_geometry = cropping(dst, ratio, scale) + else + scale_geometry = dst.to_s + end + + [ scale_geometry, crop_geometry ] + end + + private + + def scaling dst, ratio + if ratio.horizontal? || ratio.square? + [ "%dx" % dst.width, ratio.width ] + else + [ "x%d" % dst.height, ratio.height ] + end + end + + def cropping dst, ratio, scale + if ratio.horizontal? || ratio.square? + "%dx%d+%d+%d" % [ dst.width, dst.height, 0, (self.height * scale - dst.height) / 2 ] + else + "%dx%d+%d+%d" % [ dst.width, dst.height, (self.width * scale - dst.width) / 2, 0 ] + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/interpolations.rb b/vendor/plugins/paperclip/lib/paperclip/interpolations.rb new file mode 100644 index 0000000..ad52914 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/interpolations.rb @@ -0,0 +1,113 @@ +module Paperclip + # This module contains all the methods that are available for interpolation + # in paths and urls. To add your own (or override an existing one), you + # can either open this module and define it, or call the + # Paperclip.interpolates method. + module Interpolations + extend self + + # Hash assignment of interpolations. Included only for compatability, + # and is not intended for normal use. + def self.[]= name, block + define_method(name, &block) + end + + # Hash access of interpolations. Included only for compatability, + # and is not intended for normal use. + def self.[] name + method(name) + end + + # Returns a sorted list of all interpolations. + def self.all + self.instance_methods(false).sort + end + + # Perform the actual interpolation. Takes the pattern to interpolate + # and the arguments to pass, which are the attachment and style name. + def self.interpolate pattern, *args + all.reverse.inject( pattern.dup ) do |result, tag| + result.gsub(/:#{tag}/) do |match| + send( tag, *args ) + end + end + end + + # Returns the filename, the same way as ":basename.:extension" would. + def filename attachment, style_name + "#{basename(attachment, style_name)}.#{extension(attachment, style_name)}" + end + + # Returns the interpolated URL. Will raise an error if the url itself + # contains ":url" to prevent infinite recursion. This interpolation + # is used in the default :path to ease default specifications. + def url attachment, style_name + raise InfiniteInterpolationError if caller.any?{|b| b.index("#{__FILE__}:#{__LINE__ + 1}") } + attachment.url(style_name, false) + end + + # Returns the timestamp as defined by the _updated_at field + def timestamp attachment, style_name + attachment.instance_read(:updated_at).to_s + end + + # Returns the Rails.root constant. + def rails_root attachment, style_name + Rails.root + end + + # Returns the Rails.env constant. + def rails_env attachment, style_name + Rails.env + end + + # Returns the underscored, pluralized version of the class name. + # e.g. "users" for the User class. + # NOTE: The arguments need to be optional, because some tools fetch + # all class names. Calling #class will return the expected class. + def class attachment = nil, style_name = nil + return super() if attachment.nil? && style_name.nil? + attachment.instance.class.to_s.underscore.pluralize + end + + # Returns the basename of the file. e.g. "file" for "file.jpg" + def basename attachment, style_name + attachment.original_filename.gsub(/#{File.extname(attachment.original_filename)}$/, "") + end + + # Returns the extension of the file. e.g. "jpg" for "file.jpg" + # If the style has a format defined, it will return the format instead + # of the actual extension. + def extension attachment, style_name + ((style = attachment.styles[style_name]) && style[:format]) || + File.extname(attachment.original_filename).gsub(/^\.+/, "") + end + + # Returns the id of the instance. + def id attachment, style_name + attachment.instance.id + end + + # Returns the fingerprint of the instance. + def fingerprint attachment, style_name + attachment.fingerprint + end + + # Returns the id of the instance in a split path form. e.g. returns + # 000/001/234 for an id of 1234. + def id_partition attachment, style_name + ("%09d" % attachment.instance.id).scan(/\d{3}/).join("/") + end + + # Returns the pluralized form of the attachment name. e.g. + # "avatars" for an attachment of :avatar + def attachment attachment, style_name + attachment.name.to_s.downcase.pluralize + end + + # Returns the style, or the default style if nil is supplied. + def style attachment, style_name + style_name || attachment.default_style + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/iostream.rb b/vendor/plugins/paperclip/lib/paperclip/iostream.rb new file mode 100644 index 0000000..54a6fad --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/iostream.rb @@ -0,0 +1,59 @@ +# Provides method that can be included on File-type objects (IO, StringIO, Tempfile, etc) to allow stream copying +# and Tempfile conversion. +module IOStream + + # Returns a Tempfile containing the contents of the readable object. + def to_tempfile + name = respond_to?(:original_filename) ? original_filename : (respond_to?(:path) ? path : "stream") + tempfile = Paperclip::Tempfile.new(["stream", File.extname(name)]) + tempfile.binmode + self.stream_to(tempfile) + end + + # Copies one read-able object from one place to another in blocks, obviating the need to load + # the whole thing into memory. Defaults to 8k blocks. If this module is included in both + # StringIO and Tempfile, then either can have its data copied anywhere else without typing + # worries or memory overhead worries. Returns a File if a String is passed in as the destination + # and returns the IO or Tempfile as passed in if one is sent as the destination. + def stream_to path_or_file, in_blocks_of = 8192 + dstio = case path_or_file + when String then File.new(path_or_file, "wb+") + when IO then path_or_file + when Tempfile then path_or_file + end + buffer = "" + self.rewind + while self.read(in_blocks_of, buffer) do + dstio.write(buffer) + end + dstio.rewind + dstio + end +end + +class IO #:nodoc: + include IOStream +end + +%w( Tempfile StringIO ).each do |klass| + if Object.const_defined? klass + Object.const_get(klass).class_eval do + include IOStream + end + end +end + +# Corrects a bug in Windows when asking for Tempfile size. +if defined? Tempfile + class Tempfile + def size + if @tmpfile + @tmpfile.fsync + @tmpfile.flush + @tmpfile.stat.size + else + 0 + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/matchers.rb b/vendor/plugins/paperclip/lib/paperclip/matchers.rb new file mode 100644 index 0000000..bac4221 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/matchers.rb @@ -0,0 +1,33 @@ +require 'paperclip/matchers/have_attached_file_matcher' +require 'paperclip/matchers/validate_attachment_presence_matcher' +require 'paperclip/matchers/validate_attachment_content_type_matcher' +require 'paperclip/matchers/validate_attachment_size_matcher' + +module Paperclip + module Shoulda + # Provides rspec-compatible matchers for testing Paperclip attachments. + # + # In spec_helper.rb, you'll need to require the matchers: + # + # require "paperclip/matchers" + # + # And include the module: + # + # Spec::Runner.configure do |config| + # config.include Paperclip::Shoulda::Matchers + # end + # + # Example: + # describe User do + # it { should have_attached_file(:avatar) } + # it { should validate_attachment_presence(:avatar) } + # it { should validate_attachment_content_type(:avatar). + # allowing('image/png', 'image/gif'). + # rejecting('text/plain', 'text/xml') } + # it { should validate_attachment_size(:avatar). + # less_than(2.megabytes) } + # end + module Matchers + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/matchers/have_attached_file_matcher.rb b/vendor/plugins/paperclip/lib/paperclip/matchers/have_attached_file_matcher.rb new file mode 100644 index 0000000..d3c1957 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/matchers/have_attached_file_matcher.rb @@ -0,0 +1,57 @@ +module Paperclip + module Shoulda + module Matchers + # Ensures that the given instance or class has an attachment with the + # given name. + # + # Example: + # describe User do + # it { should have_attached_file(:avatar) } + # end + def have_attached_file name + HaveAttachedFileMatcher.new(name) + end + + class HaveAttachedFileMatcher + def initialize attachment_name + @attachment_name = attachment_name + end + + def matches? subject + @subject = subject + @subject = @subject.class unless Class === @subject + responds? && has_column? && included? + end + + def failure_message + "Should have an attachment named #{@attachment_name}" + end + + def negative_failure_message + "Should not have an attachment named #{@attachment_name}" + end + + def description + "have an attachment named #{@attachment_name}" + end + + protected + + def responds? + methods = @subject.instance_methods.map(&:to_s) + methods.include?("#{@attachment_name}") && + methods.include?("#{@attachment_name}=") && + methods.include?("#{@attachment_name}?") + end + + def has_column? + @subject.column_names.include?("#{@attachment_name}_file_name") + end + + def included? + @subject.ancestors.include?(Paperclip::InstanceMethods) + end + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb new file mode 100644 index 0000000..bd0d2b6 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_content_type_matcher.rb @@ -0,0 +1,75 @@ +module Paperclip + module Shoulda + module Matchers + # Ensures that the given instance or class validates the content type of + # the given attachment as specified. + # + # Example: + # describe User do + # it { should validate_attachment_content_type(:icon). + # allowing('image/png', 'image/gif'). + # rejecting('text/plain', 'text/xml') } + # end + def validate_attachment_content_type name + ValidateAttachmentContentTypeMatcher.new(name) + end + + class ValidateAttachmentContentTypeMatcher + def initialize attachment_name + @attachment_name = attachment_name + end + + def allowing *types + @allowed_types = types.flatten + self + end + + def rejecting *types + @rejected_types = types.flatten + self + end + + def matches? subject + @subject = subject + @subject = @subject.class unless Class === @subject + @allowed_types && @rejected_types && + allowed_types_allowed? && rejected_types_rejected? + end + + def failure_message + "Content types #{@allowed_types.join(", ")} should be accepted" + + " and #{@rejected_types.join(", ")} rejected by #{@attachment_name}" + end + + def negative_failure_message + "Content types #{@allowed_types.join(", ")} should be rejected" + + " and #{@rejected_types.join(", ")} accepted by #{@attachment_name}" + end + + def description + "validate the content types allowed on attachment #{@attachment_name}" + end + + protected + + def allow_types?(types) + types.all? do |type| + file = StringIO.new(".") + file.content_type = type + (subject = @subject.new).attachment_for(@attachment_name).assign(file) + subject.valid? + subject.errors[:"#{@attachment_name}_content_type"].blank? + end + end + + def allowed_types_allowed? + allow_types?(@allowed_types) + end + + def rejected_types_rejected? + not allow_types?(@rejected_types) + end + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_presence_matcher.rb b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_presence_matcher.rb new file mode 100644 index 0000000..37c4db0 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_presence_matcher.rb @@ -0,0 +1,54 @@ +module Paperclip + module Shoulda + module Matchers + # Ensures that the given instance or class validates the presence of the + # given attachment. + # + # describe User do + # it { should validate_attachment_presence(:avatar) } + # end + def validate_attachment_presence name + ValidateAttachmentPresenceMatcher.new(name) + end + + class ValidateAttachmentPresenceMatcher + def initialize attachment_name + @attachment_name = attachment_name + end + + def matches? subject + @subject = subject + @subject = @subject.class unless Class === @subject + error_when_not_valid? && no_error_when_valid? + end + + def failure_message + "Attachment #{@attachment_name} should be required" + end + + def negative_failure_message + "Attachment #{@attachment_name} should not be required" + end + + def description + "require presence of attachment #{@attachment_name}" + end + + protected + + def error_when_not_valid? + (subject = @subject.new).send(@attachment_name).assign(nil) + subject.valid? + not subject.errors[:"#{@attachment_name}_file_name"].blank? + end + + def no_error_when_valid? + @file = StringIO.new(".") + (subject = @subject.new).send(@attachment_name).assign(@file) + subject.valid? + subject.errors[:"#{@attachment_name}_file_name"].blank? + end + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_size_matcher.rb b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_size_matcher.rb new file mode 100644 index 0000000..62bd67b --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/matchers/validate_attachment_size_matcher.rb @@ -0,0 +1,95 @@ +module Paperclip + module Shoulda + module Matchers + # Ensures that the given instance or class validates the size of the + # given attachment as specified. + # + # Examples: + # it { should validate_attachment_size(:avatar). + # less_than(2.megabytes) } + # it { should validate_attachment_size(:icon). + # greater_than(1024) } + # it { should validate_attachment_size(:icon). + # in(0..100) } + def validate_attachment_size name + ValidateAttachmentSizeMatcher.new(name) + end + + class ValidateAttachmentSizeMatcher + def initialize attachment_name + @attachment_name = attachment_name + @low, @high = 0, (1.0/0) + end + + def less_than size + @high = size + self + end + + def greater_than size + @low = size + self + end + + def in range + @low, @high = range.first, range.last + self + end + + def matches? subject + @subject = subject + @subject = @subject.class unless Class === @subject + lower_than_low? && higher_than_low? && lower_than_high? && higher_than_high? + end + + def failure_message + "Attachment #{@attachment_name} must be between #{@low} and #{@high} bytes" + end + + def negative_failure_message + "Attachment #{@attachment_name} cannot be between #{@low} and #{@high} bytes" + end + + def description + "validate the size of attachment #{@attachment_name}" + end + + protected + + def override_method object, method, &replacement + (class << object; self; end).class_eval do + define_method(method, &replacement) + end + end + + def passes_validation_with_size(new_size) + file = StringIO.new(".") + override_method(file, :size){ new_size } + override_method(file, :to_tempfile){ file } + + (subject = @subject.new).send(@attachment_name).assign(file) + subject.valid? + subject.errors[:"#{@attachment_name}_file_size"].blank? + end + + def lower_than_low? + not passes_validation_with_size(@low - 1) + end + + def higher_than_low? + passes_validation_with_size(@low + 1) + end + + def lower_than_high? + return true if @high == (1.0/0) + passes_validation_with_size(@high - 1) + end + + def higher_than_high? + return true if @high == (1.0/0) + not passes_validation_with_size(@high + 1) + end + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/processor.rb b/vendor/plugins/paperclip/lib/paperclip/processor.rb new file mode 100644 index 0000000..16d3912 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/processor.rb @@ -0,0 +1,58 @@ +module Paperclip + # Paperclip processors allow you to modify attached files when they are + # attached in any way you are able. Paperclip itself uses command-line + # programs for its included Thumbnail processor, but custom processors + # are not required to follow suit. + # + # Processors are required to be defined inside the Paperclip module and + # are also required to be a subclass of Paperclip::Processor. There is + # only one method you *must* implement to properly be a subclass: + # #make, but #initialize may also be of use. Both methods accept 3 + # arguments: the file that will be operated on (which is an instance of + # File), a hash of options that were defined in has_attached_file's + # style hash, and the Paperclip::Attachment itself. + # + # All #make needs to return is an instance of File (Tempfile is + # acceptable) which contains the results of the processing. + # + # See Paperclip.run for more information about using command-line + # utilities from within Processors. + class Processor + attr_accessor :file, :options, :attachment + + def initialize file, options = {}, attachment = nil + @file = file + @options = options + @attachment = attachment + end + + def make + end + + def self.make file, options = {}, attachment = nil + new(file, options, attachment).make + end + end + + # Due to how ImageMagick handles its image format conversion and how Tempfile + # handles its naming scheme, it is necessary to override how Tempfile makes + # its names so as to allow for file extensions. Idea taken from the comments + # on this blog post: + # http://marsorange.com/archives/of-mogrify-ruby-tempfile-dynamic-class-definitions + class Tempfile < ::Tempfile + # This is Ruby 1.8.7's implementation. + if RUBY_VERSION <= "1.8.6" + def make_tmpname(basename, n) + case basename + when Array + prefix, suffix = *basename + else + prefix, suffix = basename, '' + end + + t = Time.now.strftime("%y%m%d") + path = "#{prefix}#{t}-#{$$}-#{rand(0x100000000).to_s(36)}-#{n}#{suffix}" + end + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/railtie.rb b/vendor/plugins/paperclip/lib/paperclip/railtie.rb new file mode 100644 index 0000000..48b2e7a --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/railtie.rb @@ -0,0 +1,24 @@ +require 'paperclip' + +module Paperclip + if defined? Rails::Railtie + require 'rails' + class Railtie < Rails::Railtie + initializer 'paperclip.insert_into_active_record' do + ActiveSupport.on_load :active_record do + Paperclip::Railtie.insert + end + end + rake_tasks do + load "tasks/paperclip.rake" + end + end + end + + class Railtie + def self.insert + ActiveRecord::Base.send(:include, Paperclip::Glue) + File.send(:include, Paperclip::Upfile) + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/storage.rb b/vendor/plugins/paperclip/lib/paperclip/storage.rb new file mode 100644 index 0000000..a716bbb --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/storage.rb @@ -0,0 +1,2 @@ +require "paperclip/storage/filesystem" +require "paperclip/storage/s3" diff --git a/vendor/plugins/paperclip/lib/paperclip/storage/filesystem.rb b/vendor/plugins/paperclip/lib/paperclip/storage/filesystem.rb new file mode 100644 index 0000000..41b6a39 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/storage/filesystem.rb @@ -0,0 +1,73 @@ +module Paperclip + module Storage + # The default place to store attachments is in the filesystem. Files on the local + # filesystem can be very easily served by Apache without requiring a hit to your app. + # They also can be processed more easily after they've been saved, as they're just + # normal files. There is one Filesystem-specific option for has_attached_file. + # * +path+: The location of the repository of attachments on disk. This can (and, in + # almost all cases, should) be coordinated with the value of the +url+ option to + # allow files to be saved into a place where Apache can serve them without + # hitting your app. Defaults to + # ":rails_root/public/:attachment/:id/:style/:basename.:extension" + # By default this places the files in the app's public directory which can be served + # directly. If you are using capistrano for deployment, a good idea would be to + # make a symlink to the capistrano-created system directory from inside your app's + # public directory. + # See Paperclip::Attachment#interpolate for more information on variable interpolaton. + # :path => "/var/app/attachments/:class/:id/:style/:basename.:extension" + module Filesystem + def self.extended base + end + + def exists?(style_name = default_style) + if original_filename + File.exist?(path(style_name)) + else + false + end + end + + # Returns representation of the data of the file assigned to the given + # style, in the format most representative of the current storage. + def to_file style_name = default_style + @queued_for_write[style_name] || (File.new(path(style_name), 'rb') if exists?(style_name)) + end + + def flush_writes #:nodoc: + @queued_for_write.each do |style_name, file| + file.close + FileUtils.mkdir_p(File.dirname(path(style_name))) + log("saving #{path(style_name)}") + FileUtils.mv(file.path, path(style_name)) + FileUtils.chmod(0644, path(style_name)) + end + @queued_for_write = {} + end + + def flush_deletes #:nodoc: + @queued_for_delete.each do |path| + begin + log("deleting #{path}") + FileUtils.rm(path) if File.exist?(path) + rescue Errno::ENOENT => e + # ignore file-not-found, let everything else pass + end + begin + while(true) + path = File.dirname(path) + FileUtils.rmdir(path) + break if File.exists?(path) # Ruby 1.9.2 does not raise if the removal failed. + end + rescue Errno::EEXIST, Errno::ENOTEMPTY, Errno::ENOENT, Errno::EINVAL, Errno::ENOTDIR + # Stop trying to remove parent directories + rescue SystemCallError => e + log("There was an unexpected error while deleting directories: #{e.class}") + # Ignore it + end + end + @queued_for_delete = [] + end + end + + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/storage/s3.rb b/vendor/plugins/paperclip/lib/paperclip/storage/s3.rb new file mode 100644 index 0000000..118f445 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/storage/s3.rb @@ -0,0 +1,191 @@ +module Paperclip + module Storage + # Amazon's S3 file hosting service is a scalable, easy place to store files for + # distribution. You can find out more about it at http://aws.amazon.com/s3 + # There are a few S3-specific options for has_attached_file: + # * +s3_credentials+: Takes a path, a File, or a Hash. The path (or File) must point + # to a YAML file containing the +access_key_id+ and +secret_access_key+ that Amazon + # gives you. You can 'environment-space' this just like you do to your + # database.yml file, so different environments can use different accounts: + # development: + # access_key_id: 123... + # secret_access_key: 123... + # test: + # access_key_id: abc... + # secret_access_key: abc... + # production: + # access_key_id: 456... + # secret_access_key: 456... + # This is not required, however, and the file may simply look like this: + # access_key_id: 456... + # secret_access_key: 456... + # In which case, those access keys will be used in all environments. You can also + # put your bucket name in this file, instead of adding it to the code directly. + # This is useful when you want the same account but a different bucket for + # development versus production. + # * +s3_permissions+: This is a String that should be one of the "canned" access + # policies that S3 provides (more information can be found here: + # http://docs.amazonwebservices.com/AmazonS3/2006-03-01/RESTAccessPolicy.html#RESTCannedAccessPolicies) + # The default for Paperclip is :public_read. + # * +s3_protocol+: The protocol for the URLs generated to your S3 assets. Can be either + # 'http' or 'https'. Defaults to 'http' when your :s3_permissions are :public_read (the + # default), and 'https' when your :s3_permissions are anything else. + # * +s3_headers+: A hash of headers such as {'Expires' => 1.year.from_now.httpdate} + # * +bucket+: This is the name of the S3 bucket that will store your files. Remember + # that the bucket must be unique across all of Amazon S3. If the bucket does not exist + # Paperclip will attempt to create it. The bucket name will not be interpolated. + # You can define the bucket as a Proc if you want to determine it's name at runtime. + # Paperclip will call that Proc with attachment as the only argument. + # * +s3_host_alias+: The fully-qualified domain name (FQDN) that is the alias to the + # S3 domain of your bucket. Used with the :s3_alias_url url interpolation. See the + # link in the +url+ entry for more information about S3 domains and buckets. + # * +url+: There are three options for the S3 url. You can choose to have the bucket's name + # placed domain-style (bucket.s3.amazonaws.com) or path-style (s3.amazonaws.com/bucket). + # Lastly, you can specify a CNAME (which requires the CNAME to be specified as + # :s3_alias_url. You can read more about CNAMEs and S3 at + # http://docs.amazonwebservices.com/AmazonS3/latest/index.html?VirtualHosting.html + # Normally, this won't matter in the slightest and you can leave the default (which is + # path-style, or :s3_path_url). But in some cases paths don't work and you need to use + # the domain-style (:s3_domain_url). Anything else here will be treated like path-style. + # NOTE: If you use a CNAME for use with CloudFront, you can NOT specify https as your + # :s3_protocol; This is *not supported* by S3/CloudFront. Finally, when using the host + # alias, the :bucket parameter is ignored, as the hostname is used as the bucket name + # by S3. + # * +path+: This is the key under the bucket in which the file will be stored. The + # URL will be constructed from the bucket and the path. This is what you will want + # to interpolate. Keys should be unique, like filenames, and despite the fact that + # S3 (strictly speaking) does not support directories, you can still use a / to + # separate parts of your file name. + module S3 + def self.extended base + begin + require 'aws/s3' + rescue LoadError => e + e.message << " (You may need to install the aws-s3 gem)" + raise e + end + + base.instance_eval do + @s3_credentials = parse_credentials(@options[:s3_credentials]) + @bucket = @options[:bucket] || @s3_credentials[:bucket] + @bucket = @bucket.call(self) if @bucket.is_a?(Proc) + @s3_options = @options[:s3_options] || {} + @s3_permissions = @options[:s3_permissions] || :public_read + @s3_protocol = @options[:s3_protocol] || (@s3_permissions == :public_read ? 'http' : 'https') + @s3_headers = @options[:s3_headers] || {} + @s3_host_alias = @options[:s3_host_alias] + unless @url.to_s.match(/^:s3.*url$/) + @path = @path.gsub(/:url/, @url) + @url = ":s3_path_url" + end + AWS::S3::Base.establish_connection!( @s3_options.merge( + :access_key_id => @s3_credentials[:access_key_id], + :secret_access_key => @s3_credentials[:secret_access_key] + )) + end + Paperclip.interpolates(:s3_alias_url) do |attachment, style| + "#{attachment.s3_protocol}://#{attachment.s3_host_alias}/#{attachment.path(style).gsub(%r{^/}, "")}" + end + Paperclip.interpolates(:s3_path_url) do |attachment, style| + "#{attachment.s3_protocol}://s3.amazonaws.com/#{attachment.bucket_name}/#{attachment.path(style).gsub(%r{^/}, "")}" + end + Paperclip.interpolates(:s3_domain_url) do |attachment, style| + "#{attachment.s3_protocol}://#{attachment.bucket_name}.s3.amazonaws.com/#{attachment.path(style).gsub(%r{^/}, "")}" + end + end + + def expiring_url(time = 3600) + AWS::S3::S3Object.url_for(path, bucket_name, :expires_in => time ) + end + + def bucket_name + @bucket + end + + def s3_host_alias + @s3_host_alias + end + + def parse_credentials creds + creds = find_credentials(creds).stringify_keys + (creds[Rails.env] || creds).symbolize_keys + end + + def exists?(style = default_style) + if original_filename + AWS::S3::S3Object.exists?(path(style), bucket_name) + else + false + end + end + + def s3_protocol + @s3_protocol + end + + # Returns representation of the data of the file assigned to the given + # style, in the format most representative of the current storage. + def to_file style = default_style + return @queued_for_write[style] if @queued_for_write[style] + filename = path(style).split(".") + extname = File.extname(filename) + basename = File.basename(filename, extname) + file = Tempfile.new(basename, extname) + file.write(AWS::S3::S3Object.value(path(style), bucket_name)) + file.rewind + return file + end + + def create_bucket + AWS::S3::Bucket.create(bucket_name) + end + + def flush_writes #:nodoc: + @queued_for_write.each do |style, file| + begin + log("saving #{path(style)}") + AWS::S3::S3Object.store(path(style), + file, + bucket_name, + {:content_type => instance_read(:content_type), + :access => @s3_permissions, + }.merge(@s3_headers)) + rescue AWS::S3::NoSuchBucket => e + create_bucket + retry + rescue AWS::S3::ResponseError => e + raise + end + end + @queued_for_write = {} + end + + def flush_deletes #:nodoc: + @queued_for_delete.each do |path| + begin + log("deleting #{path}") + AWS::S3::S3Object.delete(path, bucket_name) + rescue AWS::S3::ResponseError + # Ignore this. + end + end + @queued_for_delete = [] + end + + def find_credentials creds + case creds + when File + YAML::load(ERB.new(File.read(creds.path)).result) + when String, Pathname + YAML::load(ERB.new(File.read(creds)).result) + when Hash + creds + else + raise ArgumentError, "Credentials are not a path, file, or hash." + end + end + private :find_credentials + + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/style.rb b/vendor/plugins/paperclip/lib/paperclip/style.rb new file mode 100644 index 0000000..480efd8 --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/style.rb @@ -0,0 +1,90 @@ +# encoding: utf-8 +module Paperclip + # The Style class holds the definition of a thumbnail style, applying + # whatever processing is required to normalize the definition and delaying + # the evaluation of block parameters until useful context is available. + + class Style + + attr_reader :name, :attachment, :format + + # Creates a Style object. +name+ is the name of the attachment, + # +definition+ is the style definition from has_attached_file, which + # can be string, array or hash + def initialize name, definition, attachment + @name = name + @attachment = attachment + if definition.is_a? Hash + @geometry = definition.delete(:geometry) + @format = definition.delete(:format) + @processors = definition.delete(:processors) + @other_args = definition + else + @geometry, @format = [definition, nil].flatten[0..1] + @other_args = {} + end + @format = nil if @format.blank? + end + + # retrieves from the attachment the processors defined in the has_attached_file call + # (which method (in the attachment) will call any supplied procs) + # There is an important change of interface here: a style rule can set its own processors + # by default we behave as before, though. + def processors + @processors || attachment.processors + end + + # retrieves from the attachment the whiny setting + def whiny + attachment.whiny + end + + # returns true if we're inclined to grumble + def whiny? + !!whiny + end + + def convert_options + attachment.send(:extra_options_for, name) + end + + # returns the geometry string for this style + # if a proc has been supplied, we call it here + def geometry + @geometry.respond_to?(:call) ? @geometry.call(attachment.instance) : @geometry + end + + # Supplies the hash of options that processors expect to receive as their second argument + # Arguments other than the standard geometry, format etc are just passed through from + # initialization and any procs are called here, just before post-processing. + def processor_options + args = {} + @other_args.each do |k,v| + args[k] = v.respond_to?(:call) ? v.call(attachment) : v + end + [:processors, :geometry, :format, :whiny, :convert_options].each do |k| + (arg = send(k)) && args[k] = arg + end + args + end + + # Supports getting and setting style properties with hash notation to ensure backwards-compatibility + # eg. @attachment.styles[:large][:geometry]@ will still work + def [](key) + if [:name, :convert_options, :whiny, :processors, :geometry, :format].include?(key) + send(key) + elsif defined? @other_args[key] + @other_args[key] + end + end + + def []=(key, value) + if [:name, :convert_options, :whiny, :processors, :geometry, :format].include?(key) + send("#{key}=".intern, value) + else + @other_args[key] = value + end + end + + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/thumbnail.rb b/vendor/plugins/paperclip/lib/paperclip/thumbnail.rb new file mode 100644 index 0000000..a158cbd --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/thumbnail.rb @@ -0,0 +1,79 @@ +module Paperclip + # Handles thumbnailing images that are uploaded. + class Thumbnail < Processor + + attr_accessor :current_geometry, :target_geometry, :format, :whiny, :convert_options, :source_file_options + + # Creates a Thumbnail object set to work on the +file+ given. It + # will attempt to transform the image into one defined by +target_geometry+ + # which is a "WxH"-style string. +format+ will be inferred from the +file+ + # unless specified. Thumbnail creation will raise no errors unless + # +whiny+ is true (which it is, by default. If +convert_options+ is + # set, the options will be appended to the convert command upon image conversion + def initialize file, options = {}, attachment = nil + super + + geometry = options[:geometry] + @file = file + @crop = geometry[-1,1] == '#' + @target_geometry = Geometry.parse geometry + @current_geometry = Geometry.from_file @file + @source_file_options = options[:source_file_options] + @convert_options = options[:convert_options] + @whiny = options[:whiny].nil? ? true : options[:whiny] + @format = options[:format] + + @source_file_options = @source_file_options.split(/\s+/) if @source_file_options.respond_to?(:split) + @convert_options = @convert_options.split(/\s+/) if @convert_options.respond_to?(:split) + + @current_format = File.extname(@file.path) + @basename = File.basename(@file.path, @current_format) + + end + + # Returns true if the +target_geometry+ is meant to crop. + def crop? + @crop + end + + # Returns true if the image is meant to make use of additional convert options. + def convert_options? + !@convert_options.nil? && !@convert_options.empty? + end + + # Performs the conversion of the +file+ into a thumbnail. Returns the Tempfile + # that contains the new image. + def make + src = @file + dst = Tempfile.new([@basename, @format ? ".#{@format}" : '']) + dst.binmode + + begin + parameters = [] + parameters << source_file_options + parameters << ":source" + parameters << transformation_command + parameters << convert_options + parameters << ":dest" + + parameters = parameters.flatten.compact.join(" ").strip.squeeze(" ") + + success = Paperclip.run("convert", parameters, :source => "#{File.expand_path(src.path)}[0]", :dest => File.expand_path(dst.path)) + rescue PaperclipCommandLineError => e + raise PaperclipError, "There was an error processing the thumbnail for #{@basename}" if @whiny + end + + dst + end + + # Returns the command ImageMagick's +convert+ needs to transform the image + # into the thumbnail. + def transformation_command + scale, crop = @current_geometry.transformation_to(@target_geometry, crop?) + trans = [] + trans << "-resize" << %["#{scale}"] unless scale.nil? || scale.empty? + trans << "-crop" << %["#{crop}"] << "+repage" if crop + trans + end + end +end diff --git a/vendor/plugins/paperclip/lib/paperclip/upfile.rb b/vendor/plugins/paperclip/lib/paperclip/upfile.rb new file mode 100644 index 0000000..6db66cf --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/upfile.rb @@ -0,0 +1,60 @@ +module Paperclip + # The Upfile module is a convenience module for adding uploaded-file-type methods + # to the +File+ class. Useful for testing. + # user.avatar = File.new("test/test_avatar.jpg") + module Upfile + + # Infer the MIME-type of the file from the extension. + def content_type + type = (self.path.match(/\.(\w+)$/)[1] rescue "octet-stream").downcase + case type + when %r"jp(e|g|eg)" then "image/jpeg" + when %r"tiff?" then "image/tiff" + when %r"png", "gif", "bmp" then "image/#{type}" + when "txt" then "text/plain" + when %r"html?" then "text/html" + when "js" then "application/js" + when "csv", "xml", "css" then "text/#{type}" + else + # On BSDs, `file` doesn't give a result code of 1 if the file doesn't exist. + content_type = (Paperclip.run("file", "-b --mime-type :file", :file => self.path).split(':').last.strip rescue "application/x-#{type}") + content_type = "application/x-#{type}" if content_type.match(/\(.*?\)/) + content_type + end + end + + # Returns the file's normal name. + def original_filename + File.basename(self.path) + end + + # Returns the size of the file. + def size + File.size(self) + end + + # Returns the hash of the file. + def fingerprint + Digest::MD5.hexdigest(self.read) + end + end +end + +if defined? StringIO + class StringIO + attr_accessor :original_filename, :content_type, :fingerprint + def original_filename + @original_filename ||= "stringio.txt" + end + def content_type + @content_type ||= "text/plain" + end + def fingerprint + @fingerprint ||= Digest::MD5.hexdigest(self.string) + end + end +end + +class File #:nodoc: + include Paperclip::Upfile +end diff --git a/vendor/plugins/paperclip/lib/paperclip/version.rb b/vendor/plugins/paperclip/lib/paperclip/version.rb new file mode 100644 index 0000000..57f273e --- /dev/null +++ b/vendor/plugins/paperclip/lib/paperclip/version.rb @@ -0,0 +1,3 @@ +module Paperclip + VERSION = "2.3.4" unless defined? Paperclip::VERSION +end diff --git a/vendor/plugins/paperclip/lib/tasks/paperclip.rake b/vendor/plugins/paperclip/lib/tasks/paperclip.rake new file mode 100644 index 0000000..23e4c11 --- /dev/null +++ b/vendor/plugins/paperclip/lib/tasks/paperclip.rake @@ -0,0 +1,79 @@ +def obtain_class + class_name = ENV['CLASS'] || ENV['class'] + raise "Must specify CLASS" unless class_name + @klass = Object.const_get(class_name) +end + +def obtain_attachments + name = ENV['ATTACHMENT'] || ENV['attachment'] + raise "Class #{@klass.name} has no attachments specified" unless @klass.respond_to?(:attachment_definitions) + if !name.blank? && @klass.attachment_definitions.keys.include?(name) + [ name ] + else + @klass.attachment_definitions.keys + end +end + +def for_all_attachments + klass = obtain_class + names = obtain_attachments + ids = klass.connection.select_values(klass.send(:construct_finder_sql, :select => 'id')) + + ids.each do |id| + instance = klass.find(id) + names.each do |name| + result = if instance.send("#{ name }?") + yield(instance, name) + else + true + end + print result ? "." : "x"; $stdout.flush + end + end + puts " Done." +end + +namespace :paperclip do + desc "Refreshes both metadata and thumbnails." + task :refresh => ["paperclip:refresh:metadata", "paperclip:refresh:thumbnails"] + + namespace :refresh do + desc "Regenerates thumbnails for a given CLASS (and optional ATTACHMENT)." + task :thumbnails => :environment do + errors = [] + for_all_attachments do |instance, name| + result = instance.send(name).reprocess! + errors << [instance.id, instance.errors] unless instance.errors.blank? + result + end + errors.each{|e| puts "#{e.first}: #{e.last.full_messages.inspect}" } + end + + desc "Regenerates content_type/size metadata for a given CLASS (and optional ATTACHMENT)." + task :metadata => :environment do + for_all_attachments do |instance, name| + if file = instance.send(name).to_file + instance.send("#{name}_file_name=", instance.send("#{name}_file_name").strip) + instance.send("#{name}_content_type=", file.content_type.strip) + instance.send("#{name}_file_size=", file.size) if instance.respond_to?("#{name}_file_size") + instance.save(false) + else + true + end + end + end + end + + desc "Cleans out invalid attachments. Useful after you've added new validations." + task :clean => :environment do + for_all_attachments do |instance, name| + instance.send(name).send(:validate) + if instance.send(name).valid? + true + else + instance.send("#{name}=", nil) + instance.save + end + end + end +end diff --git a/vendor/plugins/paperclip/paperclip.gemspec b/vendor/plugins/paperclip/paperclip.gemspec new file mode 100644 index 0000000..1b9bfae --- /dev/null +++ b/vendor/plugins/paperclip/paperclip.gemspec @@ -0,0 +1,34 @@ +$LOAD_PATH << File.join(File.dirname(__FILE__), 'lib') +require 'paperclip/version' + +include_files = ["README*", "LICENSE", "Rakefile", "init.rb", "{lib,tasks,test,rails,generators,shoulda_macros}/**/*"].map do |glob| + Dir[glob] +end.flatten +exclude_files = ["test/s3.yml", "test/debug.log", "test/paperclip.db", "test/doc", "test/doc/*", "test/pkg", "test/pkg/*", "test/tmp", "test/tmp/*"].map do |glob| + Dir[glob] +end.flatten + +spec = Gem::Specification.new do |s| + s.name = "paperclip" + s.version = Paperclip::VERSION + s.author = "Jon Yurek" + s.email = "jyurek@thoughtbot.com" + s.homepage = "http://www.thoughtbot.com/projects/paperclip" + s.description = "Easy upload management for ActiveRecord" + s.platform = Gem::Platform::RUBY + s.summary = "File attachments as attributes for ActiveRecord" + s.files = include_files - exclude_files + s.require_path = "lib" + s.test_files = Dir["test/**/test_*.rb"] + s.rubyforge_project = "paperclip" + s.has_rdoc = true + s.extra_rdoc_files = Dir["README*"] + s.rdoc_options << '--line-numbers' << '--inline-source' + s.requirements << "ImageMagick" + s.add_dependency 'activerecord' + s.add_dependency 'activesupport' + s.add_development_dependency 'shoulda' + s.add_development_dependency 'mocha' + s.add_development_dependency 'aws-s3' + s.add_development_dependency 'sqlite3-ruby' +end diff --git a/vendor/plugins/paperclip/rails/init.rb b/vendor/plugins/paperclip/rails/init.rb new file mode 100644 index 0000000..1875634 --- /dev/null +++ b/vendor/plugins/paperclip/rails/init.rb @@ -0,0 +1,2 @@ +require 'paperclip/railtie' +Paperclip::Railtie.insert diff --git a/vendor/plugins/paperclip/shoulda_macros/paperclip.rb b/vendor/plugins/paperclip/shoulda_macros/paperclip.rb new file mode 100644 index 0000000..30140f7 --- /dev/null +++ b/vendor/plugins/paperclip/shoulda_macros/paperclip.rb @@ -0,0 +1,118 @@ +require 'paperclip/matchers' + +module Paperclip + # =Paperclip Shoulda Macros + # + # These macros are intended for use with shoulda, and will be included into + # your tests automatically. All of the macros use the standard shoulda + # assumption that the name of the test is based on the name of the model + # you're testing (that is, UserTest is the test for the User model), and + # will load that class for testing purposes. + module Shoulda + include Matchers + # This will test whether you have defined your attachment correctly by + # checking for all the required fields exist after the definition of the + # attachment. + def should_have_attached_file name + klass = self.name.gsub(/Test$/, '').constantize + matcher = have_attached_file name + should matcher.description do + assert_accepts(matcher, klass) + end + end + + # Tests for validations on the presence of the attachment. + def should_validate_attachment_presence name + klass = self.name.gsub(/Test$/, '').constantize + matcher = validate_attachment_presence name + should matcher.description do + assert_accepts(matcher, klass) + end + end + + # Tests that you have content_type validations specified. There are two + # options, :valid and :invalid. Both accept an array of strings. The + # strings should be a list of content types which will pass and fail + # validation, respectively. + def should_validate_attachment_content_type name, options = {} + klass = self.name.gsub(/Test$/, '').constantize + valid = [options[:valid]].flatten + invalid = [options[:invalid]].flatten + matcher = validate_attachment_content_type(name).allowing(valid).rejecting(invalid) + should matcher.description do + assert_accepts(matcher, klass) + end + end + + # Tests to ensure that you have file size validations turned on. You + # can pass the same options to this that you can to + # validate_attachment_file_size - :less_than, :greater_than, and :in. + # :less_than checks that a file is less than a certain size, :greater_than + # checks that a file is more than a certain size, and :in takes a Range or + # Array which specifies the lower and upper limits of the file size. + def should_validate_attachment_size name, options = {} + klass = self.name.gsub(/Test$/, '').constantize + min = options[:greater_than] || (options[:in] && options[:in].first) || 0 + max = options[:less_than] || (options[:in] && options[:in].last) || (1.0/0) + range = (min..max) + matcher = validate_attachment_size(name).in(range) + should matcher.description do + assert_accepts(matcher, klass) + end + end + + # Stubs the HTTP PUT for an attachment using S3 storage. + # + # @example + # stub_paperclip_s3('user', 'avatar', 'png') + def stub_paperclip_s3(model, attachment, extension) + definition = model.gsub(" ", "_").classify.constantize. + attachment_definitions[attachment.to_sym] + + path = "http://s3.amazonaws.com/:id/#{definition[:path]}" + path.gsub!(/:([^\/\.]+)/) do |match| + "([^\/\.]+)" + end + + begin + FakeWeb.register_uri(:put, Regexp.new(path), :body => "OK") + rescue NameError + raise NameError, "the stub_paperclip_s3 shoulda macro requires the fakeweb gem." + end + end + + # Stub S3 and return a file for attachment. Best with Factory Girl. + # Uses a strict directory convention: + # + # features/support/paperclip + # + # This method is used by the Paperclip-provided Cucumber step: + # + # When I attach a "demo_tape" "mp3" file to a "band" on S3 + # + # @example + # Factory.define :band_with_demo_tape, :parent => :band do |band| + # band.demo_tape { band.paperclip_fixture("band", "demo_tape", "png") } + # end + def paperclip_fixture(model, attachment, extension) + stub_paperclip_s3(model, attachment, extension) + base_path = File.join(File.dirname(__FILE__), "..", "..", + "features", "support", "paperclip") + File.new(File.join(base_path, model, "#{attachment}.#{extension}")) + end + end +end + +if defined?(ActionController::Integration::Session) + class ActionController::Integration::Session #:nodoc: + include Paperclip::Shoulda + end +end + +class Factory + include Paperclip::Shoulda #:nodoc: +end + +class Test::Unit::TestCase #:nodoc: + extend Paperclip::Shoulda +end diff --git a/vendor/plugins/paperclip/test/.gitignore b/vendor/plugins/paperclip/test/.gitignore new file mode 100644 index 0000000..b14c548 --- /dev/null +++ b/vendor/plugins/paperclip/test/.gitignore @@ -0,0 +1 @@ +debug.log diff --git a/vendor/plugins/paperclip/test/attachment_test.rb b/vendor/plugins/paperclip/test/attachment_test.rb new file mode 100644 index 0000000..4b8a5b5 --- /dev/null +++ b/vendor/plugins/paperclip/test/attachment_test.rb @@ -0,0 +1,804 @@ +# encoding: utf-8 +require 'test/helper' + +class Dummy + # This is a dummy class +end + +class AttachmentTest < Test::Unit::TestCase + should "return the path based on the url by default" do + @attachment = attachment :url => "/:class/:id/:basename" + @model = @attachment.instance + @model.id = 1234 + @model.avatar_file_name = "fake.jpg" + assert_equal "#{Rails.root}/public/fake_models/1234/fake", @attachment.path + end + + context "Attachment default_options" do + setup do + rebuild_model + @old_default_options = Paperclip::Attachment.default_options.dup + @new_default_options = @old_default_options.merge({ + :path => "argle/bargle", + :url => "fooferon", + :default_url => "not here.png" + }) + end + + teardown do + Paperclip::Attachment.default_options.merge! @old_default_options + end + + should "be overrideable" do + Paperclip::Attachment.default_options.merge!(@new_default_options) + @new_default_options.keys.each do |key| + assert_equal @new_default_options[key], + Paperclip::Attachment.default_options[key] + end + end + + context "without an Attachment" do + setup do + @dummy = Dummy.new + end + + should "return false when asked exists?" do + assert !@dummy.avatar.exists? + end + end + + context "on an Attachment" do + setup do + @dummy = Dummy.new + @attachment = @dummy.avatar + end + + Paperclip::Attachment.default_options.keys.each do |key| + should "be the default_options for #{key}" do + assert_equal @old_default_options[key], + @attachment.instance_variable_get("@#{key}"), + key + end + end + + context "when redefined" do + setup do + Paperclip::Attachment.default_options.merge!(@new_default_options) + @dummy = Dummy.new + @attachment = @dummy.avatar + end + + Paperclip::Attachment.default_options.keys.each do |key| + should "be the new default_options for #{key}" do + assert_equal @new_default_options[key], + @attachment.instance_variable_get("@#{key}"), + key + end + end + end + end + end + + context "An attachment with similarly named interpolations" do + setup do + rebuild_model :path => ":id.omg/:id-bbq/:idwhat/:id_partition.wtf" + @dummy = Dummy.new + @dummy.stubs(:id).returns(1024) + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummy.avatar = @file + end + + teardown { @file.close } + + should "make sure that they are interpolated correctly" do + assert_equal "1024.omg/1024-bbq/1024what/000/001/024.wtf", @dummy.avatar.path + end + end + + context "An attachment with a :rails_env interpolation" do + setup do + @rails_env = "blah" + @id = 1024 + rebuild_model :path => ":rails_env/:id.png" + @dummy = Dummy.new + @dummy.stubs(:id).returns(@id) + @file = StringIO.new(".") + @dummy.avatar = @file + Rails.stubs(:env).returns(@rails_env) + end + + should "return the proper path" do + assert_equal "#{@rails_env}/#{@id}.png", @dummy.avatar.path + end + end + + context "An attachment with a default style and an extension interpolation" do + setup do + @attachment = attachment :path => ":basename.:extension", + :styles => { :default => ["100x100", :png] }, + :default_style => :default + @file = StringIO.new("...") + @file.stubs(:original_filename).returns("file.jpg") + end + should "return the right extension for the path" do + @attachment.assign(@file) + assert_equal "file.png", @attachment.path + end + end + + context "An attachment with :convert_options" do + setup do + rebuild_model :styles => { + :thumb => "100x100", + :large => "400x400" + }, + :convert_options => { + :all => "-do_stuff", + :thumb => "-thumbnailize" + } + @dummy = Dummy.new + @dummy.avatar + end + + should "report the correct options when sent #extra_options_for(:thumb)" do + assert_equal "-thumbnailize -do_stuff", @dummy.avatar.send(:extra_options_for, :thumb), @dummy.avatar.convert_options.inspect + end + + should "report the correct options when sent #extra_options_for(:large)" do + assert_equal "-do_stuff", @dummy.avatar.send(:extra_options_for, :large) + end + end + + context "An attachment with :convert_options that is a proc" do + setup do + rebuild_model :styles => { + :thumb => "100x100", + :large => "400x400" + }, + :convert_options => { + :all => lambda{|i| i.all }, + :thumb => lambda{|i| i.thumb } + } + Dummy.class_eval do + def all; "-all"; end + def thumb; "-thumb"; end + end + @dummy = Dummy.new + @dummy.avatar + end + + should "report the correct options when sent #extra_options_for(:thumb)" do + assert_equal "-thumb -all", @dummy.avatar.send(:extra_options_for, :thumb), @dummy.avatar.convert_options.inspect + end + + should "report the correct options when sent #extra_options_for(:large)" do + assert_equal "-all", @dummy.avatar.send(:extra_options_for, :large) + end + end + + context "An attachment with :path that is a proc" do + setup do + rebuild_model :path => lambda{ |attachment| "path/#{attachment.instance.other}.:extension" } + + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummyA = Dummy.new(:other => 'a') + @dummyA.avatar = @file + @dummyB = Dummy.new(:other => 'b') + @dummyB.avatar = @file + end + + teardown { @file.close } + + should "return correct path" do + assert_equal "path/a.png", @dummyA.avatar.path + assert_equal "path/b.png", @dummyB.avatar.path + end + end + + context "An attachment with :styles that is a proc" do + setup do + rebuild_model :styles => lambda{ |attachment| {:thumb => "50x50#", :large => "400x400"} } + + @attachment = Dummy.new.avatar + end + + should "have the correct geometry" do + assert_equal "50x50#", @attachment.styles[:thumb][:geometry] + end + end + + context "An attachment with :url that is a proc" do + setup do + rebuild_model :url => lambda{ |attachment| "path/#{attachment.instance.other}.:extension" } + + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummyA = Dummy.new(:other => 'a') + @dummyA.avatar = @file + @dummyB = Dummy.new(:other => 'b') + @dummyB.avatar = @file + end + + teardown { @file.close } + + should "return correct url" do + assert_equal "path/a.png", @dummyA.avatar.url(:original, false) + assert_equal "path/b.png", @dummyB.avatar.url(:original, false) + end + end + + geometry_specs = [ + [ lambda{|z| "50x50#" }, :png ], + lambda{|z| "50x50#" }, + { :geometry => lambda{|z| "50x50#" } } + ] + geometry_specs.each do |geometry_spec| + context "An attachment geometry like #{geometry_spec}" do + setup do + rebuild_model :styles => { :normal => geometry_spec } + @attachment = Dummy.new.avatar + end + + context "when assigned" do + setup do + @file = StringIO.new(".") + @attachment.assign(@file) + end + + should "have the correct geometry" do + assert_equal "50x50#", @attachment.styles[:normal][:geometry] + end + end + end + end + + context "An attachment with both 'normal' and hash-style styles" do + setup do + rebuild_model :styles => { + :normal => ["50x50#", :png], + :hash => { :geometry => "50x50#", :format => :png } + } + @dummy = Dummy.new + @attachment = @dummy.avatar + end + + [:processors, :whiny, :convert_options, :geometry, :format].each do |field| + should "have the same #{field} field" do + assert_equal @attachment.styles[:normal][field], @attachment.styles[:hash][field] + end + end + end + + context "An attachment with :processors that is a proc" do + setup do + rebuild_model :styles => { :normal => '' }, :processors => lambda { |a| [ :test ] } + @attachment = Dummy.new.avatar + end + + context "when assigned" do + setup do + @attachment.assign(StringIO.new(".")) + end + + should "have the correct processors" do + assert_equal [ :test ], @attachment.styles[:normal][:processors] + end + end + end + + context "An attachment with erroring processor" do + setup do + rebuild_model :processor => [:thumbnail], :styles => { :small => '' }, :whiny_thumbnails => true + @dummy = Dummy.new + Paperclip::Thumbnail.expects(:make).raises(Paperclip::PaperclipError, "cannot be processed.") + @file = StringIO.new("...") + @file.stubs(:to_tempfile).returns(@file) + @dummy.avatar = @file + end + + should "correctly forward processing error message to the instance" do + @dummy.valid? + assert_contains @dummy.errors.full_messages, "Avatar cannot be processed." + end + end + + context "An attachment with multiple processors" do + setup do + class Paperclip::Test < Paperclip::Processor; end + @style_params = { :once => {:one => 1, :two => 2} } + rebuild_model :processors => [:thumbnail, :test], :styles => @style_params + @dummy = Dummy.new + @file = StringIO.new("...") + @file.stubs(:to_tempfile).returns(@file) + Paperclip::Test.stubs(:make).returns(@file) + Paperclip::Thumbnail.stubs(:make).returns(@file) + end + + context "when assigned" do + setup { @dummy.avatar = @file } + + before_should "call #make on all specified processors" do + Paperclip::Thumbnail.expects(:make).with(any_parameters).returns(@file) + Paperclip::Test.expects(:make).with(any_parameters).returns(@file) + end + + before_should "call #make with the right parameters passed as second argument" do + expected_params = @style_params[:once].merge({:processors => [:thumbnail, :test], :whiny => true, :convert_options => ""}) + Paperclip::Thumbnail.expects(:make).with(anything, expected_params, anything).returns(@file) + end + + before_should "call #make with attachment passed as third argument" do + Paperclip::Test.expects(:make).with(anything, anything, @dummy.avatar).returns(@file) + end + end + end + + should "include the filesystem module when loading the filesystem storage" do + rebuild_model :storage => :filesystem + @dummy = Dummy.new + assert @dummy.avatar.is_a?(Paperclip::Storage::Filesystem) + end + + should "include the filesystem module even if capitalization is wrong" do + rebuild_model :storage => :FileSystem + @dummy = Dummy.new + assert @dummy.avatar.is_a?(Paperclip::Storage::Filesystem) + end + + should "raise an error if you try to include a storage module that doesn't exist" do + rebuild_model :storage => :not_here + @dummy = Dummy.new + assert_raises(Paperclip::StorageMethodNotFound) do + @dummy.avatar + end + end + + context "An attachment with styles but no processors defined" do + setup do + rebuild_model :processors => [], :styles => {:something => '1'} + @dummy = Dummy.new + @file = StringIO.new("...") + end + should "raise when assigned to" do + assert_raises(RuntimeError){ @dummy.avatar = @file } + end + end + + context "An attachment without styles and with no processors defined" do + setup do + rebuild_model :processors => [], :styles => {} + @dummy = Dummy.new + @file = StringIO.new("...") + end + should "not raise when assigned to" do + @dummy.avatar = @file + end + end + + context "Assigning an attachment with post_process hooks" do + setup do + rebuild_class :styles => { :something => "100x100#" } + Dummy.class_eval do + before_avatar_post_process :do_before_avatar + after_avatar_post_process :do_after_avatar + before_post_process :do_before_all + after_post_process :do_after_all + def do_before_avatar; end + def do_after_avatar; end + def do_before_all; end + def do_after_all; end + end + @file = StringIO.new(".") + @file.stubs(:to_tempfile).returns(@file) + @dummy = Dummy.new + Paperclip::Thumbnail.stubs(:make).returns(@file) + @attachment = @dummy.avatar + end + + should "call the defined callbacks when assigned" do + @dummy.expects(:do_before_avatar).with() + @dummy.expects(:do_after_avatar).with() + @dummy.expects(:do_before_all).with() + @dummy.expects(:do_after_all).with() + Paperclip::Thumbnail.expects(:make).returns(@file) + @dummy.avatar = @file + end + + should "not cancel the processing if a before_post_process returns nil" do + @dummy.expects(:do_before_avatar).with().returns(nil) + @dummy.expects(:do_after_avatar).with() + @dummy.expects(:do_before_all).with().returns(nil) + @dummy.expects(:do_after_all).with() + Paperclip::Thumbnail.expects(:make).returns(@file) + @dummy.avatar = @file + end + + should "cancel the processing if a before_post_process returns false" do + @dummy.expects(:do_before_avatar).never + @dummy.expects(:do_after_avatar).never + @dummy.expects(:do_before_all).with().returns(false) + @dummy.expects(:do_after_all) + Paperclip::Thumbnail.expects(:make).never + @dummy.avatar = @file + end + + should "cancel the processing if a before_avatar_post_process returns false" do + @dummy.expects(:do_before_avatar).with().returns(false) + @dummy.expects(:do_after_avatar) + @dummy.expects(:do_before_all).with().returns(true) + @dummy.expects(:do_after_all) + Paperclip::Thumbnail.expects(:make).never + @dummy.avatar = @file + end + end + + context "Assigning an attachment" do + setup do + rebuild_model :styles => { :something => "100x100#" } + @file = StringIO.new(".") + @file.stubs(:original_filename).returns("5k.png\n\n") + @file.stubs(:content_type).returns("image/png\n\n") + @file.stubs(:to_tempfile).returns(@file) + @dummy = Dummy.new + Paperclip::Thumbnail.expects(:make).returns(@file) + @attachment = @dummy.avatar + @dummy.avatar = @file + end + + should "strip whitespace from original_filename field" do + assert_equal "5k.png", @dummy.avatar.original_filename + end + + should "strip whitespace from content_type field" do + assert_equal "image/png", @dummy.avatar.instance.avatar_content_type + end + end + + context "Attachment with strange letters" do + setup do + rebuild_model + + @not_file = mock + @tempfile = mock + @not_file.stubs(:nil?).returns(false) + @not_file.stubs(:fingerprint).returns('bd94545193321376b70136f8b223abf8') + @tempfile.stubs(:fingerprint).returns('bd94545193321376b70136f8b223abf8') + @not_file.expects(:size).returns(10) + @tempfile.expects(:size).returns(10) + @not_file.expects(:to_tempfile).returns(@tempfile) + @not_file.expects(:original_filename).returns("sheep_say_bæ.png\r\n") + @not_file.expects(:content_type).returns("image/png\r\n") + + @dummy = Dummy.new + @attachment = @dummy.avatar + @attachment.expects(:valid_assignment?).with(@not_file).returns(true) + @attachment.expects(:queue_existing_for_delete) + @attachment.expects(:post_process) + @dummy.avatar = @not_file + end + + should "not remove strange letters" do + assert_equal "sheep_say_bæ.png", @dummy.avatar.original_filename + end + end + + context "An attachment" do + setup do + @old_defaults = Paperclip::Attachment.default_options.dup + Paperclip::Attachment.default_options.merge!({ + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + }) + FileUtils.rm_rf("tmp") + rebuild_model + @instance = Dummy.new + @instance.stubs(:id).returns 123 + @attachment = Paperclip::Attachment.new(:avatar, @instance) + @file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb') + end + + teardown do + @file.close + Paperclip::Attachment.default_options.merge!(@old_defaults) + end + + should "raise if there are not the correct columns when you try to assign" do + @other_attachment = Paperclip::Attachment.new(:not_here, @instance) + assert_raises(Paperclip::PaperclipError) do + @other_attachment.assign(@file) + end + end + + should "return its default_url when no file assigned" do + assert @attachment.to_file.nil? + assert_equal "/avatars/original/missing.png", @attachment.url + assert_equal "/avatars/blah/missing.png", @attachment.url(:blah) + end + + should "return nil as path when no file assigned" do + assert @attachment.to_file.nil? + assert_equal nil, @attachment.path + assert_equal nil, @attachment.path(:blah) + end + + context "with a file assigned in the database" do + setup do + @attachment.stubs(:instance_read).with(:file_name).returns("5k.png") + @attachment.stubs(:instance_read).with(:content_type).returns("image/png") + @attachment.stubs(:instance_read).with(:file_size).returns(12345) + dtnow = DateTime.now + @now = Time.now + Time.stubs(:now).returns(@now) + @attachment.stubs(:instance_read).with(:updated_at).returns(dtnow) + end + + should "return a correct url even if the file does not exist" do + assert_nil @attachment.to_file + assert_match %r{^/system/avatars/#{@instance.id}/blah/5k\.png}, @attachment.url(:blah) + end + + should "make sure the updated_at mtime is in the url if it is defined" do + assert_match %r{#{@now.to_i}$}, @attachment.url(:blah) + end + + should "make sure the updated_at mtime is NOT in the url if false is passed to the url method" do + assert_no_match %r{#{@now.to_i}$}, @attachment.url(:blah, false) + end + + context "with the updated_at field removed" do + setup do + @attachment.stubs(:instance_read).with(:updated_at).returns(nil) + end + + should "only return the url without the updated_at when sent #url" do + assert_match "/avatars/#{@instance.id}/blah/5k.png", @attachment.url(:blah) + end + end + + should "return the proper path when filename has a single .'s" do + assert_equal File.expand_path("./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.png"), File.expand_path(@attachment.path) + end + + should "return the proper path when filename has multiple .'s" do + @attachment.stubs(:instance_read).with(:file_name).returns("5k.old.png") + assert_equal File.expand_path("./test/../tmp/avatars/dummies/original/#{@instance.id}/5k.old.png"), File.expand_path(@attachment.path) + end + + context "when expecting three styles" do + setup do + styles = {:styles => { :large => ["400x400", :png], + :medium => ["100x100", :gif], + :small => ["32x32#", :jpg]}} + @attachment = Paperclip::Attachment.new(:avatar, + @instance, + styles) + end + + context "and assigned a file" do + setup do + now = Time.now + Time.stubs(:now).returns(now) + @attachment.assign(@file) + end + + should "be dirty" do + assert @attachment.dirty? + end + + context "and saved" do + setup do + @attachment.save + end + + should "return the real url" do + file = @attachment.to_file + assert file + assert_match %r{^/system/avatars/#{@instance.id}/original/5k\.png}, @attachment.url + assert_match %r{^/system/avatars/#{@instance.id}/small/5k\.jpg}, @attachment.url(:small) + file.close + end + + should "commit the files to disk" do + [:large, :medium, :small].each do |style| + io = @attachment.to_file(style) + # p "in commit to disk test, io is #{io.inspect} and @instance.id is #{@instance.id}" + assert File.exists?(io) + assert ! io.is_a?(::Tempfile) + io.close + end + end + + should "save the files as the right formats and sizes" do + [[:large, 400, 61, "PNG"], + [:medium, 100, 15, "GIF"], + [:small, 32, 32, "JPEG"]].each do |style| + cmd = %Q[identify -format "%w %h %b %m" "#{@attachment.path(style.first)}"] + out = `#{cmd}` + width, height, size, format = out.split(" ") + assert_equal style[1].to_s, width.to_s + assert_equal style[2].to_s, height.to_s + assert_equal style[3].to_s, format.to_s + end + end + + should "still have its #file attribute not be nil" do + assert ! (file = @attachment.to_file).nil? + file.close + end + + context "and trying to delete" do + setup do + @existing_names = @attachment.styles.keys.collect do |style| + @attachment.path(style) + end + end + + should "delete the files after assigning nil" do + @attachment.expects(:instance_write).with(:file_name, nil) + @attachment.expects(:instance_write).with(:content_type, nil) + @attachment.expects(:instance_write).with(:file_size, nil) + @attachment.expects(:instance_write).with(:updated_at, nil) + @attachment.assign nil + @attachment.save + @existing_names.each{|f| assert ! File.exists?(f) } + end + + should "delete the files when you call #clear and #save" do + @attachment.expects(:instance_write).with(:file_name, nil) + @attachment.expects(:instance_write).with(:content_type, nil) + @attachment.expects(:instance_write).with(:file_size, nil) + @attachment.expects(:instance_write).with(:updated_at, nil) + @attachment.clear + @attachment.save + @existing_names.each{|f| assert ! File.exists?(f) } + end + + should "delete the files when you call #delete" do + @attachment.expects(:instance_write).with(:file_name, nil) + @attachment.expects(:instance_write).with(:content_type, nil) + @attachment.expects(:instance_write).with(:file_size, nil) + @attachment.expects(:instance_write).with(:updated_at, nil) + @attachment.destroy + @existing_names.each{|f| assert ! File.exists?(f) } + end + end + end + end + end + + end + + context "when trying a nonexistant storage type" do + setup do + rebuild_model :storage => :not_here + end + + should "not be able to find the module" do + assert_raise(Paperclip::StorageMethodNotFound){ Dummy.new.avatar } + end + end + end + + context "An attachment with only a avatar_file_name column" do + setup do + ActiveRecord::Base.connection.create_table :dummies, :force => true do |table| + table.column :avatar_file_name, :string + end + rebuild_class + @dummy = Dummy.new + @file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb') + end + + teardown { @file.close } + + should "not error when assigned an attachment" do + assert_nothing_raised { @dummy.avatar = @file } + end + + should "return the time when sent #avatar_updated_at" do + now = Time.now + Time.stubs(:now).returns(now) + @dummy.avatar = @file + assert now, @dummy.avatar.updated_at + end + + should "return nil when reloaded and sent #avatar_updated_at" do + @dummy.save + @dummy.reload + assert_nil @dummy.avatar.updated_at + end + + should "return the right value when sent #avatar_file_size" do + @dummy.avatar = @file + assert_equal @file.size, @dummy.avatar.size + end + + context "and avatar_updated_at column" do + setup do + ActiveRecord::Base.connection.add_column :dummies, :avatar_updated_at, :timestamp + rebuild_class + @dummy = Dummy.new + end + + should "not error when assigned an attachment" do + assert_nothing_raised { @dummy.avatar = @file } + end + + should "return the right value when sent #avatar_updated_at" do + now = Time.now + Time.stubs(:now).returns(now) + @dummy.avatar = @file + assert_equal now.to_i, @dummy.avatar.updated_at + end + end + + context "and avatar_content_type column" do + setup do + ActiveRecord::Base.connection.add_column :dummies, :avatar_content_type, :string + rebuild_class + @dummy = Dummy.new + end + + should "not error when assigned an attachment" do + assert_nothing_raised { @dummy.avatar = @file } + end + + should "return the right value when sent #avatar_content_type" do + @dummy.avatar = @file + assert_equal "image/png", @dummy.avatar.content_type + end + end + + context "and avatar_file_size column" do + setup do + ActiveRecord::Base.connection.add_column :dummies, :avatar_file_size, :integer + rebuild_class + @dummy = Dummy.new + end + + should "not error when assigned an attachment" do + assert_nothing_raised { @dummy.avatar = @file } + end + + should "return the right value when sent #avatar_file_size" do + @dummy.avatar = @file + assert_equal @file.size, @dummy.avatar.size + end + + should "return the right value when saved, reloaded, and sent #avatar_file_size" do + @dummy.avatar = @file + @dummy.save + @dummy = Dummy.find(@dummy.id) + assert_equal @file.size, @dummy.avatar.size + end + end + + context "and avatar_fingerprint column" do + setup do + ActiveRecord::Base.connection.add_column :dummies, :avatar_fingerprint, :string + rebuild_class + @dummy = Dummy.new + end + + should "not error when assigned an attachment" do + assert_nothing_raised { @dummy.avatar = @file } + end + + should "return the right value when sent #avatar_fingerprint" do + @dummy.avatar = @file + assert_equal 'aec488126c3b33c08a10c3fa303acf27', @dummy.avatar_fingerprint + end + + should "return the right value when saved, reloaded, and sent #avatar_fingerprint" do + @dummy.avatar = @file + @dummy.save + @dummy = Dummy.find(@dummy.id) + assert_equal 'aec488126c3b33c08a10c3fa303acf27', @dummy.avatar_fingerprint + end + end + end +end diff --git a/vendor/plugins/paperclip/test/command_line_test.rb b/vendor/plugins/paperclip/test/command_line_test.rb new file mode 100644 index 0000000..c5374b2 --- /dev/null +++ b/vendor/plugins/paperclip/test/command_line_test.rb @@ -0,0 +1,133 @@ +require 'test/helper' + +class CommandLineTest < Test::Unit::TestCase + def setup + Paperclip::CommandLine.path = nil + File.stubs(:exist?).with("/dev/null").returns(true) + end + + should "take a command and parameters and produce a shell command for bash" do + cmd = Paperclip::CommandLine.new("convert", "a.jpg b.png", :swallow_stderr => false) + assert_equal "convert a.jpg b.png", cmd.command + end + + should "be able to set a path and produce commands with that path" do + Paperclip::CommandLine.path = "/opt/bin" + cmd = Paperclip::CommandLine.new("convert", "a.jpg b.png", :swallow_stderr => false) + assert_equal "/opt/bin/convert a.jpg b.png", cmd.command + end + + should "be able to interpolate quoted variables into the parameters" do + cmd = Paperclip::CommandLine.new("convert", + ":one :{two}", + :one => "a.jpg", + :two => "b.png", + :swallow_stderr => false) + assert_equal "convert 'a.jpg' 'b.png'", cmd.command + end + + should "quote command line options differently if we're on windows" do + File.stubs(:exist?).with("/dev/null").returns(false) + cmd = Paperclip::CommandLine.new("convert", + ":one :{two}", + :one => "a.jpg", + :two => "b.png", + :swallow_stderr => false) + assert_equal 'convert "a.jpg" "b.png"', cmd.command + end + + should "be able to quote and interpolate dangerous variables" do + cmd = Paperclip::CommandLine.new("convert", + ":one :two", + :one => "`rm -rf`.jpg", + :two => "ha'ha.png", + :swallow_stderr => false) + assert_equal "convert '`rm -rf`.jpg' 'ha'\\''ha.png'", cmd.command + end + + should "be able to quote and interpolate dangerous variables even on windows" do + File.stubs(:exist?).with("/dev/null").returns(false) + cmd = Paperclip::CommandLine.new("convert", + ":one :two", + :one => "`rm -rf`.jpg", + :two => "ha'ha.png", + :swallow_stderr => false) + assert_equal %{convert "`rm -rf`.jpg" "ha'ha.png"}, cmd.command + end + + should "add redirection to get rid of stderr in bash" do + File.stubs(:exist?).with("/dev/null").returns(true) + cmd = Paperclip::CommandLine.new("convert", + "a.jpg b.png", + :swallow_stderr => true) + + assert_equal "convert a.jpg b.png 2>/dev/null", cmd.command + end + + should "add redirection to get rid of stderr in cmd.exe" do + File.stubs(:exist?).with("/dev/null").returns(false) + cmd = Paperclip::CommandLine.new("convert", + "a.jpg b.png", + :swallow_stderr => true) + + assert_equal "convert a.jpg b.png 2>NUL", cmd.command + end + + should "raise if trying to interpolate :swallow_stderr or :expected_outcodes" do + cmd = Paperclip::CommandLine.new("convert", + ":swallow_stderr :expected_outcodes", + :swallow_stderr => false, + :expected_outcodes => [0, 1]) + assert_raise(Paperclip::PaperclipCommandLineError) do + cmd.command + end + end + + should "run the #command it's given and return the output" do + cmd = Paperclip::CommandLine.new("convert", "a.jpg b.png", :swallow_stderr => false) + cmd.class.stubs(:"`").with("convert a.jpg b.png").returns(:correct_value) + with_exitstatus_returning(0) do + assert_equal :correct_value, cmd.run + end + end + + should "raise a PaperclipCommandLineError if the result code isn't expected" do + cmd = Paperclip::CommandLine.new("convert", "a.jpg b.png", :swallow_stderr => false) + cmd.class.stubs(:"`").with("convert a.jpg b.png").returns(:correct_value) + with_exitstatus_returning(1) do + assert_raises(Paperclip::PaperclipCommandLineError) do + cmd.run + end + end + end + + should "not raise a PaperclipCommandLineError if the result code is expected" do + cmd = Paperclip::CommandLine.new("convert", + "a.jpg b.png", + :expected_outcodes => [0, 1], + :swallow_stderr => false) + cmd.class.stubs(:"`").with("convert a.jpg b.png").returns(:correct_value) + with_exitstatus_returning(1) do + assert_nothing_raised do + cmd.run + end + end + end + + should "log the command" do + cmd = Paperclip::CommandLine.new("convert", "a.jpg b.png", :swallow_stderr => false) + cmd.class.stubs(:'`') + Paperclip.expects(:log).with("convert a.jpg b.png") + cmd.run + end + + should "detect that the system is unix or windows based on presence of /dev/null" do + File.stubs(:exist?).returns(true) + assert Paperclip::CommandLine.unix? + end + + should "detect that the system is not unix or windows based on absence of /dev/null" do + File.stubs(:exist?).returns(false) + assert ! Paperclip::CommandLine.unix? + end +end diff --git a/vendor/plugins/paperclip/test/database.yml b/vendor/plugins/paperclip/test/database.yml new file mode 100644 index 0000000..c12ad28 --- /dev/null +++ b/vendor/plugins/paperclip/test/database.yml @@ -0,0 +1,4 @@ +test: + adapter: sqlite3 + database: ":memory:" + diff --git a/vendor/plugins/paperclip/test/fixtures/12k.png b/vendor/plugins/paperclip/test/fixtures/12k.png new file mode 100644 index 0000000000000000000000000000000000000000..f819d45195c3155fce332105f54d089f77b6f05c GIT binary patch literal 12093 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 t!6W285(nkRKP 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 BW5WOd literal 0 HcmV?d00001 diff --git a/vendor/plugins/paperclip/test/fixtures/bad.png b/vendor/plugins/paperclip/test/fixtures/bad.png new file mode 100644 index 0000000..7ba4f07 --- /dev/null +++ b/vendor/plugins/paperclip/test/fixtures/bad.png @@ -0,0 +1 @@ +This is not an image. diff --git a/vendor/plugins/paperclip/test/fixtures/s3.yml b/vendor/plugins/paperclip/test/fixtures/s3.yml new file mode 100644 index 0000000..13c8b0c --- /dev/null +++ b/vendor/plugins/paperclip/test/fixtures/s3.yml @@ -0,0 +1,8 @@ +development: + key: 54321 +production: + key: 12345 +test: + bucket: <%= ENV['S3_BUCKET'] %> + access_key_id: <%= ENV['S3_KEY'] %> + secret_access_key: <%= ENV['S3_SECRET'] %> diff --git a/vendor/plugins/paperclip/test/fixtures/text.txt b/vendor/plugins/paperclip/test/fixtures/text.txt new file mode 100644 index 0000000..e69de29 diff --git a/vendor/plugins/paperclip/test/fixtures/twopage.pdf b/vendor/plugins/paperclip/test/fixtures/twopage.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0c34a5193f4404443922279f43c7f4f2309c0247 GIT binary patch literal 8775 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 H8SwuA2Tvy* literal 0 HcmV?d00001 diff --git a/vendor/plugins/paperclip/test/geometry_test.rb b/vendor/plugins/paperclip/test/geometry_test.rb new file mode 100644 index 0000000..3ae3b71 --- /dev/null +++ b/vendor/plugins/paperclip/test/geometry_test.rb @@ -0,0 +1,177 @@ +require 'test/helper' + +class GeometryTest < Test::Unit::TestCase + context "Paperclip::Geometry" do + should "correctly report its given dimensions" do + assert @geo = Paperclip::Geometry.new(1024, 768) + assert_equal 1024, @geo.width + assert_equal 768, @geo.height + end + + should "set height to 0 if height dimension is missing" do + assert @geo = Paperclip::Geometry.new(1024) + assert_equal 1024, @geo.width + assert_equal 0, @geo.height + end + + should "set width to 0 if width dimension is missing" do + assert @geo = Paperclip::Geometry.new(nil, 768) + assert_equal 0, @geo.width + assert_equal 768, @geo.height + end + + should "be generated from a WxH-formatted string" do + assert @geo = Paperclip::Geometry.parse("800x600") + assert_equal 800, @geo.width + assert_equal 600, @geo.height + end + + should "be generated from a xH-formatted string" do + assert @geo = Paperclip::Geometry.parse("x600") + assert_equal 0, @geo.width + assert_equal 600, @geo.height + end + + should "be generated from a Wx-formatted string" do + assert @geo = Paperclip::Geometry.parse("800x") + assert_equal 800, @geo.width + assert_equal 0, @geo.height + end + + should "be generated from a W-formatted string" do + assert @geo = Paperclip::Geometry.parse("800") + assert_equal 800, @geo.width + assert_equal 0, @geo.height + end + + should "ensure the modifier is nil if not present" do + assert @geo = Paperclip::Geometry.parse("123x456") + assert_nil @geo.modifier + end + + should "treat x and X the same in geometries" do + @lower = Paperclip::Geometry.parse("123x456") + @upper = Paperclip::Geometry.parse("123X456") + assert_equal 123, @lower.width + assert_equal 123, @upper.width + assert_equal 456, @lower.height + assert_equal 456, @upper.height + end + + ['>', '<', '#', '@', '%', '^', '!', nil].each do |mod| + should "ensure the modifier #{mod.inspect} is preserved" do + assert @geo = Paperclip::Geometry.parse("123x456#{mod}") + assert_equal mod, @geo.modifier + assert_equal "123x456#{mod}", @geo.to_s + end + end + + ['>', '<', '#', '@', '%', '^', '!', nil].each do |mod| + should "ensure the modifier #{mod.inspect} is preserved with no height" do + assert @geo = Paperclip::Geometry.parse("123x#{mod}") + assert_equal mod, @geo.modifier + assert_equal "123#{mod}", @geo.to_s + end + end + + should "make sure the modifier gets passed during transformation_to" do + assert @src = Paperclip::Geometry.parse("123x456") + assert @dst = Paperclip::Geometry.parse("123x456>") + assert_equal ["123x456>", nil], @src.transformation_to(@dst) + end + + should "generate correct ImageMagick formatting string for W-formatted string" do + assert @geo = Paperclip::Geometry.parse("800") + assert_equal "800", @geo.to_s + end + + should "generate correct ImageMagick formatting string for Wx-formatted string" do + assert @geo = Paperclip::Geometry.parse("800x") + assert_equal "800", @geo.to_s + end + + should "generate correct ImageMagick formatting string for xH-formatted string" do + assert @geo = Paperclip::Geometry.parse("x600") + assert_equal "x600", @geo.to_s + end + + should "generate correct ImageMagick formatting string for WxH-formatted string" do + assert @geo = Paperclip::Geometry.parse("800x600") + assert_equal "800x600", @geo.to_s + end + + should "be generated from a file" do + file = File.join(File.dirname(__FILE__), "fixtures", "5k.png") + file = File.new(file, 'rb') + assert_nothing_raised{ @geo = Paperclip::Geometry.from_file(file) } + assert @geo.height > 0 + assert @geo.width > 0 + end + + should "be generated from a file path" do + file = File.join(File.dirname(__FILE__), "fixtures", "5k.png") + assert_nothing_raised{ @geo = Paperclip::Geometry.from_file(file) } + assert @geo.height > 0 + assert @geo.width > 0 + end + + should "not generate from a bad file" do + file = "/home/This File Does Not Exist.omg" + assert_raise(Paperclip::NotIdentifiedByImageMagickError){ @geo = Paperclip::Geometry.from_file(file) } + end + + [['vertical', 900, 1440, true, false, false, 1440, 900, 0.625], + ['horizontal', 1024, 768, false, true, false, 1024, 768, 1.3333], + ['square', 100, 100, false, false, true, 100, 100, 1]].each do |args| + context "performing calculations on a #{args[0]} viewport" do + setup do + @geo = Paperclip::Geometry.new(args[1], args[2]) + end + + should "#{args[3] ? "" : "not"} be vertical" do + assert_equal args[3], @geo.vertical? + end + + should "#{args[4] ? "" : "not"} be horizontal" do + assert_equal args[4], @geo.horizontal? + end + + should "#{args[5] ? "" : "not"} be square" do + assert_equal args[5], @geo.square? + end + + should "report that #{args[6]} is the larger dimension" do + assert_equal args[6], @geo.larger + end + + should "report that #{args[7]} is the smaller dimension" do + assert_equal args[7], @geo.smaller + end + + should "have an aspect ratio of #{args[8]}" do + assert_in_delta args[8], @geo.aspect, 0.0001 + end + end + end + + [[ [1000, 100], [64, 64], "x64", "64x64+288+0" ], + [ [100, 1000], [50, 950], "x950", "50x950+22+0" ], + [ [100, 1000], [50, 25], "50x", "50x25+0+237" ]]. each do |args| + context "of #{args[0].inspect} and given a Geometry #{args[1].inspect} and sent transform_to" do + setup do + @geo = Paperclip::Geometry.new(*args[0]) + @dst = Paperclip::Geometry.new(*args[1]) + @scale, @crop = @geo.transformation_to @dst, true + end + + should "be able to return the correct scaling transformation geometry #{args[2]}" do + assert_equal args[2], @scale + end + + should "be able to return the correct crop transformation geometry #{args[3]}" do + assert_equal args[3], @crop + end + end + end + end +end diff --git a/vendor/plugins/paperclip/test/helper.rb b/vendor/plugins/paperclip/test/helper.rb new file mode 100644 index 0000000..b004bc5 --- /dev/null +++ b/vendor/plugins/paperclip/test/helper.rb @@ -0,0 +1,158 @@ +require 'rubygems' +require 'tempfile' +require 'test/unit' + +require 'shoulda' +require 'mocha' + +case ENV['RAILS_VERSION'] +when '2.1' then + gem 'activerecord', '~>2.1.0' + gem 'activesupport', '~>2.1.0' +when '3.0' then + gem 'activerecord', '~>3.0.0' + gem 'activesupport', '~>3.0.0' +else + gem 'activerecord', '~>2.3.0' + gem 'activesupport', '~>2.3.0' +end + +require 'active_record' +require 'active_record/version' +require 'active_support' + +puts "Testing against version #{ActiveRecord::VERSION::STRING}" + +`ruby -e 'exit 0'` # Prime $? with a value. + +begin + require 'ruby-debug' +rescue LoadError => e + puts "debugger disabled" +end + +ROOT = File.join(File.dirname(__FILE__), '..') + +def silence_warnings + old_verbose, $VERBOSE = $VERBOSE, nil + yield +ensure + $VERBOSE = old_verbose +end + +class Test::Unit::TestCase + def setup + silence_warnings do + Object.const_set(:Rails, stub('Rails', :root => ROOT, :env => 'test')) + end + end +end + +$LOAD_PATH << File.join(ROOT, 'lib') +$LOAD_PATH << File.join(ROOT, 'lib', 'paperclip') + +require File.join(ROOT, 'lib', 'paperclip.rb') + +require 'shoulda_macros/paperclip' + +FIXTURES_DIR = File.join(File.dirname(__FILE__), "fixtures") +config = YAML::load(IO.read(File.dirname(__FILE__) + '/database.yml')) +ActiveRecord::Base.logger = ActiveSupport::BufferedLogger.new(File.dirname(__FILE__) + "/debug.log") +ActiveRecord::Base.establish_connection(config['test']) + +def reset_class class_name + ActiveRecord::Base.send(:include, Paperclip::Glue) + Object.send(:remove_const, class_name) rescue nil + klass = Object.const_set(class_name, Class.new(ActiveRecord::Base)) + klass.class_eval{ include Paperclip::Glue } + klass +end + +def reset_table table_name, &block + block ||= lambda { |table| true } + ActiveRecord::Base.connection.create_table :dummies, {:force => true}, &block +end + +def modify_table table_name, &block + ActiveRecord::Base.connection.change_table :dummies, &block +end + +def rebuild_model options = {} + ActiveRecord::Base.connection.create_table :dummies, :force => true do |table| + table.column :other, :string + table.column :avatar_file_name, :string + table.column :avatar_content_type, :string + table.column :avatar_file_size, :integer + table.column :avatar_updated_at, :datetime + table.column :avatar_fingerprint, :string + end + rebuild_class options +end + +def rebuild_class options = {} + ActiveRecord::Base.send(:include, Paperclip::Glue) + Object.send(:remove_const, "Dummy") rescue nil + Object.const_set("Dummy", Class.new(ActiveRecord::Base)) + Dummy.class_eval do + include Paperclip::Glue + has_attached_file :avatar, options + end +end + +class FakeModel + attr_accessor :avatar_file_name, + :avatar_file_size, + :avatar_last_updated, + :avatar_content_type, + :avatar_fingerprint, + :id + + def errors + @errors ||= [] + end + + def run_paperclip_callbacks name, *args + end + +end + +def attachment options + Paperclip::Attachment.new(:avatar, FakeModel.new, options) +end + +def silence_warnings + old_verbose, $VERBOSE = $VERBOSE, nil + yield +ensure + $VERBOSE = old_verbose +end + +def should_accept_dummy_class + should "accept the class" do + assert_accepts @matcher, @dummy_class + end + + should "accept an instance of that class" do + assert_accepts @matcher, @dummy_class.new + end +end + +def should_reject_dummy_class + should "reject the class" do + assert_rejects @matcher, @dummy_class + end + + should "reject an instance of that class" do + assert_rejects @matcher, @dummy_class.new + end +end + +def with_exitstatus_returning(code) + saved_exitstatus = $?.nil? ? 0 : $?.exitstatus + begin + `ruby -e 'exit #{code.to_i}'` + yield + ensure + `ruby -e 'exit #{saved_exitstatus.to_i}'` + end +end diff --git a/vendor/plugins/paperclip/test/integration_test.rb b/vendor/plugins/paperclip/test/integration_test.rb new file mode 100644 index 0000000..a1aafd6 --- /dev/null +++ b/vendor/plugins/paperclip/test/integration_test.rb @@ -0,0 +1,482 @@ +require 'test/helper' + +class IntegrationTest < Test::Unit::TestCase + context "Many models at once" do + setup do + rebuild_model + @file = File.new(File.join(FIXTURES_DIR, "5k.png"), 'rb') + 300.times do |i| + Dummy.create! :avatar => @file + end + end + + should "not exceed the open file limit" do + assert_nothing_raised do + dummies = Dummy.find(:all) + dummies.each { |dummy| dummy.avatar } + end + end + end + + context "An attachment" do + setup do + rebuild_model :styles => { :thumb => "50x50#" } + @dummy = Dummy.new + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummy.avatar = @file + assert @dummy.save + end + + teardown { @file.close } + + should "create its thumbnails properly" do + assert_match /\b50x50\b/, `identify "#{@dummy.avatar.path(:thumb)}"` + end + + context "redefining its attachment styles" do + setup do + Dummy.class_eval do + has_attached_file :avatar, :styles => { :thumb => "150x25#" } + has_attached_file :avatar, :styles => { :thumb => "150x25#", :dynamic => lambda { |a| '50x50#' } } + end + @d2 = Dummy.find(@dummy.id) + @d2.avatar.reprocess! + @d2.save + end + + should "create its thumbnails properly" do + assert_match /\b150x25\b/, `identify "#{@dummy.avatar.path(:thumb)}"` + assert_match /\b50x50\b/, `identify "#{@dummy.avatar.path(:dynamic)}"` + end + end + end + + context "A model that modifies its original" do + setup do + rebuild_model :styles => { :original => "2x2#" } + @dummy = Dummy.new + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummy.avatar = @file + end + + should "report the file size of the processed file and not the original" do + assert_not_equal @file.size, @dummy.avatar.size + end + + teardown { @file.close } + end + + context "A model with attachments scoped under an id" do + setup do + rebuild_model :styles => { :large => "100x100", + :medium => "50x50" }, + :path => ":rails_root/tmp/:id/:attachments/:style.:extension" + @dummy = Dummy.new + @file = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + @dummy.avatar = @file + end + + teardown { @file.close } + + context "when saved" do + setup do + @dummy.save + @saved_path = @dummy.avatar.path(:large) + end + + should "have a large file in the right place" do + assert File.exists?(@dummy.avatar.path(:large)) + end + + context "and deleted" do + setup do + @dummy.avatar.clear + @dummy.save + end + + should "not have a large file in the right place anymore" do + assert ! File.exists?(@saved_path) + end + + should "not have its next two parent directories" do + assert ! File.exists?(File.dirname(@saved_path)) + assert ! File.exists?(File.dirname(File.dirname(@saved_path))) + end + + before_should "not die if an unexpected SystemCallError happens" do + FileUtils.stubs(:rmdir).raises(Errno::EPIPE) + end + end + end + end + + context "A model with no attachment validation" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :default_style => :medium, + :url => "/:attachment/:class/:style/:id/:basename.:extension", + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + @dummy = Dummy.new + end + + should "have its definition return false when asked about whiny_thumbnails" do + assert ! Dummy.attachment_definitions[:avatar][:whiny_thumbnails] + end + + context "when validates_attachment_thumbnails is called" do + setup do + Dummy.validates_attachment_thumbnails :avatar + end + + should "have its definition return true when asked about whiny_thumbnails" do + assert_equal true, Dummy.attachment_definitions[:avatar][:whiny_thumbnails] + end + end + + context "redefined to have attachment validations" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :whiny_thumbnails => true, + :default_style => :medium, + :url => "/:attachment/:class/:style/:id/:basename.:extension", + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + end + + should "have its definition return true when asked about whiny_thumbnails" do + assert_equal true, Dummy.attachment_definitions[:avatar][:whiny_thumbnails] + end + end + end + + context "A model with no convert_options setting" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :default_style => :medium, + :url => "/:attachment/:class/:style/:id/:basename.:extension", + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + @dummy = Dummy.new + end + + should "have its definition return nil when asked about convert_options" do + assert ! Dummy.attachment_definitions[:avatar][:convert_options] + end + + context "redefined to have convert_options setting" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :convert_options => "-strip -depth 8", + :default_style => :medium, + :url => "/:attachment/:class/:style/:id/:basename.:extension", + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + end + + should "have its definition return convert_options value when asked about convert_options" do + assert_equal "-strip -depth 8", Dummy.attachment_definitions[:avatar][:convert_options] + end + end + end + + context "A model with a filesystem attachment" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :whiny_thumbnails => true, + :default_style => :medium, + :url => "/:attachment/:class/:style/:id/:basename.:extension", + :path => ":rails_root/tmp/:attachment/:class/:style/:id/:basename.:extension" + @dummy = Dummy.new + @file = File.new(File.join(FIXTURES_DIR, "5k.png"), 'rb') + @bad_file = File.new(File.join(FIXTURES_DIR, "bad.png"), 'rb') + + assert @dummy.avatar = @file + assert @dummy.valid?, @dummy.errors.full_messages.join(", ") + assert @dummy.save + end + + should "write and delete its files" do + [["434x66", :original], + ["300x46", :large], + ["100x15", :medium], + ["32x32", :thumb]].each do |geo, style| + cmd = %Q[identify -format "%wx%h" "#{@dummy.avatar.path(style)}"] + assert_equal geo, `#{cmd}`.chomp, cmd + end + + saved_paths = [:thumb, :medium, :large, :original].collect{|s| @dummy.avatar.path(s) } + + @d2 = Dummy.find(@dummy.id) + assert_equal "100x15", `identify -format "%wx%h" "#{@d2.avatar.path}"`.chomp + assert_equal "434x66", `identify -format "%wx%h" "#{@d2.avatar.path(:original)}"`.chomp + assert_equal "300x46", `identify -format "%wx%h" "#{@d2.avatar.path(:large)}"`.chomp + assert_equal "100x15", `identify -format "%wx%h" "#{@d2.avatar.path(:medium)}"`.chomp + assert_equal "32x32", `identify -format "%wx%h" "#{@d2.avatar.path(:thumb)}"`.chomp + + @dummy.avatar = "not a valid file but not nil" + assert_equal File.basename(@file.path), @dummy.avatar_file_name + assert @dummy.valid? + assert @dummy.save + + saved_paths.each do |p| + assert File.exists?(p) + end + + @dummy.avatar.clear + assert_nil @dummy.avatar_file_name + assert @dummy.valid? + assert @dummy.save + + saved_paths.each do |p| + assert ! File.exists?(p) + end + + @d2 = Dummy.find(@dummy.id) + assert_nil @d2.avatar_file_name + end + + should "work exactly the same when new as when reloaded" do + @d2 = Dummy.find(@dummy.id) + + assert_equal @dummy.avatar_file_name, @d2.avatar_file_name + [:thumb, :medium, :large, :original].each do |style| + assert_equal @dummy.avatar.path(style), @d2.avatar.path(style) + end + + saved_paths = [:thumb, :medium, :large, :original].collect{|s| @dummy.avatar.path(s) } + + @d2.avatar.clear + assert @d2.save + + saved_paths.each do |p| + assert ! File.exists?(p) + end + end + + should "know the difference between good files, bad files, and not files" do + expected = @dummy.avatar.to_file + @dummy.avatar = "not a file" + assert @dummy.valid? + assert_equal expected.path, @dummy.avatar.path + expected.close + + @dummy.avatar = @bad_file + assert ! @dummy.valid? + end + + should "know the difference between good files, bad files, and not files when validating" do + Dummy.validates_attachment_presence :avatar + @d2 = Dummy.find(@dummy.id) + @d2.avatar = @file + assert @d2.valid?, @d2.errors.full_messages.inspect + @d2.avatar = @bad_file + assert ! @d2.valid? + end + + should "be able to reload without saving and not have the file disappear" do + @dummy.avatar = @file + assert @dummy.save + @dummy.avatar.clear + assert_nil @dummy.avatar_file_name + @dummy.reload + assert_equal "5k.png", @dummy.avatar_file_name + end + + context "that is assigned its file from another Paperclip attachment" do + setup do + @dummy2 = Dummy.new + @file2 = File.new(File.join(FIXTURES_DIR, "12k.png"), 'rb') + assert @dummy2.avatar = @file2 + @dummy2.save + end + + should "work when assigned a file" do + assert_not_equal `identify -format "%wx%h" "#{@dummy.avatar.path(:original)}"`, + `identify -format "%wx%h" "#{@dummy2.avatar.path(:original)}"` + + assert @dummy.avatar = @dummy2.avatar + @dummy.save + assert_equal `identify -format "%wx%h" "#{@dummy.avatar.path(:original)}"`, + `identify -format "%wx%h" "#{@dummy2.avatar.path(:original)}"` + end + end + + end + + context "A model with an attachments association and a Paperclip attachment" do + setup do + Dummy.class_eval do + has_many :attachments, :class_name => 'Dummy' + end + + @dummy = Dummy.new + @dummy.avatar = File.new(File.join(File.dirname(__FILE__), + "fixtures", + "5k.png"), 'rb') + end + + should "should not error when saving" do + assert_nothing_raised do + @dummy.save! + end + end + end + + if ENV['S3_TEST_BUCKET'] + def s3_files_for attachment + [:thumb, :medium, :large, :original].inject({}) do |files, style| + data = `curl "#{attachment.url(style)}" 2>/dev/null`.chomp + t = Tempfile.new("paperclip-test") + t.binmode + t.write(data) + t.rewind + files[style] = t + files + end + end + + def s3_headers_for attachment, style + `curl --head "#{attachment.url(style)}" 2>/dev/null`.split("\n").inject({}) do |h,head| + split_head = head.chomp.split(/\s*:\s*/, 2) + h[split_head.first.downcase] = split_head.last unless split_head.empty? + h + end + end + + context "A model with an S3 attachment" do + setup do + rebuild_model :styles => { :large => "300x300>", + :medium => "100x100", + :thumb => ["32x32#", :gif] }, + :storage => :s3, + :whiny_thumbnails => true, + :s3_credentials => File.new(File.join(File.dirname(__FILE__), "s3.yml")), + :default_style => :medium, + :bucket => ENV['S3_TEST_BUCKET'], + :path => ":class/:attachment/:id/:style/:basename.:extension" + @dummy = Dummy.new + @file = File.new(File.join(FIXTURES_DIR, "5k.png"), 'rb') + @bad_file = File.new(File.join(FIXTURES_DIR, "bad.png"), 'rb') + + assert @dummy.avatar = @file + assert @dummy.valid? + assert @dummy.save + + @files_on_s3 = s3_files_for @dummy.avatar + end + + should "have the same contents as the original" do + @file.rewind + assert_equal @file.read, @files_on_s3[:original].read + end + + should "write and delete its files" do + [["434x66", :original], + ["300x46", :large], + ["100x15", :medium], + ["32x32", :thumb]].each do |geo, style| + cmd = %Q[identify -format "%wx%h" "#{@files_on_s3[style].path}"] + assert_equal geo, `#{cmd}`.chomp, cmd + end + + @d2 = Dummy.find(@dummy.id) + @d2_files = s3_files_for @d2.avatar + [["434x66", :original], + ["300x46", :large], + ["100x15", :medium], + ["32x32", :thumb]].each do |geo, style| + cmd = %Q[identify -format "%wx%h" "#{@d2_files[style].path}"] + assert_equal geo, `#{cmd}`.chomp, cmd + end + + @dummy.avatar = "not a valid file but not nil" + assert_equal File.basename(@file.path), @dummy.avatar_file_name + assert @dummy.valid? + assert @dummy.save + + [:thumb, :medium, :large, :original].each do |style| + assert @dummy.avatar.exists?(style) + end + + @dummy.avatar.clear + assert_nil @dummy.avatar_file_name + assert @dummy.valid? + assert @dummy.save + + [:thumb, :medium, :large, :original].each do |style| + assert ! @dummy.avatar.exists?(style) + end + + @d2 = Dummy.find(@dummy.id) + assert_nil @d2.avatar_file_name + end + + should "work exactly the same when new as when reloaded" do + @d2 = Dummy.find(@dummy.id) + + assert_equal @dummy.avatar_file_name, @d2.avatar_file_name + [:thumb, :medium, :large, :original].each do |style| + assert_equal @dummy.avatar.to_file(style).read, @d2.avatar.to_file(style).read + end + + saved_keys = [:thumb, :medium, :large, :original].collect{|s| @dummy.avatar.to_file(s) } + + @d2.avatar.clear + assert @d2.save + + [:thumb, :medium, :large, :original].each do |style| + assert ! @dummy.avatar.exists?(style) + end + end + + should "know the difference between good files, bad files, not files, and nil" do + expected = @dummy.avatar.to_file + @dummy.avatar = "not a file" + assert @dummy.valid? + assert_equal expected.read, @dummy.avatar.to_file.read + + @dummy.avatar = @bad_file + assert ! @dummy.valid? + @dummy.avatar = nil + assert @dummy.valid? + + Dummy.validates_attachment_presence :avatar + @d2 = Dummy.find(@dummy.id) + @d2.avatar = @file + assert @d2.valid? + @d2.avatar = @bad_file + assert ! @d2.valid? + @d2.avatar = nil + assert ! @d2.valid? + end + + should "be able to reload without saving and not have the file disappear" do + @dummy.avatar = @file + assert @dummy.save + @dummy.avatar = nil + assert_nil @dummy.avatar_file_name + @dummy.reload + assert_equal "5k.png", @dummy.avatar_file_name + end + + should "have the right content type" do + headers = s3_headers_for(@dummy.avatar, :original) + assert_equal 'image/png', headers['content-type'] + end + end + end +end + diff --git a/vendor/plugins/paperclip/test/interpolations_test.rb b/vendor/plugins/paperclip/test/interpolations_test.rb new file mode 100644 index 0000000..1d5d69e --- /dev/null +++ b/vendor/plugins/paperclip/test/interpolations_test.rb @@ -0,0 +1,127 @@ +require 'test/helper' + +class InterpolationsTest < Test::Unit::TestCase + should "return all methods but the infrastructure when sent #all" do + methods = Paperclip::Interpolations.all + assert ! methods.include?(:[]) + assert ! methods.include?(:[]=) + assert ! methods.include?(:all) + methods.each do |m| + assert Paperclip::Interpolations.respond_to?(m) + end + end + + should "return the Rails.root" do + assert_equal Rails.root, Paperclip::Interpolations.rails_root(:attachment, :style) + end + + should "return the Rails.env" do + assert_equal Rails.env, Paperclip::Interpolations.rails_env(:attachment, :style) + end + + should "return the class of the Interpolations module when called with no params" do + assert_equal Module, Paperclip::Interpolations.class + end + + should "return the class of the instance" do + attachment = mock + attachment.expects(:instance).returns(attachment) + attachment.expects(:class).returns("Thing") + assert_equal "things", Paperclip::Interpolations.class(attachment, :style) + end + + should "return the basename of the file" do + attachment = mock + attachment.expects(:original_filename).returns("one.jpg").times(2) + assert_equal "one", Paperclip::Interpolations.basename(attachment, :style) + end + + should "return the extension of the file" do + attachment = mock + attachment.expects(:original_filename).returns("one.jpg") + attachment.expects(:styles).returns({}) + assert_equal "jpg", Paperclip::Interpolations.extension(attachment, :style) + end + + should "return the extension of the file as the format if defined in the style" do + attachment = mock + attachment.expects(:original_filename).never + attachment.expects(:styles).returns({:style => {:format => "png"}}) + assert_equal "png", Paperclip::Interpolations.extension(attachment, :style) + end + + should "return the id of the attachment" do + attachment = mock + attachment.expects(:id).returns(23) + attachment.expects(:instance).returns(attachment) + assert_equal 23, Paperclip::Interpolations.id(attachment, :style) + end + + should "return the partitioned id of the attachment" do + attachment = mock + attachment.expects(:id).returns(23) + attachment.expects(:instance).returns(attachment) + assert_equal "000/000/023", Paperclip::Interpolations.id_partition(attachment, :style) + end + + should "return the name of the attachment" do + attachment = mock + attachment.expects(:name).returns("file") + assert_equal "files", Paperclip::Interpolations.attachment(attachment, :style) + end + + should "return the style" do + assert_equal :style, Paperclip::Interpolations.style(:attachment, :style) + end + + should "return the default style" do + attachment = mock + attachment.expects(:default_style).returns(:default_style) + assert_equal :default_style, Paperclip::Interpolations.style(attachment, nil) + end + + should "reinterpolate :url" do + attachment = mock + attachment.expects(:url).with(:style, false).returns("1234") + assert_equal "1234", Paperclip::Interpolations.url(attachment, :style) + end + + should "raise if infinite loop detcted reinterpolating :url" do + attachment = Object.new + class << attachment + def url(*args) + Paperclip::Interpolations.url(self, :style) + end + end + assert_raises(Paperclip::InfiniteInterpolationError){ Paperclip::Interpolations.url(attachment, :style) } + end + + should "return the filename as basename.extension" do + attachment = mock + attachment.expects(:styles).returns({}) + attachment.expects(:original_filename).returns("one.jpg").times(3) + assert_equal "one.jpg", Paperclip::Interpolations.filename(attachment, :style) + end + + should "return the filename as basename.extension when format supplied" do + attachment = mock + attachment.expects(:styles).returns({:style => {:format => :png}}) + attachment.expects(:original_filename).returns("one.jpg").times(2) + assert_equal "one.png", Paperclip::Interpolations.filename(attachment, :style) + end + + should "return the timestamp" do + now = Time.now + attachment = mock + attachment.expects(:instance_read).with(:updated_at).returns(now) + assert_equal now.to_s, Paperclip::Interpolations.timestamp(attachment, :style) + end + + should "call all expected interpolations with the given arguments" do + Paperclip::Interpolations.expects(:id).with(:attachment, :style).returns(1234) + Paperclip::Interpolations.expects(:attachment).with(:attachment, :style).returns("attachments") + Paperclip::Interpolations.expects(:notreal).never + value = Paperclip::Interpolations.interpolate(":notreal/:id/:attachment", :attachment, :style) + assert_equal ":notreal/1234/attachments", value + end +end diff --git a/vendor/plugins/paperclip/test/iostream_test.rb b/vendor/plugins/paperclip/test/iostream_test.rb new file mode 100644 index 0000000..9da7261 --- /dev/null +++ b/vendor/plugins/paperclip/test/iostream_test.rb @@ -0,0 +1,78 @@ +require 'test/helper' + +class IOStreamTest < Test::Unit::TestCase + context "IOStream" do + should "be included in IO, File, Tempfile, and StringIO" do + [IO, File, Tempfile, StringIO].each do |klass| + assert klass.included_modules.include?(IOStream), "Not in #{klass}" + end + end + end + + context "A file" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb') + end + + teardown { @file.close } + + context "that is sent #stream_to" do + + context "and given a String" do + setup do + FileUtils.mkdir_p(File.join(ROOT, 'tmp')) + assert @result = @file.stream_to(File.join(ROOT, 'tmp', 'iostream.string.test')) + end + + should "return a File" do + assert @result.is_a?(File) + end + + should "contain the same data as the original file" do + @file.rewind; @result.rewind + assert_equal @file.read, @result.read + end + end + + context "and given a Tempfile" do + setup do + tempfile = Tempfile.new('iostream.test') + tempfile.binmode + assert @result = @file.stream_to(tempfile) + end + + should "return a Tempfile" do + assert @result.is_a?(Tempfile) + end + + should "contain the same data as the original file" do + @file.rewind; @result.rewind + assert_equal @file.read, @result.read + end + end + + end + + context "that is sent #to_tempfile" do + setup do + assert @tempfile = @file.to_tempfile + end + + should "convert it to a Paperclip Tempfile" do + assert @tempfile.is_a?(Paperclip::Tempfile) + end + + should "have the name be based on the original_filename" do + name = File.basename(@file.path) + extension = File.extname(name) + basename = File.basename(name, extension) + assert_match %r[^stream.*?#{Regexp.quote(extension)}], File.basename(@tempfile.path) + end + + should "have the Tempfile contain the same data as the file" do + @file.rewind; @tempfile.rewind + assert_equal @file.read, @tempfile.read + end + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb new file mode 100644 index 0000000..499c2ca --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/have_attached_file_matcher_test.rb @@ -0,0 +1,24 @@ +require 'test/helper' + +class HaveAttachedFileMatcherTest < Test::Unit::TestCase + context "have_attached_file" do + setup do + @dummy_class = reset_class "Dummy" + reset_table "dummies" + @matcher = self.class.have_attached_file(:avatar) + end + + context "given a class with no attachment" do + should_reject_dummy_class + end + + context "given a class with an attachment" do + setup do + modify_table("dummies"){|d| d.string :avatar_file_name } + @dummy_class.has_attached_file :avatar + end + + should_accept_dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb new file mode 100644 index 0000000..e787c4c --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_content_type_matcher_test.rb @@ -0,0 +1,47 @@ +require 'test/helper' + +class ValidateAttachmentContentTypeMatcherTest < Test::Unit::TestCase + context "validate_attachment_content_type" do + setup do + reset_table("dummies") do |d| + d.string :title + d.string :avatar_file_name + d.string :avatar_content_type + end + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + @matcher = self.class.validate_attachment_content_type(:avatar). + allowing(%w(image/png image/jpeg)). + rejecting(%w(audio/mp3 application/octet-stream)) + end + + context "given a class with no validation" do + should_reject_dummy_class + end + + context "given a class with a validation that doesn't match" do + setup do + @dummy_class.validates_attachment_content_type :avatar, :content_type => %r{audio/.*} + end + + should_reject_dummy_class + end + + context "given a class with a matching validation" do + setup do + @dummy_class.validates_attachment_content_type :avatar, :content_type => %r{image/.*} + end + + should_accept_dummy_class + end + + context "given a class with other validations but matching types" do + setup do + @dummy_class.validates_presence_of :title + @dummy_class.validates_attachment_content_type :avatar, :content_type => %r{image/.*} + end + + should_accept_dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb new file mode 100644 index 0000000..718dab8 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_presence_matcher_test.rb @@ -0,0 +1,26 @@ +require 'test/helper' + +class ValidateAttachmentPresenceMatcherTest < Test::Unit::TestCase + context "validate_attachment_presence" do + setup do + reset_table("dummies") do |d| + d.string :avatar_file_name + end + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + @matcher = self.class.validate_attachment_presence(:avatar) + end + + context "given a class with no validation" do + should_reject_dummy_class + end + + context "given a class with a matching validation" do + setup do + @dummy_class.validates_attachment_presence :avatar + end + + should_accept_dummy_class + end + end +end diff --git a/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb b/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb new file mode 100644 index 0000000..b75b491 --- /dev/null +++ b/vendor/plugins/paperclip/test/matchers/validate_attachment_size_matcher_test.rb @@ -0,0 +1,51 @@ +require 'test/helper' + +class ValidateAttachmentSizeMatcherTest < Test::Unit::TestCase + context "validate_attachment_size" do + setup do + reset_table("dummies") do |d| + d.string :avatar_file_name + d.integer :avatar_file_size + end + @dummy_class = reset_class "Dummy" + @dummy_class.has_attached_file :avatar + end + + context "of limited size" do + setup{ @matcher = self.class.validate_attachment_size(:avatar).in(256..1024) } + + context "given a class with no validation" do + should_reject_dummy_class + end + + context "given a class with a validation that's too high" do + setup { @dummy_class.validates_attachment_size :avatar, :in => 256..2048 } + should_reject_dummy_class + end + + context "given a class with a validation that's too low" do + setup { @dummy_class.validates_attachment_size :avatar, :in => 0..1024 } + should_reject_dummy_class + end + + context "given a class with a validation that matches" do + setup { @dummy_class.validates_attachment_size :avatar, :in => 256..1024 } + should_accept_dummy_class + end + end + + context "validates_attachment_size with infinite range" do + setup{ @matcher = self.class.validate_attachment_size(:avatar) } + + context "given a class with an upper limit" do + setup { @dummy_class.validates_attachment_size :avatar, :less_than => 1 } + should_accept_dummy_class + end + + context "given a class with no upper limit" do + setup { @dummy_class.validates_attachment_size :avatar, :greater_than => 1 } + should_accept_dummy_class + end + end + end +end diff --git a/vendor/plugins/paperclip/test/paperclip_test.rb b/vendor/plugins/paperclip/test/paperclip_test.rb new file mode 100644 index 0000000..8d306ed --- /dev/null +++ b/vendor/plugins/paperclip/test/paperclip_test.rb @@ -0,0 +1,254 @@ +require 'test/helper' + +class PaperclipTest < Test::Unit::TestCase + context "Calling Paperclip.run" do + setup do + Paperclip.options[:image_magick_path] = nil + Paperclip.options[:command_path] = nil + Paperclip::CommandLine.stubs(:'`') + end + + should "execute the right command with :image_magick_path" do + Paperclip.options[:image_magick_path] = "/usr/bin" + Paperclip.expects(:log).with(includes('[DEPRECATION]')) + Paperclip.expects(:log).with(regexp_matches(%r{/usr/bin/convert ['"]one.jpg['"] ['"]two.jpg['"]})) + Paperclip::CommandLine.expects(:"`").with(regexp_matches(%r{/usr/bin/convert ['"]one.jpg['"] ['"]two.jpg['"]})) + Paperclip.run("convert", ":one :two", :one => "one.jpg", :two => "two.jpg") + end + + should "execute the right command with :command_path" do + Paperclip.options[:command_path] = "/usr/bin" + Paperclip::CommandLine.expects(:"`").with(regexp_matches(%r{/usr/bin/convert ['"]one.jpg['"] ['"]two.jpg['"]})) + Paperclip.run("convert", ":one :two", :one => "one.jpg", :two => "two.jpg") + end + + should "execute the right command with no path" do + Paperclip::CommandLine.expects(:"`").with(regexp_matches(%r{convert ['"]one.jpg['"] ['"]two.jpg['"]})) + Paperclip.run("convert", ":one :two", :one => "one.jpg", :two => "two.jpg") + end + + should "tell you the command isn't there if the shell returns 127" do + with_exitstatus_returning(127) do + assert_raises(Paperclip::CommandNotFoundError) do + Paperclip.run("command") + end + end + end + + should "tell you the command isn't there if an ENOENT is raised" do + assert_raises(Paperclip::CommandNotFoundError) do + Paperclip::CommandLine.stubs(:"`").raises(Errno::ENOENT) + Paperclip.run("command") + end + end + end + + should "raise when sent #processor and the name of a class that exists but isn't a subclass of Processor" do + assert_raises(Paperclip::PaperclipError){ Paperclip.processor(:attachment) } + end + + should "raise when sent #processor and the name of a class that doesn't exist" do + assert_raises(NameError){ Paperclip.processor(:boogey_man) } + end + + should "return a class when sent #processor and the name of a class under Paperclip" do + assert_equal ::Paperclip::Thumbnail, Paperclip.processor(:thumbnail) + end + + context "An ActiveRecord model with an 'avatar' attachment" do + setup do + rebuild_model :path => "tmp/:class/omg/:style.:extension" + @file = File.new(File.join(FIXTURES_DIR, "5k.png"), 'rb') + end + + teardown { @file.close } + + should "not error when trying to also create a 'blah' attachment" do + assert_nothing_raised do + Dummy.class_eval do + has_attached_file :blah + end + end + end + + context "that is attr_protected" do + setup do + Dummy.class_eval do + attr_protected :avatar + end + @dummy = Dummy.new + end + + should "not assign the avatar on mass-set" do + @dummy.attributes = { :other => "I'm set!", + :avatar => @file } + + assert_equal "I'm set!", @dummy.other + assert ! @dummy.avatar? + end + + should "still allow assigment on normal set" do + @dummy.other = "I'm set!" + @dummy.avatar = @file + + assert_equal "I'm set!", @dummy.other + assert @dummy.avatar? + end + end + + context "with a subclass" do + setup do + class ::SubDummy < Dummy; end + end + + should "be able to use the attachment from the subclass" do + assert_nothing_raised do + @subdummy = SubDummy.create(:avatar => @file) + end + end + + should "be able to see the attachment definition from the subclass's class" do + assert_equal "tmp/:class/omg/:style.:extension", + SubDummy.attachment_definitions[:avatar][:path] + end + + teardown do + Object.send(:remove_const, "SubDummy") rescue nil + end + end + + should "have an #avatar method" do + assert Dummy.new.respond_to?(:avatar) + end + + should "have an #avatar= method" do + assert Dummy.new.respond_to?(:avatar=) + end + + context "that is valid" do + setup do + @dummy = Dummy.new + @dummy.avatar = @file + end + + should "be valid" do + assert @dummy.valid? + end + end + + context "a validation with an if guard clause" do + setup do + Dummy.send(:"validates_attachment_presence", :avatar, :if => lambda{|i| i.foo }) + @dummy = Dummy.new + @dummy.stubs(:avatar_file_name).returns(nil) + end + + should "attempt validation if the guard returns true" do + @dummy.expects(:foo).returns(true) + assert ! @dummy.valid? + end + + should "not attempt validation if the guard returns false" do + @dummy.expects(:foo).returns(false) + assert @dummy.valid? + end + end + + context "a validation with an unless guard clause" do + setup do + Dummy.send(:"validates_attachment_presence", :avatar, :unless => lambda{|i| i.foo }) + @dummy = Dummy.new + @dummy.stubs(:avatar_file_name).returns(nil) + end + + should "attempt validation if the guard returns true" do + @dummy.expects(:foo).returns(false) + assert ! @dummy.valid? + end + + should "not attempt validation if the guard returns false" do + @dummy.expects(:foo).returns(true) + assert @dummy.valid? + end + end + + should "not have Attachment in the ActiveRecord::Base namespace" do + assert_raises(NameError) do + ActiveRecord::Base::Attachment + end + end + + def self.should_validate validation, options, valid_file, invalid_file + context "with #{validation} validation and #{options.inspect} options" do + setup do + rebuild_class + Dummy.send(:"validates_attachment_#{validation}", :avatar, options) + @dummy = Dummy.new + end + context "and assigning nil" do + setup do + @dummy.avatar = nil + @dummy.valid? + end + if validation == :presence + should "have an error on the attachment" do + assert @dummy.errors[:avatar_file_name] + end + else + should "not have an error on the attachment" do + assert @dummy.errors.blank?, @dummy.errors.full_messages.join(", ") + end + end + end + context "and assigned a valid file" do + setup do + @dummy.avatar = valid_file + @dummy.valid? + end + should "not have an error when assigned a valid file" do + assert_equal 0, @dummy.errors.length, @dummy.errors.full_messages.join(", ") + end + end + context "and assigned an invalid file" do + setup do + @dummy.avatar = invalid_file + @dummy.valid? + end + should "have an error when assigned a valid file" do + assert @dummy.errors.length > 0 + end + end + end + end + + [[:presence, {}, "5k.png", nil], + [:size, {:in => 1..10240}, "5k.png", "12k.png"], + [:size, {:less_than => 10240}, "5k.png", "12k.png"], + [:size, {:greater_than => 8096}, "12k.png", "5k.png"], + [:content_type, {:content_type => "image/png"}, "5k.png", "text.txt"], + [:content_type, {:content_type => "text/plain"}, "text.txt", "5k.png"], + [:content_type, {:content_type => %r{image/.*}}, "5k.png", "text.txt"]].each do |args| + validation, options, valid_file, invalid_file = args + valid_file &&= File.open(File.join(FIXTURES_DIR, valid_file), "rb") + invalid_file &&= File.open(File.join(FIXTURES_DIR, invalid_file), "rb") + + should_validate validation, options, valid_file, invalid_file + end + + context "with size validation and less_than 10240 option" do + context "and assigned an invalid file" do + setup do + Dummy.send(:"validates_attachment_size", :avatar, :less_than => 10240) + @dummy = Dummy.new + @dummy.avatar &&= File.open(File.join(FIXTURES_DIR, "12k.png"), "rb") + @dummy.valid? + end + + should "have a file size min/max error message" do + assert [@dummy.errors[:avatar_file_size]].flatten.any?{|error| error =~ %r/between 0 and 10240 bytes/ } + end + end + end + + end +end diff --git a/vendor/plugins/paperclip/test/processor_test.rb b/vendor/plugins/paperclip/test/processor_test.rb new file mode 100644 index 0000000..a05f0a9 --- /dev/null +++ b/vendor/plugins/paperclip/test/processor_test.rb @@ -0,0 +1,10 @@ +require 'test/helper' + +class ProcessorTest < Test::Unit::TestCase + should "instantiate and call #make when sent #make to the class" do + processor = mock + processor.expects(:make).with() + Paperclip::Processor.expects(:new).with(:one, :two, :three).returns(processor) + Paperclip::Processor.make(:one, :two, :three) + end +end diff --git a/vendor/plugins/paperclip/test/storage_test.rb b/vendor/plugins/paperclip/test/storage_test.rb new file mode 100644 index 0000000..68ff537 --- /dev/null +++ b/vendor/plugins/paperclip/test/storage_test.rb @@ -0,0 +1,358 @@ +require 'test/helper' +require 'aws/s3' + +class StorageTest < Test::Unit::TestCase + def rails_env(env) + silence_warnings do + Object.const_set(:Rails, stub('Rails', :env => env)) + end + end + + context "Parsing S3 credentials" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :bucket => "testing", + :s3_credentials => {:not => :important} + + @dummy = Dummy.new + @avatar = @dummy.avatar + end + + should "get the correct credentials when RAILS_ENV is production" do + rails_env("production") + assert_equal({:key => "12345"}, + @avatar.parse_credentials('production' => {:key => '12345'}, + :development => {:key => "54321"})) + end + + should "get the correct credentials when RAILS_ENV is development" do + rails_env("development") + assert_equal({:key => "54321"}, + @avatar.parse_credentials('production' => {:key => '12345'}, + :development => {:key => "54321"})) + end + + should "return the argument if the key does not exist" do + rails_env("not really an env") + assert_equal({:test => "12345"}, @avatar.parse_credentials(:test => "12345")) + end + end + + context "" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :s3_credentials => {}, + :bucket => "bucket", + :path => ":attachment/:basename.:extension", + :url => ":s3_path_url" + @dummy = Dummy.new + @dummy.avatar = StringIO.new(".") + end + + should "return a url based on an S3 path" do + assert_match %r{^http://s3.amazonaws.com/bucket/avatars/stringio.txt}, @dummy.avatar.url + end + end + context "" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :s3_credentials => {}, + :bucket => "bucket", + :path => ":attachment/:basename.:extension", + :url => ":s3_domain_url" + @dummy = Dummy.new + @dummy.avatar = StringIO.new(".") + end + + should "return a url based on an S3 subdomain" do + assert_match %r{^http://bucket.s3.amazonaws.com/avatars/stringio.txt}, @dummy.avatar.url + end + end + context "" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :s3_credentials => { + :production => { :bucket => "prod_bucket" }, + :development => { :bucket => "dev_bucket" } + }, + :s3_host_alias => "something.something.com", + :path => ":attachment/:basename.:extension", + :url => ":s3_alias_url" + @dummy = Dummy.new + @dummy.avatar = StringIO.new(".") + end + + should "return a url based on the host_alias" do + assert_match %r{^http://something.something.com/avatars/stringio.txt}, @dummy.avatar.url + end + end + + context "Generating a url with an expiration" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :s3_credentials => { + :production => { :bucket => "prod_bucket" }, + :development => { :bucket => "dev_bucket" } + }, + :s3_host_alias => "something.something.com", + :path => ":attachment/:basename.:extension", + :url => ":s3_alias_url" + + rails_env("production") + + @dummy = Dummy.new + @dummy.avatar = StringIO.new(".") + + AWS::S3::S3Object.expects(:url_for).with("avatars/stringio.txt", "prod_bucket", { :expires_in => 3600 }) + + @dummy.avatar.expiring_url + end + + should "should succeed" do + assert true + end + end + + context "Parsing S3 credentials with a bucket in them" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :s3_credentials => { + :production => { :bucket => "prod_bucket" }, + :development => { :bucket => "dev_bucket" } + } + @dummy = Dummy.new + end + + should "get the right bucket in production" do + rails_env("production") + assert_equal "prod_bucket", @dummy.avatar.bucket_name + end + + should "get the right bucket in development" do + rails_env("development") + assert_equal "dev_bucket", @dummy.avatar.bucket_name + end + end + + context "An attachment with S3 storage" do + setup do + rebuild_model :storage => :s3, + :bucket => "testing", + :path => ":attachment/:style/:basename.:extension", + :s3_credentials => { + 'access_key_id' => "12345", + 'secret_access_key' => "54321" + } + end + + should "be extended by the S3 module" do + assert Dummy.new.avatar.is_a?(Paperclip::Storage::S3) + end + + should "not be extended by the Filesystem module" do + assert ! Dummy.new.avatar.is_a?(Paperclip::Storage::Filesystem) + end + + context "when assigned" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') + @dummy = Dummy.new + @dummy.avatar = @file + end + + teardown { @file.close } + + should "not get a bucket to get a URL" do + @dummy.avatar.expects(:s3).never + @dummy.avatar.expects(:s3_bucket).never + assert_match %r{^http://s3\.amazonaws\.com/testing/avatars/original/5k\.png}, @dummy.avatar.url + end + + context "and saved" do + setup do + AWS::S3::S3Object.stubs(:store).with(@dummy.avatar.path, anything, 'testing', :content_type => 'image/png', :access => :public_read) + @dummy.save + end + + should "succeed" do + assert true + end + end + + context "and saved without a bucket" do + setup do + class AWS::S3::NoSuchBucket < AWS::S3::ResponseError + # Force the class to be created as a proper subclass of ResponseError thanks to AWS::S3's autocreation of exceptions + end + AWS::S3::Bucket.expects(:create).with("testing") + AWS::S3::S3Object.stubs(:store).raises(AWS::S3::NoSuchBucket.new(:message, :response)).then.returns(true) + @dummy.save + end + + should "succeed" do + assert true + end + end + + context "and remove" do + setup do + AWS::S3::S3Object.stubs(:exists?).returns(true) + AWS::S3::S3Object.stubs(:delete) + @dummy.destroy_attached_files + end + + should "succeed" do + assert true + end + end + end + end + + context "An attachment with S3 storage and bucket defined as a Proc" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :bucket => lambda { |attachment| "bucket_#{attachment.instance.other}" }, + :s3_credentials => {:not => :important} + end + + should "get the right bucket name" do + assert "bucket_a", Dummy.new(:other => 'a').avatar.bucket_name + assert "bucket_b", Dummy.new(:other => 'b').avatar.bucket_name + end + end + + context "An attachment with S3 storage and specific s3 headers set" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + rebuild_model :storage => :s3, + :bucket => "testing", + :path => ":attachment/:style/:basename.:extension", + :s3_credentials => { + 'access_key_id' => "12345", + 'secret_access_key' => "54321" + }, + :s3_headers => {'Cache-Control' => 'max-age=31557600'} + end + + context "when assigned" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') + @dummy = Dummy.new + @dummy.avatar = @file + end + + teardown { @file.close } + + context "and saved" do + setup do + AWS::S3::Base.stubs(:establish_connection!) + AWS::S3::S3Object.stubs(:store).with(@dummy.avatar.path, + anything, + 'testing', + :content_type => 'image/png', + :access => :public_read, + 'Cache-Control' => 'max-age=31557600') + @dummy.save + end + + should "succeed" do + assert true + end + end + end + end + + context "with S3 credentials supplied as Pathname" do + setup do + ENV['S3_KEY'] = 'pathname_key' + ENV['S3_BUCKET'] = 'pathname_bucket' + ENV['S3_SECRET'] = 'pathname_secret' + + rails_env('test') + + rebuild_model :storage => :s3, + :s3_credentials => Pathname.new(File.join(File.dirname(__FILE__))).join("fixtures/s3.yml") + + Dummy.delete_all + @dummy = Dummy.new + end + + should "parse the credentials" do + assert_equal 'pathname_bucket', @dummy.avatar.bucket_name + assert_equal 'pathname_key', AWS::S3::Base.connection.options[:access_key_id] + assert_equal 'pathname_secret', AWS::S3::Base.connection.options[:secret_access_key] + end + end + + context "with S3 credentials in a YAML file" do + setup do + ENV['S3_KEY'] = 'env_key' + ENV['S3_BUCKET'] = 'env_bucket' + ENV['S3_SECRET'] = 'env_secret' + + rails_env('test') + + rebuild_model :storage => :s3, + :s3_credentials => File.new(File.join(File.dirname(__FILE__), "fixtures/s3.yml")) + + Dummy.delete_all + + @dummy = Dummy.new + end + + should "run it the file through ERB" do + assert_equal 'env_bucket', @dummy.avatar.bucket_name + assert_equal 'env_key', AWS::S3::Base.connection.options[:access_key_id] + assert_equal 'env_secret', AWS::S3::Base.connection.options[:secret_access_key] + end + end + + unless ENV["S3_TEST_BUCKET"].blank? + context "Using S3 for real, an attachment with S3 storage" do + setup do + rebuild_model :styles => { :thumb => "100x100", :square => "32x32#" }, + :storage => :s3, + :bucket => ENV["S3_TEST_BUCKET"], + :path => ":class/:attachment/:id/:style.:extension", + :s3_credentials => File.new(File.join(File.dirname(__FILE__), "s3.yml")) + + Dummy.delete_all + @dummy = Dummy.new + end + + should "be extended by the S3 module" do + assert Dummy.new.avatar.is_a?(Paperclip::Storage::S3) + end + + context "when assigned" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), 'fixtures', '5k.png'), 'rb') + @dummy.avatar = @file + end + + teardown { @file.close } + + should "still return a Tempfile when sent #to_file" do + assert_equal Paperclip::Tempfile, @dummy.avatar.to_file.class + end + + context "and saved" do + setup do + @dummy.save + end + + should "be on S3" do + assert true + end + end + end + end + end +end diff --git a/vendor/plugins/paperclip/test/style_test.rb b/vendor/plugins/paperclip/test/style_test.rb new file mode 100644 index 0000000..11e5d97 --- /dev/null +++ b/vendor/plugins/paperclip/test/style_test.rb @@ -0,0 +1,141 @@ +# encoding: utf-8 +require 'test/helper' + +class StyleTest < Test::Unit::TestCase + + context "A style rule" do + setup do + @attachment = attachment :path => ":basename.:extension", + :styles => { :foo => {:geometry => "100x100#", :format => :png} } + @style = @attachment.styles[:foo] + end + + should "be held as a Style object" do + assert_kind_of Paperclip::Style, @style + end + + should "get processors from the attachment definition" do + assert_equal [:thumbnail], @style.processors + end + + should "have the right geometry" do + assert_equal "100x100#", @style.geometry + end + + should "be whiny if the attachment is" do + @attachment.expects(:whiny).returns(true) + assert @style.whiny? + end + + should "respond to hash notation" do + assert_equal [:thumbnail], @style[:processors] + assert_equal "100x100#", @style[:geometry] + end + end + + context "A style rule with properties supplied as procs" do + setup do + @attachment = attachment :path => ":basename.:extension", + :whiny_thumbnails => true, + :processors => lambda {|a| [:test]}, + :styles => { + :foo => lambda{|a| "300x300#"}, + :bar => { + :geometry => lambda{|a| "300x300#"} + } + } + end + + should "defer processing of procs until they are needed" do + assert_kind_of Proc, @attachment.styles[:foo].instance_variable_get("@geometry") + assert_kind_of Proc, @attachment.styles[:bar].instance_variable_get("@geometry") + assert_kind_of Proc, @attachment.instance_variable_get("@processors") + end + + should "call procs when they are needed" do + assert_equal "300x300#", @attachment.styles[:foo].geometry + assert_equal "300x300#", @attachment.styles[:bar].geometry + assert_equal [:test], @attachment.styles[:foo].processors + assert_equal [:test], @attachment.styles[:bar].processors + end + end + + context "An attachment with style rules in various forms" do + setup do + @attachment = attachment :path => ":basename.:extension", + :styles => { + :aslist => ["100x100", :png], + :ashash => {:geometry => "100x100", :format => :png}, + :asstring => "100x100" + } + end + should "have the right number of styles" do + assert_kind_of Hash, @attachment.styles + assert_equal 3, @attachment.styles.size + end + + should "have styles as Style objects" do + [:aslist, :ashash, :aslist].each do |s| + assert_kind_of Paperclip::Style, @attachment.styles[s] + end + end + + should "have the right geometries" do + [:aslist, :ashash, :aslist].each do |s| + assert_equal @attachment.styles[s].geometry, "100x100" + end + end + + should "have the right formats" do + assert_equal @attachment.styles[:aslist].format, :png + assert_equal @attachment.styles[:ashash].format, :png + assert_nil @attachment.styles[:asstring].format + end + + end + + context "An attachment with :convert_options" do + setup do + @attachment = attachment :path => ":basename.:extension", + :styles => {:thumb => "100x100", :large => "400x400"}, + :convert_options => {:all => "-do_stuff", :thumb => "-thumbnailize"} + @style = @attachment.styles[:thumb] + @file = StringIO.new("...") + @file.stubs(:original_filename).returns("file.jpg") + end + + before_should "not have called extra_options_for(:thumb/:large) on initialization" do + @attachment.expects(:extra_options_for).never + end + + should "call extra_options_for(:thumb/:large) when convert options are requested" do + @attachment.expects(:extra_options_for).with(:thumb) + @attachment.styles[:thumb].convert_options + end + end + + context "A style rule with its own :processors" do + setup do + @attachment = attachment :path => ":basename.:extension", + :styles => { + :foo => { + :geometry => "100x100#", + :format => :png, + :processors => [:test] + } + }, + :processors => [:thumbnail] + @style = @attachment.styles[:foo] + end + + should "not get processors from the attachment" do + @attachment.expects(:processors).never + assert_not_equal [:thumbnail], @style.processors + end + + should "report its own processors" do + assert_equal [:test], @style.processors + end + + end +end diff --git a/vendor/plugins/paperclip/test/thumbnail_test.rb b/vendor/plugins/paperclip/test/thumbnail_test.rb new file mode 100644 index 0000000..045bc89 --- /dev/null +++ b/vendor/plugins/paperclip/test/thumbnail_test.rb @@ -0,0 +1,228 @@ +require 'test/helper' + +class ThumbnailTest < Test::Unit::TestCase + + context "A Paperclip Tempfile" do + setup do + @tempfile = Paperclip::Tempfile.new(["file", ".jpg"]) + end + + should "have its path contain a real extension" do + p @tempfile.path + assert_equal ".jpg", File.extname(@tempfile.path) + end + + should "be a real Tempfile" do + assert @tempfile.is_a?(::Tempfile) + end + end + + context "Another Paperclip Tempfile" do + setup do + @tempfile = Paperclip::Tempfile.new("file") + end + + should "not have an extension if not given one" do + assert_equal "", File.extname(@tempfile.path) + end + + should "still be a real Tempfile" do + assert @tempfile.is_a?(::Tempfile) + end + end + + context "An image" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), "fixtures", "5k.png"), 'rb') + end + + teardown { @file.close } + + [["600x600>", "434x66"], + ["400x400>", "400x61"], + ["32x32<", "434x66"] + ].each do |args| + context "being thumbnailed with a geometry of #{args[0]}" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, :geometry => args[0]) + end + + should "start with dimensions of 434x66" do + cmd = %Q[identify -format "%wx%h" "#{@file.path}"] + assert_equal "434x66", `#{cmd}`.chomp + end + + should "report the correct target geometry" do + assert_equal args[0], @thumb.target_geometry.to_s + end + + context "when made" do + setup do + @thumb_result = @thumb.make + end + + should "be the size we expect it to be" do + cmd = %Q[identify -format "%wx%h" "#{@thumb_result.path}"] + assert_equal args[1], `#{cmd}`.chomp + end + end + end + end + + context "being thumbnailed at 100x50 with cropping" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, :geometry => "100x50#") + end + + should "report its correct current and target geometries" do + assert_equal "100x50#", @thumb.target_geometry.to_s + assert_equal "434x66", @thumb.current_geometry.to_s + end + + should "report its correct format" do + assert_nil @thumb.format + end + + should "have whiny turned on by default" do + assert @thumb.whiny + end + + should "have convert_options set to nil by default" do + assert_equal nil, @thumb.convert_options + end + + should "send the right command to convert when sent #make" do + Paperclip::CommandLine.expects(:"`").with do |arg| + arg.match %r{convert ["']#{File.expand_path(@thumb.file.path)}\[0\]["'] -resize ["']x50["'] -crop ["']100x50\+114\+0["'] \+repage ["'].*?["']} + end + @thumb.make + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /100x50/, `identify "#{dst.path}"` + end + end + + context "being thumbnailed with source file options set" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, + :geometry => "100x50#", + :source_file_options => "-strip") + end + + should "have source_file_options value set" do + assert_equal ["-strip"], @thumb.source_file_options + end + + should "send the right command to convert when sent #make" do + Paperclip::CommandLine.expects(:"`").with do |arg| + arg.match %r{convert -strip ["']#{File.expand_path(@thumb.file.path)}\[0\]["'] -resize ["']x50["'] -crop ["']100x50\+114\+0["'] \+repage ["'].*?["']} + end + @thumb.make + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /100x50/, `identify "#{dst.path}"` + end + + context "redefined to have bad source_file_options setting" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, + :geometry => "100x50#", + :source_file_options => "-this-aint-no-option") + end + + should "error when trying to create the thumbnail" do + assert_raises(Paperclip::PaperclipError) do + @thumb.make + end + end + end + end + + context "being thumbnailed with convert options set" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, + :geometry => "100x50#", + :convert_options => "-strip -depth 8") + end + + should "have convert_options value set" do + assert_equal %w"-strip -depth 8", @thumb.convert_options + end + + should "send the right command to convert when sent #make" do + Paperclip::CommandLine.expects(:"`").with do |arg| + arg.match %r{convert ["']#{File.expand_path(@thumb.file.path)}\[0\]["'] -resize ["']x50["'] -crop ["']100x50\+114\+0["'] \+repage -strip -depth 8 ["'].*?["']} + end + @thumb.make + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /100x50/, `identify "#{dst.path}"` + end + + context "redefined to have bad convert_options setting" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, + :geometry => "100x50#", + :convert_options => "-this-aint-no-option") + end + + should "error when trying to create the thumbnail" do + assert_raises(Paperclip::PaperclipError) do + @thumb.make + end + end + end + end + + context "being thumbnailed with a blank geometry string" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, + :geometry => "", + :convert_options => "-gravity center -crop \"300x300+0-0\"") + end + + should "not get resized by default" do + assert !@thumb.transformation_command.include?("-resize") + end + end + end + + context "A multipage PDF" do + setup do + @file = File.new(File.join(File.dirname(__FILE__), "fixtures", "twopage.pdf"), 'rb') + end + + teardown { @file.close } + + should "start with two pages with dimensions 612x792" do + cmd = %Q[identify -format "%wx%h" "#{@file.path}"] + assert_equal "612x792"*2, `#{cmd}`.chomp + end + + context "being thumbnailed at 100x100 with cropping" do + setup do + @thumb = Paperclip::Thumbnail.new(@file, :geometry => "100x100#", :format => :png) + end + + should "report its correct current and target geometries" do + assert_equal "100x100#", @thumb.target_geometry.to_s + assert_equal "612x792", @thumb.current_geometry.to_s + end + + should "report its correct format" do + assert_equal :png, @thumb.format + end + + should "create the thumbnail when sent #make" do + dst = @thumb.make + assert_match /100x100/, `identify "#{dst.path}"` + end + end + end +end diff --git a/vendor/plugins/paperclip/test/upfile_test.rb b/vendor/plugins/paperclip/test/upfile_test.rb new file mode 100644 index 0000000..5f3e17e --- /dev/null +++ b/vendor/plugins/paperclip/test/upfile_test.rb @@ -0,0 +1,36 @@ +require 'test/helper' + +class UpfileTest < Test::Unit::TestCase + { %w(jpg jpe jpeg) => 'image/jpeg', + %w(tif tiff) => 'image/tiff', + %w(png) => 'image/png', + %w(gif) => 'image/gif', + %w(bmp) => 'image/bmp', + %w(txt) => 'text/plain', + %w(htm html) => 'text/html', + %w(csv) => 'text/csv', + %w(xml) => 'text/xml', + %w(css) => 'text/css', + %w(js) => 'application/js', + %w(foo) => 'application/x-foo' + }.each do |extensions, content_type| + extensions.each do |extension| + should "return a content_type of #{content_type} for a file with extension .#{extension}" do + file = stub('file', :path => "basename.#{extension}") + class << file + include Paperclip::Upfile + end + + assert_equal content_type, file.content_type + end + end + end + + should "return a content_type of text/plain on a real file whose content_type is determined with the file command" do + file = File.new(File.join(File.dirname(__FILE__), "..", "LICENSE")) + class << file + include Paperclip::Upfile + end + assert_equal 'text/plain', file.content_type + end +end