tdiary-contrib 3.2.2.20130518
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.travis.yml +7 -0
- data/Gemfile +13 -0
- data/Gemfile.lock +35 -0
- data/README.en.md +12 -0
- data/README.md +13 -0
- data/Rakefile +41 -0
- data/doc/en/filter/spambayes.txt +3 -0
- data/doc/en/plugin.txt +1 -0
- data/doc/en/style/hatena.txt +10 -0
- data/doc/en/style/markdown.txt +16 -0
- data/doc/en/util.txt +1 -0
- data/doc/ja/filter/antirefspam.history.txt +59 -0
- data/doc/ja/filter/antirefspam.txt +86 -0
- data/doc/ja/filter/comment_key.ja.html +182 -0
- data/doc/ja/filter/spambayes.txt +3 -0
- data/doc/ja/plugin/add_bookmark.txt +50 -0
- data/doc/ja/plugin/category_to_tag.txt +21 -0
- data/doc/ja/plugin/cocoment.txt +31 -0
- data/doc/ja/plugin/google_adsense.txt +25 -0
- data/doc/ja/plugin/google_analytics.txt +7 -0
- data/doc/ja/plugin/image_detail.txt +69 -0
- data/doc/ja/plugin/image_gps.txt +36 -0
- data/doc/ja/plugin/image_gps2.txt +41 -0
- data/doc/ja/plugin/livedoor_weather.txt +105 -0
- data/doc/ja/plugin/opensearch_ad.txt +16 -0
- data/doc/ja/plugin/section_footer.txt +84 -0
- data/doc/ja/plugin/select_theme.txt +1 -0
- data/doc/ja/plugin.txt +13 -0
- data/doc/ja/style/hatena.txt +10 -0
- data/doc/ja/style/markdown.txt +13 -0
- data/doc/ja/util.txt +12 -0
- data/filter/antirefspam.rb +263 -0
- data/filter/commentkey.rb +29 -0
- data/filter/commentsize.rb +18 -0
- data/filter/hidecomment.rb +13 -0
- data/filter/iplookup.rb +55 -0
- data/filter/plugin/antirefspam.rb +59 -0
- data/filter/plugin/commentkey.rb +58 -0
- data/filter/plugin/commentsize.rb +12 -0
- data/filter/plugin/en/iplookup.rb +9 -0
- data/filter/plugin/en/spambayes.rb +123 -0
- data/filter/plugin/iplookup.rb +39 -0
- data/filter/plugin/ja/antirefspam.rb +91 -0
- data/filter/plugin/ja/commentkey.rb +17 -0
- data/filter/plugin/ja/commentsize.rb +6 -0
- data/filter/plugin/ja/iplookup.rb +9 -0
- data/filter/plugin/ja/spambayes.rb +124 -0
- data/filter/plugin/spambayes.rb +501 -0
- data/filter/plugin/zh/iplookup.rb +9 -0
- data/filter/rblcheck.rb +36 -0
- data/filter/spambayes.rb +535 -0
- data/filter/spamlookup.rb +37 -0
- data/io/dbi_io/ChangeLog +19 -0
- data/io/dbi_io/README.ja +39 -0
- data/io/dbi_io/dbi_io.rb +181 -0
- data/io/dbi_io/plugin/refererDbiIO.rb +76 -0
- data/io/dbi_io/tdiary_table.sql +42 -0
- data/js/appstore.js +109 -0
- data/js/datepicker.js +69 -0
- data/js/editor.js +82 -0
- data/js/flickr.js +157 -0
- data/js/image_ex.js +79 -0
- data/js/jquery.socialbutton.js +842 -0
- data/js/nicovideo.js +17 -0
- data/js/picasa.js +322 -0
- data/js/plugin_checker.js +71 -0
- data/js/prettify/lang-apollo.js +2 -0
- data/js/prettify/lang-clj.js +18 -0
- data/js/prettify/lang-css.js +2 -0
- data/js/prettify/lang-go.js +1 -0
- data/js/prettify/lang-hs.js +2 -0
- data/js/prettify/lang-lisp.js +3 -0
- data/js/prettify/lang-lua.js +2 -0
- data/js/prettify/lang-ml.js +2 -0
- data/js/prettify/lang-n.js +4 -0
- data/js/prettify/lang-proto.js +1 -0
- data/js/prettify/lang-scala.js +2 -0
- data/js/prettify/lang-sql.js +2 -0
- data/js/prettify/lang-tex.js +1 -0
- data/js/prettify/lang-vb.js +2 -0
- data/js/prettify/lang-vhdl.js +3 -0
- data/js/prettify/lang-wiki.js +2 -0
- data/js/prettify/lang-xq.js +3 -0
- data/js/prettify/lang-yaml.js +2 -0
- data/js/prettify/prettify.css +1 -0
- data/js/prettify/prettify.js +28 -0
- data/js/referer.js +17 -0
- data/js/show_and_hide.js +39 -0
- data/js/socialbutton.js +126 -0
- data/js/twitter_anywhere.js +28 -0
- data/js/yahoo_kousei.js +21 -0
- data/lib/bayes/convert.rb +34 -0
- data/lib/bayes.rb +232 -0
- data/lib/exifparser/BUGS +1 -0
- data/lib/exifparser/ChangeLog +169 -0
- data/lib/exifparser/README +15 -0
- data/lib/exifparser/install.rb +1015 -0
- data/lib/exifparser/lib/exifparser/makernote/canon.rb +502 -0
- data/lib/exifparser/lib/exifparser/makernote/fujifilm.rb +415 -0
- data/lib/exifparser/lib/exifparser/makernote/minolta.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/mk_nikonflensname.rb +39 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon.rb +267 -0
- data/lib/exifparser/lib/exifparser/makernote/nikon2.rb +581 -0
- data/lib/exifparser/lib/exifparser/makernote/nikonflensname.rb +438 -0
- data/lib/exifparser/lib/exifparser/makernote/olympus.rb +225 -0
- data/lib/exifparser/lib/exifparser/makernote/prove.rb +84 -0
- data/lib/exifparser/lib/exifparser/makernote/sigma.rb +237 -0
- data/lib/exifparser/lib/exifparser/pre-setup.rb +1 -0
- data/lib/exifparser/lib/exifparser/scan.rb +278 -0
- data/lib/exifparser/lib/exifparser/tag.rb +2298 -0
- data/lib/exifparser/lib/exifparser/thumbnail.rb +76 -0
- data/lib/exifparser/lib/exifparser/utils.rb +88 -0
- data/lib/exifparser/lib/exifparser.rb +265 -0
- data/lib/exifparser/sample/exifview.rb +279 -0
- data/lib/tdiary-contrib.rb +19 -0
- data/lib/wgs2tky.rb +93 -0
- data/misc/section_footer2/buzzurl.yaml +6 -0
- data/misc/section_footer2/fc2.yaml +6 -0
- data/misc/section_footer2/ldc.yaml +6 -0
- data/misc/section_footer2/retweet.yaml +7 -0
- data/misc/section_footer2/twitter.yaml +7 -0
- data/misc/section_footer2/yahoo.yaml +6 -0
- data/misc/tdiarygraph/tdiarygraph120x90e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph125x125e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph240x180e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph468x60e.swf +0 -0
- data/misc/tdiarygraph/tdiarygraph728x90e.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125r7.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x125s.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes125x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes234x30.swf +0 -0
- data/misc/tdiarytimes/tdiarytimes468x30.swf +0 -0
- data/plugin/add_bookmark.rb +89 -0
- data/plugin/apple_webclip.rb +26 -0
- data/plugin/appstore.rb +47 -0
- data/plugin/bigpresen.rb +86 -0
- data/plugin/bitly.rb +39 -0
- data/plugin/bootstrap-navi.rb +54 -0
- data/plugin/canonical.rb +9 -0
- data/plugin/category_similar.rb +73 -0
- data/plugin/category_to_tag.rb +60 -0
- data/plugin/category_to_tagcloud.rb +172 -0
- data/plugin/cocomment.rb +37 -0
- data/plugin/code-prettify.rb +23 -0
- data/plugin/coderwall.rb +34 -0
- data/plugin/datepicker.rb +28 -0
- data/plugin/day2section.rb +20 -0
- data/plugin/del_footer.rb +111 -0
- data/plugin/description_from_body.rb +23 -0
- data/plugin/development.rb +16 -0
- data/plugin/editor.rb +11 -0
- data/plugin/en/add_bookmark.rb +20 -0
- data/plugin/en/del_footer.rb +10 -0
- data/plugin/en/git-register.rb +3 -0
- data/plugin/en/livedoor_weather.rb +25 -0
- data/plugin/en/microsummary.rb +18 -0
- data/plugin/en/nicovideo.rb +38 -0
- data/plugin/en/openid.rb +8 -0
- data/plugin/en/section_footer.rb +6 -0
- data/plugin/en/section_footer2.rb +3 -0
- data/plugin/en/socialbutton.rb +5 -0
- data/plugin/everytrail.rb +39 -0
- data/plugin/facebook_comments.rb +59 -0
- data/plugin/flickr.rb +209 -0
- data/plugin/gist.rb +16 -0
- data/plugin/git-register.rb +240 -0
- data/plugin/github_badge.rb +27 -0
- data/plugin/github_link.rb +9 -0
- data/plugin/goo_gl.rb +42 -0
- data/plugin/google_adsense.rb +132 -0
- data/plugin/google_analytics.rb +39 -0
- data/plugin/google_map.rb +168 -0
- data/plugin/google_sitemaps.rb +60 -0
- data/plugin/google_webmaster.rb +22 -0
- data/plugin/hatena_bookmark_nocomment.rb +9 -0
- data/plugin/hatena_star.rb +66 -0
- data/plugin/hb_footer.rb +255 -0
- data/plugin/hb_footer4sec.rb +244 -0
- data/plugin/hb_footer4sec_js.rb +30 -0
- data/plugin/hide_comment_form.rb +4 -0
- data/plugin/hide_sidebar_iphone.rb +21 -0
- data/plugin/iddy.rb +81 -0
- data/plugin/image_detail.rb +143 -0
- data/plugin/image_ex.rb +462 -0
- data/plugin/image_gps.rb +128 -0
- data/plugin/inline_wiki.rb +6 -0
- data/plugin/instagr.rb +64 -0
- data/plugin/ja/add_bookmark.rb +20 -0
- data/plugin/ja/del_footer.rb +10 -0
- data/plugin/ja/flickr.rb +62 -0
- data/plugin/ja/git-register.rb +3 -0
- data/plugin/ja/google_sitemaps.rb +35 -0
- data/plugin/ja/livedoor_weather.rb +25 -0
- data/plugin/ja/microsummary.rb +18 -0
- data/plugin/ja/nicovideo.rb +41 -0
- data/plugin/ja/openid.rb +7 -0
- data/plugin/ja/section_footer.rb +6 -0
- data/plugin/ja/section_footer2.rb +4 -0
- data/plugin/ja/socialbutton.rb +6 -0
- data/plugin/jdate.rb +20 -0
- data/plugin/jholiday.rb +16 -0
- data/plugin/jmonth.rb +20 -0
- data/plugin/jquery_ui_theme.rb +55 -0
- data/plugin/jroku.rb +28 -0
- data/plugin/jyear.rb +37 -0
- data/plugin/latlonglab_route.rb +25 -0
- data/plugin/lazy_referer.rb +38 -0
- data/plugin/livedoor_weather.rb +180 -0
- data/plugin/make_link.rb +44 -0
- data/plugin/makerss_category.rb +43 -0
- data/plugin/makerss_comment.rb +35 -0
- data/plugin/microsummary.rb +62 -0
- data/plugin/mm_footer.rb +215 -0
- data/plugin/monthly_autopagerize.rb +67 -0
- data/plugin/my_hotentry.rb +132 -0
- data/plugin/navi_day.rb +118 -0
- data/plugin/navi_this_month.rb +15 -0
- data/plugin/nicovideo.rb +115 -0
- data/plugin/notify_miniblog.rb +134 -0
- data/plugin/ogp.rb +55 -0
- data/plugin/ohmsha_estore.rb +71 -0
- data/plugin/openid.rb +90 -0
- data/plugin/opensearch_ad.rb +33 -0
- data/plugin/picasa.rb +56 -0
- data/plugin/plugin_checker.rb +41 -0
- data/plugin/popit.rb +22 -0
- data/plugin/prettify.rb +19 -0
- data/plugin/prezi.rb +10 -0
- data/plugin/profile.rb +222 -0
- data/plugin/puboo.rb +93 -0
- data/plugin/pygments_css.rb +76 -0
- data/plugin/rating.rb +419 -0
- data/plugin/recent_estraier.rb +50 -0
- data/plugin/recent_tweet.rb +71 -0
- data/plugin/retweet.rb +86 -0
- data/plugin/rubykaigi.rb +99 -0
- data/plugin/search-bing.rb +87 -0
- data/plugin/search-default.rb +264 -0
- data/plugin/search-google-custom.rb +60 -0
- data/plugin/search-yahoo-websearch.rb +121 -0
- data/plugin/search-yahoo.rb +109 -0
- data/plugin/section_footer.rb +195 -0
- data/plugin/section_footer2.rb +278 -0
- data/plugin/section_permalink.rb +73 -0
- data/plugin/section_permalink_anchor.rb +39 -0
- data/plugin/select_style.rb +42 -0
- data/plugin/select_theme.rb +90 -0
- data/plugin/show_and_hide.rb +77 -0
- data/plugin/slideshare.rb +10 -0
- data/plugin/socialbutton.rb +60 -0
- data/plugin/tatsu_zine.rb +93 -0
- data/plugin/tdiarygraph_flashstyle.rb +296 -0
- data/plugin/tdiarytimes.rb +166 -0
- data/plugin/tdiarytimes2.rb +406 -0
- data/plugin/tdiarytimes_flashstyle.rb +263 -0
- data/plugin/tdiarytimes_textstyle.rb +290 -0
- data/plugin/title_anchor.rb +16 -0
- data/plugin/tweet_quote.rb +106 -0
- data/plugin/twitpic.rb +10 -0
- data/plugin/twitter.rb +46 -0
- data/plugin/twitter_anywhere.rb +209 -0
- data/plugin/twitter_badge.rb +42 -0
- data/plugin/twitter_js.rb +59 -0
- data/plugin/ustream.rb +19 -0
- data/plugin/vimeo.rb +14 -0
- data/plugin/volatile.rb +89 -0
- data/plugin/vote.rb +100 -0
- data/plugin/wikiloc.rb +27 -0
- data/plugin/windex.rb +512 -0
- data/plugin/yahoo_kousei.rb +79 -0
- data/plugin/yahoo_map.rb +97 -0
- data/plugin/youtube.rb +33 -0
- data/plugin/yshop.rb +189 -0
- data/plugin/zenback.rb +46 -0
- data/spec/apple_webclip_spec.rb +46 -0
- data/spec/fixtures/friendfeed.xml +2 -0
- data/spec/fixtures/github.json +1 -0
- data/spec/fixtures/twitter.xml +73 -0
- data/spec/gist_spec.rb +16 -0
- data/spec/github_link_spec.rb +39 -0
- data/spec/google_analytics_spec.rb +60 -0
- data/spec/jdate_spec.rb +23 -0
- data/spec/jmonth_spec.rb +28 -0
- data/spec/jyear_spec.rb +21 -0
- data/spec/my_hotentry_spec.rb +78 -0
- data/spec/openid_spec.rb +246 -0
- data/spec/opensearch_ad_spec.rb +50 -0
- data/spec/profile_spec.rb +88 -0
- data/spec/rcov.opts +2 -0
- data/spec/spec_helper.rb +223 -0
- data/spec/title_anchor_spec.rb +39 -0
- data/spec/twitter_js_spec.rb +116 -0
- data/spec/youtube_spec.rb +20 -0
- data/style/hatena_style.rb +1011 -0
- data/style/markdown_style.rb +239 -0
- data/style/wikiext_style.rb +21 -0
- data/tdiary-contrib.gemspec +25 -0
- data/util/clean-spam/README.ja +1 -0
- data/util/clean-spam/tdiary-comment-clean +46 -0
- data/util/clean-spam/tdiary-comment-clean2 +81 -0
- data/util/clean-spam/tdiary-referer-clean +46 -0
- data/util/convert_pstore.rb +82 -0
- data/util/estraier-search/ChangeLog +36 -0
- data/util/estraier-search/README.ja +114 -0
- data/util/estraier-search/en/estraier-register.rb +3 -0
- data/util/estraier-search/estraier-register.rb +298 -0
- data/util/estraier-search/estraier-search.rb +273 -0
- data/util/estraier-search/estraier.rhtml +73 -0
- data/util/estraier-search/estraier.rxml +23 -0
- data/util/estraier-search/i.estraier.rhtml +31 -0
- data/util/estraier-search/ja/estraier-register.rb +3 -0
- data/util/image-gallery/README.ja +27 -0
- data/util/image-gallery/image-gallery.rb +523 -0
- data/util/image-gallery/image-gallery.rb.euc-jp +523 -0
- data/util/image-gallery/js/SmoothGallery/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/css/ReMooz.css +186 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/carrow2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/closebox.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche1.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/fleche2.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/loading-bar-black.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/open.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_e.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_n.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_ne.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_nw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_s.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_se.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_sw.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/remo_bg_w.png +0 -0
- data/util/image-gallery/js/SmoothGallery/css/img/spinner.gif +0 -0
- data/util/image-gallery/js/SmoothGallery/css/jd.gallery.css +371 -0
- data/util/image-gallery/js/SmoothGallery/css/layout.css +91 -0
- data/util/image-gallery/js/SmoothGallery/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/resizer.php +113 -0
- data/util/image-gallery/js/SmoothGallery/scripts/Changelog +52 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.Routing.js +126 -0
- data/util/image-gallery/js/SmoothGallery/scripts/History.js +109 -0
- data/util/image-gallery/js/SmoothGallery/scripts/ReMooz.js +364 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.js +843 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.set.js +183 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jd.gallery.transitions.js +90 -0
- data/util/image-gallery/js/SmoothGallery/scripts/jdgalleryresize.js +828 -0
- data/util/image-gallery/js/SmoothGallery/scripts/license.txt +621 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2-more.js +103 -0
- data/util/image-gallery/js/SmoothGallery/scripts/mootools-1.2.1-core-yc.js +349 -0
- data/util/image-gallery/js/SmoothGallery/scripts/resizer.php +113 -0
- data/util/image-gallery/misc/plugin/recent_image.rb +406 -0
- data/util/image-gallery/skel/gallery.rhtml +154 -0
- data/util/image-gallery/skel/gallery.rhtml.euc-jp +154 -0
- data/util/image-gallery/tdiary.conf.igsample +8 -0
- data/util/image-gallery/theme/image-gallery.css +85 -0
- data/util/image2flickr.rb +282 -0
- data/util/posttdiary/README.ja +12 -0
- data/util/posttdiary/posttdiary-ex.rb +1155 -0
- data/util/posttdiary/posttdiary.rb +245 -0
- data/util/rast-search/ChangeLog +55 -0
- data/util/rast-search/README.ja +99 -0
- data/util/rast-search/en/rast-register.rb +3 -0
- data/util/rast-search/i.rast.rhtml +33 -0
- data/util/rast-search/ja/rast-register.rb +3 -0
- data/util/rast-search/rast-register.rb +326 -0
- data/util/rast-search/rast-search.rb +249 -0
- data/util/rast-search/rast.rhtml +66 -0
- data/util/rast-search/rast.rxml +21 -0
- data/util/section_link/README +11 -0
- data/util/section_link/misc/plugin/section_link.rb +68 -0
- data/util/section_link/misc/plugin/section_link_anchor.rb +38 -0
- data/util/section_link/tdiary/tdiary_day_ext.rb +21 -0
- data/util/section_link/tdiary/tdiaryext_style.rb +36 -0
- data/util/section_link/tdiary/wikiext_style.rb +36 -0
- data/util/tdiary-for-ruby1.9/compatible.rb +97 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.2.0.patch +98 -0
- data/util/tdiary-for-ruby1.9/tdiary-2.3.1.patch +212 -0
- data/util/tdiary-grep/README +4 -0
- data/util/tdiary-grep/grep.rb +445 -0
- data/util/tdiary-mode/http.el +130 -0
- data/util/tdiary-mode/tdiary-mode.el +613 -0
- data/util/tdiary-vim/ChangeLog +25 -0
- data/util/tdiary-vim/README +60 -0
- data/util/tdiary-vim/tdiary.vim +350 -0
- data/util/tdiarysearch/README.en +53 -0
- data/util/tdiarysearch/README.ja +99 -0
- data/util/tdiarysearch/search.rb +504 -0
- metadata +497 -0
@@ -0,0 +1,843 @@
|
|
1
|
+
/*
|
2
|
+
This file is part of JonDesign's SmoothGallery v2.1beta1.
|
3
|
+
|
4
|
+
JonDesign's SmoothGallery is free software; you can redistribute it and/or modify
|
5
|
+
it under the terms of the GNU General Public License as published by
|
6
|
+
the Free Software Foundation; either version 3 of the License, or
|
7
|
+
(at your option) any later version.
|
8
|
+
|
9
|
+
JonDesign's SmoothGallery is distributed in the hope that it will be useful,
|
10
|
+
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
11
|
+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
12
|
+
GNU General Public License for more details.
|
13
|
+
|
14
|
+
You should have received a copy of the GNU General Public License
|
15
|
+
along with JonDesign's SmoothGallery; if not, write to the Free Software
|
16
|
+
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
17
|
+
|
18
|
+
Main Developer: Jonathan Schemoul (JonDesign: http://www.jondesign.net/)
|
19
|
+
Contributed code by:
|
20
|
+
- Christian Ehret (bugfix)
|
21
|
+
- Nitrix (bugfix)
|
22
|
+
- Valerio from Mad4Milk for his great help with the carousel scrolling and many other things.
|
23
|
+
- Archie Cowan for helping me find a bugfix on carousel inner width problem.
|
24
|
+
- Tomocchino from #mootools for the preloader class
|
25
|
+
Many thanks to:
|
26
|
+
- The mootools team for the great mootools lib, and it's help and support throughout the project.
|
27
|
+
- Harald Kirschner (digitarald: http://digitarald.de/) for all his great libs. Some used here as plugins.
|
28
|
+
*/
|
29
|
+
|
30
|
+
/* some quirks to circumvent broken stuff in mt1.2 */
|
31
|
+
function isBody(element){
|
32
|
+
return (/^(?:body|html)$/i).test(element.tagName);
|
33
|
+
};
|
34
|
+
Element.implement({
|
35
|
+
getPosition: function(relative){
|
36
|
+
if (isBody(this)) return {x: 0, y: 0};
|
37
|
+
var el = this, position = {x: 0, y: 0};
|
38
|
+
while (el){
|
39
|
+
position.x += el.offsetLeft;
|
40
|
+
position.y += el.offsetTop;
|
41
|
+
el = el.offsetParent;
|
42
|
+
}
|
43
|
+
var rpos = (relative) ? $(relative).getPosition() : {x: 0, y: 0};
|
44
|
+
return {x: position.x - rpos.x, y: position.y - rpos.y};
|
45
|
+
}
|
46
|
+
});
|
47
|
+
|
48
|
+
// declaring the class
|
49
|
+
var gallery = {
|
50
|
+
Implements: [Events, Options],
|
51
|
+
options: {
|
52
|
+
showArrows: true,
|
53
|
+
showCarousel: true,
|
54
|
+
showInfopane: true,
|
55
|
+
embedLinks: true,
|
56
|
+
fadeDuration: 500,
|
57
|
+
timed: false,
|
58
|
+
delay: 9000,
|
59
|
+
preloader: true,
|
60
|
+
preloaderImage: true,
|
61
|
+
preloaderErrorImage: true,
|
62
|
+
fullScreen: false, // TEST
|
63
|
+
/* Data retrieval */
|
64
|
+
manualData: [],
|
65
|
+
populateFrom: false,
|
66
|
+
populateData: true,
|
67
|
+
destroyAfterPopulate: true,
|
68
|
+
elementSelector: "div.imageElement",
|
69
|
+
titleSelector: "h3",
|
70
|
+
subtitleSelector: "p",
|
71
|
+
linkSelector: "a.open",
|
72
|
+
imageSelector: "img.full",
|
73
|
+
thumbnailSelector: "img.thumbnail",
|
74
|
+
defaultTransition: "fade",
|
75
|
+
/* InfoPane options */
|
76
|
+
slideInfoZoneOpacity: 0.7,
|
77
|
+
slideInfoZoneSlide: true,
|
78
|
+
/* Carousel options */
|
79
|
+
carouselMinimizedOpacity: 0.4,
|
80
|
+
carouselMinimizedHeight: 20,
|
81
|
+
carouselMaximizedOpacity: 0.9,
|
82
|
+
thumbHeight: 75,
|
83
|
+
thumbWidth: 100,
|
84
|
+
thumbSpacing: 10,
|
85
|
+
thumbIdleOpacity: 0.2,
|
86
|
+
textShowCarousel: 'Pictures',
|
87
|
+
showCarouselLabel: true,
|
88
|
+
thumbCloseCarousel: true,
|
89
|
+
useThumbGenerator: false,
|
90
|
+
thumbGenerator: 'resizer.php',
|
91
|
+
useExternalCarousel: false,
|
92
|
+
carouselElement: false,
|
93
|
+
carouselHorizontal: true,
|
94
|
+
activateCarouselScroller: true,
|
95
|
+
carouselPreloader: true,
|
96
|
+
textPreloadingCarousel: 'Loading...',
|
97
|
+
/* CSS Classes */
|
98
|
+
baseClass: 'jdGallery',
|
99
|
+
withArrowsClass: 'withArrows',
|
100
|
+
/* Plugins: HistoryManager */
|
101
|
+
useHistoryManager: false,
|
102
|
+
customHistoryKey: false,
|
103
|
+
/* Plugins: ReMooz */
|
104
|
+
useReMooz: false,
|
105
|
+
useMediaboxAdvanced: false
|
106
|
+
},
|
107
|
+
initialize: function(element, options) {
|
108
|
+
this.setOptions(options);
|
109
|
+
this.fireEvent('onInit');
|
110
|
+
this.currentIter = 0;
|
111
|
+
this.lastIter = 0;
|
112
|
+
this.maxIter = 0;
|
113
|
+
this.galleryElement = element;
|
114
|
+
this.topElement = element;
|
115
|
+
this.galleryData = this.options.manualData;
|
116
|
+
this.galleryInit = 1;
|
117
|
+
this.galleryElements = Array();
|
118
|
+
this.thumbnailElements = Array();
|
119
|
+
this.galleryElement.addClass(this.options.baseClass);
|
120
|
+
|
121
|
+
if (this.options.useReMooz&&(this.options.defaultTransition=="fade"))
|
122
|
+
this.options.defaultTransition="crossfade";
|
123
|
+
|
124
|
+
this.populateFrom = element;
|
125
|
+
if (this.options.populateFrom)
|
126
|
+
this.populateFrom = this.options.populateFrom;
|
127
|
+
if (this.options.populateData)
|
128
|
+
this.populateData();
|
129
|
+
element.style.display="block";
|
130
|
+
|
131
|
+
if(this.options.fullScreen) //TEST
|
132
|
+
{
|
133
|
+
var size = window.getSize();
|
134
|
+
// if(document.body.offsetHeight>window.innerHeight)
|
135
|
+
// size.x-=18;
|
136
|
+
element.setStyles({
|
137
|
+
'position':'absolute',
|
138
|
+
'top':'0px',
|
139
|
+
'left':'0px',
|
140
|
+
'width':size.x + 14,
|
141
|
+
'height':size.y - 8
|
142
|
+
});
|
143
|
+
}
|
144
|
+
|
145
|
+
if (this.options.useHistoryManager)
|
146
|
+
this.initHistory();
|
147
|
+
|
148
|
+
if ((this.options.embedLinks)|(this.options.useReMooz)|(this.options.useMediaboxAdvanced))
|
149
|
+
{
|
150
|
+
this.currentLink = new Element('a').addClass('open').setProperties({
|
151
|
+
href: '#',
|
152
|
+
title: '',
|
153
|
+
rel: 'lightbox'
|
154
|
+
}).injectInside(element);
|
155
|
+
if ((!this.options.showArrows) && (!this.options.showCarousel))
|
156
|
+
this.galleryElement = element = this.currentLink;
|
157
|
+
else
|
158
|
+
this.currentLink.setStyle('display', 'none');
|
159
|
+
}
|
160
|
+
|
161
|
+
this.constructElements();
|
162
|
+
if ((this.galleryData.length>1)&&(this.options.showArrows))
|
163
|
+
{
|
164
|
+
var leftArrow = new Element('a').addClass('left').addEvent(
|
165
|
+
'click',
|
166
|
+
this.prevItem.bind(this)
|
167
|
+
).injectInside(element);
|
168
|
+
var rightArrow = new Element('a').addClass('right').addEvent(
|
169
|
+
'click',
|
170
|
+
this.nextItem.bind(this)
|
171
|
+
).injectInside(element);
|
172
|
+
this.galleryElement.addClass(this.options.withArrowsClass);
|
173
|
+
}
|
174
|
+
this.loadingElement = new Element('div').addClass('loadingElement').injectInside(element);
|
175
|
+
if (this.options.showInfopane) this.initInfoSlideshow();
|
176
|
+
if (this.options.showCarousel) this.initCarousel();
|
177
|
+
this.doSlideShow(1);
|
178
|
+
},
|
179
|
+
populateData: function() {
|
180
|
+
currentArrayPlace = this.galleryData.length;
|
181
|
+
options = this.options;
|
182
|
+
var data = $A(this.galleryData);
|
183
|
+
data.extend(this.populateGallery(this.populateFrom, currentArrayPlace));
|
184
|
+
this.galleryData = data;
|
185
|
+
this.fireEvent('onPopulated');
|
186
|
+
},
|
187
|
+
populateGallery: function(element, startNumber) {
|
188
|
+
var data = [];
|
189
|
+
options = this.options;
|
190
|
+
currentArrayPlace = startNumber;
|
191
|
+
element.getElements(options.elementSelector).each(function(el) {
|
192
|
+
elementDict = $H({
|
193
|
+
image: el.getElement(options.imageSelector).getProperty('src'),
|
194
|
+
number: currentArrayPlace,
|
195
|
+
transition: this.options.defaultTransition
|
196
|
+
});
|
197
|
+
if ((options.showInfopane) | (options.showCarousel))
|
198
|
+
elementDict.extend({
|
199
|
+
title: el.getElement(options.titleSelector).innerHTML,
|
200
|
+
description: el.getElement(options.subtitleSelector).innerHTML
|
201
|
+
});
|
202
|
+
if ((options.embedLinks) | (options.useReMooz))
|
203
|
+
elementDict.extend({
|
204
|
+
link: el.getElement(options.linkSelector).href||false,
|
205
|
+
linkTitle: el.getElement(options.linkSelector).title||false,
|
206
|
+
linkTarget: el.getElement(options.linkSelector).getProperty('target')||false
|
207
|
+
});
|
208
|
+
if ((!options.useThumbGenerator) && (options.showCarousel))
|
209
|
+
elementDict.extend({
|
210
|
+
thumbnail: el.getElement(options.thumbnailSelector).getProperty('src')
|
211
|
+
});
|
212
|
+
else if (options.useThumbGenerator)
|
213
|
+
elementDict.extend({
|
214
|
+
thumbnail: options.thumbGenerator + '?imgfile=' + elementDict.image + '&max_width=' + options.thumbWidth + '&max_height=' + options.thumbHeight
|
215
|
+
});
|
216
|
+
|
217
|
+
data.extend([elementDict]);
|
218
|
+
currentArrayPlace++;
|
219
|
+
if (this.options.destroyAfterPopulate)
|
220
|
+
el.dispose();
|
221
|
+
});
|
222
|
+
return data;
|
223
|
+
},
|
224
|
+
constructElements: function() {
|
225
|
+
el = this.galleryElement;
|
226
|
+
top_el = this.galleryElement;
|
227
|
+
if (this.options.embedLinks && (!this.options.showArrows))
|
228
|
+
el = this.currentLink;
|
229
|
+
this.maxIter = this.galleryData.length;
|
230
|
+
var currentImg;
|
231
|
+
for(i=0;i<this.galleryData.length;i++)
|
232
|
+
{
|
233
|
+
var currentImg = new Fx.Morph(
|
234
|
+
new Element('div').addClass('slideElement').setStyles({
|
235
|
+
'position':'absolute',
|
236
|
+
'left':'0px',
|
237
|
+
'right':'0px',
|
238
|
+
'margin':'0px',
|
239
|
+
'padding':'0px',
|
240
|
+
'backgroundPosition':"center center",
|
241
|
+
'opacity':'0'
|
242
|
+
}).injectInside(el),
|
243
|
+
{duration: this.options.fadeDuration}
|
244
|
+
);
|
245
|
+
if (this.options.preloader)
|
246
|
+
{
|
247
|
+
currentImg.source = this.galleryData[i].image;
|
248
|
+
currentImg.loaded = false;
|
249
|
+
currentImg.load = function(imageStyle, i) {
|
250
|
+
if (!imageStyle.loaded) {
|
251
|
+
this.galleryData[i].imgloader = new Asset.image(imageStyle.source, {
|
252
|
+
'onload' : function(img, i){
|
253
|
+
img.loaded = true;
|
254
|
+
img.width = this.galleryData[i].imgloader.width;
|
255
|
+
img.height = this.galleryData[i].imgloader.height;
|
256
|
+
top_height = this.topElement.getStyle('height').toInt();
|
257
|
+
top_width = this.topElement.getStyle('width').toInt();
|
258
|
+
new_width = img.width;
|
259
|
+
new_height = img.height;
|
260
|
+
margin_top = 0;
|
261
|
+
if(top_height < img.height && img.height >= img.width){
|
262
|
+
new_height = top_height;
|
263
|
+
new_width = Math.round(top_height*img.width/img.height);
|
264
|
+
} else if(top_width < img.width && img.height <= img.width) {
|
265
|
+
new_width = top_width;
|
266
|
+
new_height = Math.round(top_width*img.height/img.width);
|
267
|
+
margin_top = Math.round((top_height - new_height)/2);
|
268
|
+
} else {
|
269
|
+
margin_top = Math.round((top_height - img.height)/2);
|
270
|
+
}
|
271
|
+
img.element.appendChild(new Element('img').set('src',img.source).setStyles({
|
272
|
+
'margin':'0 auto',
|
273
|
+
'display':'block',
|
274
|
+
'width':new_width+'px',
|
275
|
+
'height':new_height+'px',
|
276
|
+
'margin-top':margin_top+'px'
|
277
|
+
}));
|
278
|
+
}.pass([imageStyle, i], this)
|
279
|
+
});
|
280
|
+
}
|
281
|
+
}.pass([currentImg, i], this);
|
282
|
+
} else {
|
283
|
+
currentImg.element.appendChild(new Element('img').set('src',this.galleryData[i].image).setStyles({
|
284
|
+
'margin':'0 auto',
|
285
|
+
'display':'block'
|
286
|
+
}));
|
287
|
+
}
|
288
|
+
this.galleryElements[parseInt(i)] = currentImg;
|
289
|
+
}
|
290
|
+
},
|
291
|
+
destroySlideShow: function(element) {
|
292
|
+
var myClassName = element.className;
|
293
|
+
var newElement = new Element('div').addClass('myClassName');
|
294
|
+
element.parentNode.replaceChild(newElement, element);
|
295
|
+
},
|
296
|
+
startSlideShow: function() {
|
297
|
+
this.fireEvent('onStart');
|
298
|
+
this.loadingElement.style.display = "none";
|
299
|
+
this.lastIter = this.maxIter - 1;
|
300
|
+
this.currentIter = 0;
|
301
|
+
this.galleryInit = 0;
|
302
|
+
this.galleryElements[parseInt(this.currentIter)].set({opacity: 1});
|
303
|
+
if (this.options.showInfopane)
|
304
|
+
this.showInfoSlideShow.delay(1000, this);
|
305
|
+
if (this.options.useReMooz)
|
306
|
+
this.makeReMooz.delay(1000, this);
|
307
|
+
var textShowCarousel = formatString(this.options.textShowCarousel, this.currentIter+1, this.maxIter);
|
308
|
+
if (this.options.showCarousel&&(!this.options.carouselPreloader)&&(!this.options.useExternalCarousel))
|
309
|
+
this.carouselBtn.set('html', textShowCarousel).setProperty('title', textShowCarousel);
|
310
|
+
this.prepareTimer();
|
311
|
+
if (this.options.embedLinks)
|
312
|
+
this.makeLink(this.currentIter);
|
313
|
+
},
|
314
|
+
nextItem: function() {
|
315
|
+
this.fireEvent('onNextCalled');
|
316
|
+
this.nextIter = this.currentIter+1;
|
317
|
+
if (this.nextIter >= this.maxIter)
|
318
|
+
this.nextIter = 0;
|
319
|
+
this.galleryInit = 0;
|
320
|
+
this.goTo(this.nextIter);
|
321
|
+
},
|
322
|
+
prevItem: function() {
|
323
|
+
this.fireEvent('onPreviousCalled');
|
324
|
+
this.nextIter = this.currentIter-1;
|
325
|
+
if (this.nextIter <= -1)
|
326
|
+
this.nextIter = this.maxIter - 1;
|
327
|
+
this.galleryInit = 0;
|
328
|
+
this.goTo(this.nextIter);
|
329
|
+
},
|
330
|
+
goTo: function(num) {
|
331
|
+
this.clearTimer();
|
332
|
+
if(this.options.preloader)
|
333
|
+
{
|
334
|
+
this.galleryElements[num].load();
|
335
|
+
if (num==0)
|
336
|
+
this.galleryElements[this.maxIter - 1].load();
|
337
|
+
else
|
338
|
+
this.galleryElements[num - 1].load();
|
339
|
+
if (num==(this.maxIter - 1))
|
340
|
+
this.galleryElements[0].load();
|
341
|
+
else
|
342
|
+
this.galleryElements[num + 1].load();
|
343
|
+
|
344
|
+
}
|
345
|
+
if (this.options.embedLinks)
|
346
|
+
this.clearLink();
|
347
|
+
if (this.options.showInfopane)
|
348
|
+
{
|
349
|
+
this.slideInfoZone.clearChain();
|
350
|
+
this.hideInfoSlideShow().chain(this.changeItem.pass(num, this));
|
351
|
+
} else
|
352
|
+
this.currentChangeDelay = this.changeItem.delay(500, this, num);
|
353
|
+
if (this.options.embedLinks)
|
354
|
+
this.makeLink(num);
|
355
|
+
this.prepareTimer();
|
356
|
+
/*if (this.options.showCarousel)
|
357
|
+
this.clearThumbnailsHighlights();*/
|
358
|
+
},
|
359
|
+
changeItem: function(num) {
|
360
|
+
this.fireEvent('onStartChanging');
|
361
|
+
this.galleryInit = 0;
|
362
|
+
if (this.currentIter != num)
|
363
|
+
{
|
364
|
+
for(i=0;i<this.maxIter;i++)
|
365
|
+
{
|
366
|
+
if ((i != this.currentIter)) this.galleryElements[i].set({opacity: 0});
|
367
|
+
}
|
368
|
+
gallery.Transitions[this.galleryData[num].transition].pass([
|
369
|
+
this.galleryElements[this.currentIter],
|
370
|
+
this.galleryElements[num],
|
371
|
+
this.currentIter,
|
372
|
+
num], this)();
|
373
|
+
this.currentIter = num;
|
374
|
+
if (this.options.useReMooz)
|
375
|
+
this.makeReMooz();
|
376
|
+
}
|
377
|
+
var textShowCarousel = formatString(this.options.textShowCarousel, num+1, this.maxIter);
|
378
|
+
if ((this.options.showCarousel)&&(!this.options.useExternalCarousel))
|
379
|
+
this.carouselBtn.set('html', textShowCarousel).setProperty('title', textShowCarousel);
|
380
|
+
this.doSlideShow.bind(this)();
|
381
|
+
this.fireEvent('onChanged');
|
382
|
+
},
|
383
|
+
clearTimer: function() {
|
384
|
+
if (this.options.timed)
|
385
|
+
$clear(this.timer);
|
386
|
+
},
|
387
|
+
prepareTimer: function() {
|
388
|
+
if (this.options.timed)
|
389
|
+
this.timer = this.nextItem.delay(this.options.delay, this);
|
390
|
+
},
|
391
|
+
doSlideShow: function(position) {
|
392
|
+
if (this.galleryInit == 1)
|
393
|
+
{
|
394
|
+
imgPreloader = new Image();
|
395
|
+
imgPreloader.onload=function(){
|
396
|
+
this.startSlideShow.delay(10, this);
|
397
|
+
}.bind(this);
|
398
|
+
imgPreloader.src = this.galleryData[0].image;
|
399
|
+
if(this.options.preloader)
|
400
|
+
this.galleryElements[0].load();
|
401
|
+
} else {
|
402
|
+
if (this.options.showInfopane)
|
403
|
+
{
|
404
|
+
if (this.options.showInfopane)
|
405
|
+
{
|
406
|
+
this.showInfoSlideShow.delay((500 + this.options.fadeDuration), this);
|
407
|
+
} else
|
408
|
+
if ((this.options.showCarousel)&&(this.options.activateCarouselScroller))
|
409
|
+
this.centerCarouselOn(position);
|
410
|
+
}
|
411
|
+
}
|
412
|
+
},
|
413
|
+
createCarousel: function() {
|
414
|
+
var carouselElement;
|
415
|
+
if (!this.options.useExternalCarousel)
|
416
|
+
{
|
417
|
+
var carouselContainerElement = new Element('div').addClass('carouselContainer').injectInside(this.galleryElement);
|
418
|
+
this.carouselContainer = new Fx.Morph(carouselContainerElement, {transition: Fx.Transitions.Expo.easeOut});
|
419
|
+
this.carouselContainer.normalHeight = carouselContainerElement.offsetHeight;
|
420
|
+
this.carouselContainer.set({'opacity': this.options.carouselMinimizedOpacity, 'top': (this.options.carouselMinimizedHeight - this.carouselContainer.normalHeight)});
|
421
|
+
this.carouselBtn = new Element('a').addClass('carouselBtn').setProperties({
|
422
|
+
title: this.options.textShowCarousel
|
423
|
+
}).injectInside(carouselContainerElement);
|
424
|
+
if(this.options.carouselPreloader)
|
425
|
+
this.carouselBtn.set('html', this.options.textPreloadingCarousel);
|
426
|
+
else
|
427
|
+
this.carouselBtn.set('html', this.options.textShowCarousel);
|
428
|
+
this.carouselBtn.addEvent(
|
429
|
+
'click',
|
430
|
+
function () {
|
431
|
+
this.carouselContainer.cancel();
|
432
|
+
this.toggleCarousel();
|
433
|
+
}.bind(this)
|
434
|
+
);
|
435
|
+
this.carouselActive = false;
|
436
|
+
|
437
|
+
carouselElement = new Element('div').addClass('carousel').injectInside(carouselContainerElement);
|
438
|
+
this.carousel = new Fx.Morph(carouselElement);
|
439
|
+
} else {
|
440
|
+
carouselElement = $(this.options.carouselElement).addClass('jdExtCarousel');
|
441
|
+
}
|
442
|
+
this.carouselElement = new Fx.Morph(carouselElement, {transition: Fx.Transitions.Expo.easeOut});
|
443
|
+
this.carouselElement.normalHeight = carouselElement.offsetHeight;
|
444
|
+
if (this.options.showCarouselLabel)
|
445
|
+
this.carouselLabel = new Element('p').addClass('label').injectInside(carouselElement);
|
446
|
+
carouselWrapper = new Element('div').addClass('carouselWrapper').injectInside(carouselElement);
|
447
|
+
this.carouselWrapper = new Fx.Morph(carouselWrapper, {transition: Fx.Transitions.Expo.easeOut});
|
448
|
+
this.carouselWrapper.normalHeight = carouselWrapper.offsetHeight;
|
449
|
+
this.carouselInner = new Element('div').addClass('carouselInner').injectInside(carouselWrapper);
|
450
|
+
if (this.options.activateCarouselScroller)
|
451
|
+
{
|
452
|
+
this.carouselWrapper.scroller = new Scroller(carouselWrapper, {
|
453
|
+
area: 100,
|
454
|
+
velocity: 0.2
|
455
|
+
})
|
456
|
+
|
457
|
+
this.carouselWrapper.elementScroller = new Fx.Scroll(carouselWrapper, {
|
458
|
+
duration: 400,
|
459
|
+
onStart: this.carouselWrapper.scroller.stop.bind(this.carouselWrapper.scroller),
|
460
|
+
onComplete: this.carouselWrapper.scroller.start.bind(this.carouselWrapper.scroller)
|
461
|
+
});
|
462
|
+
}
|
463
|
+
},
|
464
|
+
fillCarousel: function() {
|
465
|
+
this.constructThumbnails();
|
466
|
+
this.carouselInner.normalWidth = ((this.maxIter * (this.options.thumbWidth + this.options.thumbSpacing + 2))+this.options.thumbSpacing) + "px";
|
467
|
+
if (this.options.carouselHorizontal)
|
468
|
+
this.carouselInner.style.width = this.carouselInner.normalWidth;
|
469
|
+
},
|
470
|
+
initCarousel: function () {
|
471
|
+
this.createCarousel();
|
472
|
+
this.fillCarousel();
|
473
|
+
if (this.options.carouselPreloader)
|
474
|
+
this.preloadThumbnails();
|
475
|
+
},
|
476
|
+
flushCarousel: function() {
|
477
|
+
this.thumbnailElements.each(function(myFx) {
|
478
|
+
myFx.element.dispose();
|
479
|
+
myFx = myFx.element = null;
|
480
|
+
});
|
481
|
+
this.thumbnailElements = [];
|
482
|
+
},
|
483
|
+
toggleCarousel: function() {
|
484
|
+
if (this.carouselActive)
|
485
|
+
this.hideCarousel();
|
486
|
+
else
|
487
|
+
this.showCarousel();
|
488
|
+
},
|
489
|
+
showCarousel: function () {
|
490
|
+
this.fireEvent('onShowCarousel');
|
491
|
+
this.carouselContainer.start({
|
492
|
+
'opacity': this.options.carouselMaximizedOpacity,
|
493
|
+
'top': 0
|
494
|
+
}).chain(function() {
|
495
|
+
this.carouselActive = true;
|
496
|
+
this.carouselWrapper.scroller.start();
|
497
|
+
this.fireEvent('onCarouselShown');
|
498
|
+
this.carouselContainer.options.onComplete = null;
|
499
|
+
}.bind(this));
|
500
|
+
},
|
501
|
+
hideCarousel: function () {
|
502
|
+
this.fireEvent('onHideCarousel');
|
503
|
+
var targetTop = this.options.carouselMinimizedHeight - this.carouselContainer.normalHeight;
|
504
|
+
this.carouselContainer.start({
|
505
|
+
'opacity': this.options.carouselMinimizedOpacity,
|
506
|
+
'top': targetTop
|
507
|
+
}).chain(function() {
|
508
|
+
this.carouselActive = false;
|
509
|
+
this.carouselWrapper.scroller.stop();
|
510
|
+
this.fireEvent('onCarouselHidden');
|
511
|
+
this.carouselContainer.options.onComplete = null;
|
512
|
+
}.bind(this));
|
513
|
+
},
|
514
|
+
constructThumbnails: function () {
|
515
|
+
element = this.carouselInner;
|
516
|
+
for(i=0;i<this.galleryData.length;i++)
|
517
|
+
{
|
518
|
+
var currentImg = new Fx.Morph(new Element ('div').addClass("thumbnail").setStyles({
|
519
|
+
backgroundImage: "url('" + this.galleryData[i].thumbnail + "')",
|
520
|
+
backgroundPosition: "center center",
|
521
|
+
backgroundRepeat: 'no-repeat',
|
522
|
+
marginLeft: this.options.thumbSpacing + "px",
|
523
|
+
width: this.options.thumbWidth + "px",
|
524
|
+
height: this.options.thumbHeight + "px"
|
525
|
+
}).injectInside(element), {duration: 200}).start({
|
526
|
+
'opacity': this.options.thumbIdleOpacity
|
527
|
+
});
|
528
|
+
currentImg.element.addEvents({
|
529
|
+
'mouseover': function (myself) {
|
530
|
+
myself.cancel();
|
531
|
+
myself.start({'opacity': 0.99});
|
532
|
+
if (this.options.showCarouselLabel)
|
533
|
+
$(this.carouselLabel).set('html', '<span class="number">' + (myself.relatedImage.number + 1) + "/" + this.maxIter + ":</span> " + myself.relatedImage.title);
|
534
|
+
}.pass(currentImg, this),
|
535
|
+
'mouseout': function (myself) {
|
536
|
+
myself.cancel();
|
537
|
+
myself.start({'opacity': this.options.thumbIdleOpacity});
|
538
|
+
}.pass(currentImg, this),
|
539
|
+
'click': function (myself) {
|
540
|
+
this.goTo(myself.relatedImage.number);
|
541
|
+
if (this.options.thumbCloseCarousel&&(!this.options.useExternalCarousel))
|
542
|
+
this.hideCarousel();
|
543
|
+
}.pass(currentImg, this)
|
544
|
+
});
|
545
|
+
|
546
|
+
currentImg.relatedImage = this.galleryData[i];
|
547
|
+
this.thumbnailElements[parseInt(i)] = currentImg;
|
548
|
+
}
|
549
|
+
},
|
550
|
+
log: function(value) {
|
551
|
+
if(console.log)
|
552
|
+
console.log(value);
|
553
|
+
},
|
554
|
+
preloadThumbnails: function() {
|
555
|
+
var thumbnails = [];
|
556
|
+
for(i=0;i<this.galleryData.length;i++)
|
557
|
+
{
|
558
|
+
thumbnails[parseInt(i)] = this.galleryData[i].thumbnail;
|
559
|
+
}
|
560
|
+
this.thumbnailPreloader = new Preloader();
|
561
|
+
if (!this.options.useExternalCarousel)
|
562
|
+
this.thumbnailPreloader.addEvent('onComplete', function() {
|
563
|
+
var textShowCarousel = formatString(this.options.textShowCarousel, this.currentIter+1, this.maxIter);
|
564
|
+
this.carouselBtn.set('html', textShowCarousel).setProperty('title', textShowCarousel);
|
565
|
+
}.bind(this));
|
566
|
+
this.thumbnailPreloader.load(thumbnails);
|
567
|
+
},
|
568
|
+
clearThumbnailsHighlights: function()
|
569
|
+
{
|
570
|
+
for(i=0;i<this.galleryData.length;i++)
|
571
|
+
{
|
572
|
+
this.thumbnailElements[i].cancel();
|
573
|
+
this.thumbnailElements[i].start(0.2);
|
574
|
+
}
|
575
|
+
},
|
576
|
+
changeThumbnailsSize: function(width, height)
|
577
|
+
{
|
578
|
+
for(i=0;i<this.galleryData.length;i++)
|
579
|
+
{
|
580
|
+
this.thumbnailElements[i].cancel();
|
581
|
+
this.thumbnailElements[i].element.setStyles({
|
582
|
+
'width': width + "px",
|
583
|
+
'height': height + "px"
|
584
|
+
});
|
585
|
+
}
|
586
|
+
},
|
587
|
+
centerCarouselOn: function(num) {
|
588
|
+
if (!this.carouselWallMode)
|
589
|
+
{
|
590
|
+
var carouselElement = this.thumbnailElements[num];
|
591
|
+
var position = carouselElement.element.offsetLeft + (carouselElement.element.offsetWidth / 2);
|
592
|
+
var carouselWidth = this.carouselWrapper.element.offsetWidth;
|
593
|
+
var carouselInnerWidth = this.carouselInner.offsetWidth;
|
594
|
+
var diffWidth = carouselWidth / 2;
|
595
|
+
var scrollPos = position-diffWidth;
|
596
|
+
this.carouselWrapper.elementScroller.start(scrollPos,0);
|
597
|
+
}
|
598
|
+
},
|
599
|
+
initInfoSlideshow: function() {
|
600
|
+
/*if (this.slideInfoZone.element)
|
601
|
+
this.slideInfoZone.element.remove();*/
|
602
|
+
this.slideInfoZone = new Fx.Morph(new Element('div').addClass('slideInfoZone').injectInside($(this.galleryElement))).set({'opacity':0});
|
603
|
+
var slideInfoZoneTitle = new Element('h2').injectInside(this.slideInfoZone.element);
|
604
|
+
var slideInfoZoneDescription = new Element('p').injectInside(this.slideInfoZone.element);
|
605
|
+
this.slideInfoZone.normalHeight = this.slideInfoZone.element.offsetHeight;
|
606
|
+
this.slideInfoZone.element.setStyle('opacity',0);
|
607
|
+
},
|
608
|
+
changeInfoSlideShow: function()
|
609
|
+
{
|
610
|
+
this.hideInfoSlideShow.delay(10, this);
|
611
|
+
this.showInfoSlideShow.delay(500, this);
|
612
|
+
},
|
613
|
+
showInfoSlideShow: function() {
|
614
|
+
this.fireEvent('onShowInfopane');
|
615
|
+
this.slideInfoZone.cancel();
|
616
|
+
element = this.slideInfoZone.element;
|
617
|
+
element.getElement('h2').set('html', this.galleryData[this.currentIter].title);
|
618
|
+
element.getElement('p').set('html', this.galleryData[this.currentIter].description);
|
619
|
+
if(this.options.slideInfoZoneSlide)
|
620
|
+
this.slideInfoZone.start({'opacity': [0, this.options.slideInfoZoneOpacity], 'height': [0, this.slideInfoZone.normalHeight]});
|
621
|
+
else
|
622
|
+
this.slideInfoZone.start({'opacity': [0, this.options.slideInfoZoneOpacity]});
|
623
|
+
if (this.options.showCarousel)
|
624
|
+
this.slideInfoZone.chain(this.centerCarouselOn.pass(this.currentIter, this));
|
625
|
+
return this.slideInfoZone;
|
626
|
+
},
|
627
|
+
hideInfoSlideShow: function() {
|
628
|
+
this.fireEvent('onHideInfopane');
|
629
|
+
this.slideInfoZone.cancel();
|
630
|
+
if(this.options.slideInfoZoneSlide)
|
631
|
+
this.slideInfoZone.start({'opacity': 0, 'height': 0});
|
632
|
+
else
|
633
|
+
this.slideInfoZone.start({'opacity': 0});
|
634
|
+
return this.slideInfoZone;
|
635
|
+
},
|
636
|
+
makeLink: function(num) {
|
637
|
+
if(this.options.useMediaboxAdvanced){
|
638
|
+
this.currentLink.setProperties({
|
639
|
+
href: this.galleryData[num].link,
|
640
|
+
title: this.galleryData[num].description,
|
641
|
+
rel: 'lightbox[gal]'
|
642
|
+
});
|
643
|
+
if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
|
644
|
+
this.currentLink.setStyle('display', 'block');
|
645
|
+
this.currentLink.mediabox({}, null, function(el) {
|
646
|
+
return (this == el) || ((this.rel.length > 8) && (this.rel == el.rel));
|
647
|
+
});
|
648
|
+
}
|
649
|
+
else{
|
650
|
+
this.currentLink.setProperties({
|
651
|
+
href: this.galleryData[num].link,
|
652
|
+
title: this.galleryData[num].linkTitle
|
653
|
+
})
|
654
|
+
if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
|
655
|
+
this.currentLink.setStyle('display', 'block');
|
656
|
+
}
|
657
|
+
},
|
658
|
+
clearLink: function() {
|
659
|
+
this.currentLink.setProperties({href: '', title: ''});
|
660
|
+
if (!((this.options.embedLinks) && (!this.options.showArrows) && (!this.options.showCarousel)))
|
661
|
+
this.currentLink.setStyle('display', 'none');
|
662
|
+
},
|
663
|
+
makeReMooz: function() {
|
664
|
+
this.currentLink.setProperties({
|
665
|
+
href: '#'
|
666
|
+
});
|
667
|
+
this.currentLink.setStyles({
|
668
|
+
'display': 'block'
|
669
|
+
});
|
670
|
+
|
671
|
+
this.galleryElements[this.currentIter].element.set('title', this.galleryData[this.currentIter].title + ' :: ' + this.galleryData[this.currentIter].description);
|
672
|
+
this.ReMooz = new ReMooz(this.galleryElements[this.currentIter].element, {
|
673
|
+
link: this.galleryData[this.currentIter].link,
|
674
|
+
shadow: false,
|
675
|
+
dragging: false,
|
676
|
+
addClick: false,
|
677
|
+
resizeOpacity: 1
|
678
|
+
});
|
679
|
+
var img = this.galleryElements[this.currentIter];
|
680
|
+
var coords = img.element.getCoordinates();
|
681
|
+
delete coords.right;
|
682
|
+
delete coords.bottom;
|
683
|
+
|
684
|
+
widthDiff = coords.width - img.width;
|
685
|
+
heightDiff = coords.height - img.height;
|
686
|
+
|
687
|
+
coords.width = img.width;
|
688
|
+
coords.height = img.height;
|
689
|
+
|
690
|
+
coords.left += Math.ceil(widthDiff/2)+1;
|
691
|
+
coords.top += Math.ceil(heightDiff/2)+1;
|
692
|
+
|
693
|
+
this.ReMooz.getOriginCoordinates = function(coords) {
|
694
|
+
return coords;
|
695
|
+
}.bind(this, coords);
|
696
|
+
this.currentLink.onclick = function () {
|
697
|
+
this.ReMooz.open.bind(this.ReMooz)();
|
698
|
+
return false;
|
699
|
+
}.bind(this);
|
700
|
+
},
|
701
|
+
/* To change the gallery data, those two functions : */
|
702
|
+
flushGallery: function() {
|
703
|
+
this.galleryElements.each(function(myFx) {
|
704
|
+
myFx.element.dispose();
|
705
|
+
myFx = myFx.element = null;
|
706
|
+
});
|
707
|
+
this.galleryElements = [];
|
708
|
+
},
|
709
|
+
changeData: function(data) {
|
710
|
+
this.galleryData = data;
|
711
|
+
this.clearTimer();
|
712
|
+
this.flushGallery();
|
713
|
+
if (this.options.showCarousel) this.flushCarousel();
|
714
|
+
this.constructElements();
|
715
|
+
if (this.options.showCarousel) this.fillCarousel();
|
716
|
+
if (this.options.showInfopane) this.hideInfoSlideShow();
|
717
|
+
this.galleryInit=1;
|
718
|
+
this.lastIter=0;
|
719
|
+
this.currentIter=0;
|
720
|
+
this.doSlideShow(1);
|
721
|
+
},
|
722
|
+
/* Plugins: HistoryManager */
|
723
|
+
initHistory: function() {
|
724
|
+
this.fireEvent('onHistoryInit');
|
725
|
+
this.historyKey = this.galleryElement.id + '-picture';
|
726
|
+
if (this.options.customHistoryKey)
|
727
|
+
this.historyKey = this.options.customHistoryKey;
|
728
|
+
|
729
|
+
this.history = new History.Route({
|
730
|
+
defaults: [1],
|
731
|
+
pattern: this.historyKey + '\\((\\d+)\\)',
|
732
|
+
generate: function(values) {
|
733
|
+
return [this.historyKey, '(', values[0], ')'].join('')
|
734
|
+
}.bind(this),
|
735
|
+
onMatch: function(values, defaults) {
|
736
|
+
if (parseInt(values[0])-1 < this.maxIter)
|
737
|
+
this.goTo(parseInt(values[0])-1);
|
738
|
+
}.bind(this)
|
739
|
+
});
|
740
|
+
this.addEvent('onChanged', function(){
|
741
|
+
this.history.setValue(0, this.currentIter+1);
|
742
|
+
this.history.defaults=[this.currentIter+1];
|
743
|
+
}.bind(this));
|
744
|
+
this.fireEvent('onHistoryInited');
|
745
|
+
}
|
746
|
+
};
|
747
|
+
gallery = new Class(gallery);
|
748
|
+
|
749
|
+
gallery.Transitions = new Hash ({
|
750
|
+
fade: function(oldFx, newFx, oldPos, newPos){
|
751
|
+
oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear;
|
752
|
+
oldFx.options.duration = newFx.options.duration = this.options.fadeDuration;
|
753
|
+
if (newPos > oldPos) newFx.start({opacity: 1});
|
754
|
+
else
|
755
|
+
{
|
756
|
+
newFx.set({opacity: 1});
|
757
|
+
oldFx.start({opacity: 0});
|
758
|
+
}
|
759
|
+
},
|
760
|
+
crossfade: function(oldFx, newFx, oldPos, newPos){
|
761
|
+
oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear;
|
762
|
+
oldFx.options.duration = newFx.options.duration = this.options.fadeDuration;
|
763
|
+
newFx.start({opacity: 1});
|
764
|
+
oldFx.start({opacity: 0});
|
765
|
+
},
|
766
|
+
fadebg: function(oldFx, newFx, oldPos, newPos){
|
767
|
+
oldFx.options.transition = newFx.options.transition = Fx.Transitions.linear;
|
768
|
+
oldFx.options.duration = newFx.options.duration = this.options.fadeDuration / 2;
|
769
|
+
oldFx.start({opacity: 0}).chain(newFx.start.pass([{opacity: 1}], newFx));
|
770
|
+
}
|
771
|
+
});
|
772
|
+
|
773
|
+
/* All code copyright 2007 Jonathan Schemoul */
|
774
|
+
|
775
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
776
|
+
* Follows: Preloader (class)
|
777
|
+
* Simple class for preloading images with support for progress reporting
|
778
|
+
* Copyright 2007 Tomocchino.
|
779
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
780
|
+
|
781
|
+
var Preloader = new Class({
|
782
|
+
|
783
|
+
Implements: [Events, Options],
|
784
|
+
|
785
|
+
options: {
|
786
|
+
root : '',
|
787
|
+
period : 100
|
788
|
+
},
|
789
|
+
|
790
|
+
initialize: function(options){
|
791
|
+
this.setOptions(options);
|
792
|
+
},
|
793
|
+
|
794
|
+
load: function(sources) {
|
795
|
+
this.index = 0;
|
796
|
+
this.images = [];
|
797
|
+
this.sources = this.temps = sources;
|
798
|
+
this.total = this. sources.length;
|
799
|
+
|
800
|
+
this.fireEvent('onStart', [this.index, this.total]);
|
801
|
+
this.timer = this.progress.periodical(this.options.period, this);
|
802
|
+
|
803
|
+
this.sources.each(function(source, index){
|
804
|
+
this.images[index] = new Asset.image(this.options.root + source, {
|
805
|
+
'onload' : function(){ this.index++; if(this.images[index]) this.fireEvent('onLoad', [this.images[index], index, source]); }.bind(this),
|
806
|
+
'onerror' : function(){ this.index++; this.fireEvent('onError', [this.images.splice(index, 1), index, source]); }.bind(this),
|
807
|
+
'onabort' : function(){ this.index++; this.fireEvent('onError', [this.images.splice(index, 1), index, source]); }.bind(this)
|
808
|
+
});
|
809
|
+
}, this);
|
810
|
+
},
|
811
|
+
|
812
|
+
progress: function() {
|
813
|
+
this.fireEvent('onProgress', [Math.min(this.index, this.total), this.total]);
|
814
|
+
if(this.index >= this.total) this.complete();
|
815
|
+
},
|
816
|
+
|
817
|
+
complete: function(){
|
818
|
+
$clear(this.timer);
|
819
|
+
this.fireEvent('onComplete', [this.images]);
|
820
|
+
},
|
821
|
+
|
822
|
+
cancel: function(){
|
823
|
+
$clear(this.timer);
|
824
|
+
}
|
825
|
+
|
826
|
+
});
|
827
|
+
|
828
|
+
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
|
829
|
+
* Follows: formatString (function)
|
830
|
+
* Original name: Yahoo.Tools.printf
|
831
|
+
* Copyright Yahoo.
|
832
|
+
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
|
833
|
+
|
834
|
+
function formatString() {
|
835
|
+
var num = arguments.length;
|
836
|
+
var oStr = arguments[0];
|
837
|
+
for (var i = 1; i < num; i++) {
|
838
|
+
var pattern = "\\{" + (i-1) + "\\}";
|
839
|
+
var re = new RegExp(pattern, "g");
|
840
|
+
oStr = oStr.replace(re, arguments[i]);
|
841
|
+
}
|
842
|
+
return oStr;
|
843
|
+
}
|