From 7d68ea52270bf69611d0b0ca1a2bcd64740a5f7a Mon Sep 17 00:00:00 2001 From: Stian Lund Date: Sun, 3 Mar 2024 13:51:38 +0100 Subject: [PATCH] New repo --- README.md | 32 + .../controllers/admin_navcarousel.php | 134 + .../navcarousel/controllers/navcarousel.php | 62 + modules/.not-used/navcarousel/css/credits.txt | 1 + modules/.not-used/navcarousel/css/skin.css | 122 + .../navcarousel/helpers/navcarousel_event.php | 28 + .../navcarousel/helpers/navcarousel_theme.php | 43 + .../navcarousel/images/ajax-loader.gif | Bin 0 -> 3208 bytes .../navcarousel/images/next-horizontal.png | Bin 0 -> 2363 bytes .../navcarousel/images/prev-horizontal.png | Bin 0 -> 2344 bytes .../navcarousel/js/jquery.jcarousel.js | 917 + .../navcarousel/js/jquery.jcarousel.min.js | 16 + modules/.not-used/navcarousel/module.info | 3 + .../views/admin_navcarousel.html.php | 17 + .../navcarousel/views/navcarousel.html.php | 202 + .../register/controllers/admin_register.php | 157 + .../register/controllers/register.php | 196 + modules/.not-used/register/css/register.css | 1 + .../.not-used/register/helpers/register.php | 138 + .../register/helpers/register_event.php | 38 + .../register/helpers/register_installer.php | 70 + .../register/helpers/register_theme.php | 33 + .../register/models/pending_user.php | 21 + modules/.not-used/register/module.info | 7 + .../register/views/admin_register.html.php | 98 + .../views/confirm_registration.html.php | 18 + .../views/register_admin_notify.html.php | 15 + .../register/views/register_welcome.html.php | 17 + .../views/register_welcome_message.html.php | 36 + .../register_welcome_message_loader.html.php | 7 + .../controllers/admin_tag_cloud_html5.php | 252 + .../tag_cloud_html5/controllers/tag_cloud.php | 114 + .../css/admin_tag_cloud_html5.css | 17 + .../tag_cloud_html5/css/tag_cloud_html5.css | 106 + .../helpers/tag_cloud_html5_block.php | 67 + .../helpers/tag_cloud_html5_event.php | 28 + .../helpers/tag_cloud_html5_installer.php | 177 + .../helpers/tag_cloud_html5_theme.php | 25 + .../tag_cloud_html5/js/excanvas.compiled.js | 35 + .../js/jquery.tagcanvas.mod.js | 1014 ++ .../js/jquery.tagcanvas.mod.min.js | 30 + .../libraries/MY_Form_Input.php | 58 + modules/.not-used/tag_cloud_html5/module.info | 7 + .../views/admin_tag_cloud_html5.html.php | 29 + .../views/tag_cloud_html5_block.html.php | 40 + .../views/tag_cloud_html5_embed.html.php | 59 + .../views/tag_cloud_html5_page.html.php | 40 + .../user_albums/helpers/user_albums_event.php | 53 + modules/.not-used/user_albums/module.info | 7 + modules/albumtree/helpers/albumtree_block.php | 38 + .../albumtree/helpers/albumtree_installer.php | 33 + modules/albumtree/images/empty.gif | Bin 0 -> 62 bytes modules/albumtree/images/join.gif | Bin 0 -> 1621 bytes modules/albumtree/images/join_rtl.gif | Bin 0 -> 1619 bytes modules/albumtree/images/joinbottom.gif | Bin 0 -> 1616 bytes modules/albumtree/images/joinbottom_rtl.gif | Bin 0 -> 1614 bytes modules/albumtree/images/line.gif | Bin 0 -> 1616 bytes modules/albumtree/images/line_rtl.gif | Bin 0 -> 1615 bytes modules/albumtree/images/minus.gif | Bin 0 -> 1634 bytes modules/albumtree/images/minus_rtl.gif | Bin 0 -> 1634 bytes modules/albumtree/images/minusbottom.gif | Bin 0 -> 1633 bytes modules/albumtree/images/minusbottom_rtl.gif | Bin 0 -> 1633 bytes modules/albumtree/images/nolines_minus.gif | Bin 0 -> 1627 bytes modules/albumtree/images/nolines_plus.gif | Bin 0 -> 1630 bytes modules/albumtree/images/plus.gif | Bin 0 -> 1636 bytes modules/albumtree/images/plus_rtl.gif | Bin 0 -> 1637 bytes modules/albumtree/images/plusbottom.gif | Bin 0 -> 1634 bytes modules/albumtree/images/plusbottom_rtl.gif | Bin 0 -> 1636 bytes modules/albumtree/module.info | 7 + .../views/albumtree_block_dtree.html.php | 413 + .../views/albumtree_block_list.html.php | 30 + .../views/albumtree_block_select.html.php | 16 + modules/arrow_nav/helpers/arrow_nav_theme.php | 24 + modules/arrow_nav/js/arrow_nav.js | 74 + modules/arrow_nav/module.info | 7 + modules/batchtag/controllers/batchtag.php | 117 + modules/batchtag/helpers/batchtag_block.php | 61 + modules/batchtag/helpers/batchtag_event.php | 40 + .../batchtag/helpers/batchtag_installer.php | 41 + modules/batchtag/module.info | 7 + .../batchtag/views/batchtag_block.html.php | 8 + .../captionator/controllers/captionator.php | 84 + .../captionator/helpers/captionator_event.php | 33 + modules/captionator/module.info | 7 + .../views/captionator_dialog.html.php | 68 + .../controllers/admin_custom_menus.php | 254 + .../helpers/custom_menus_event.php | 75 + .../helpers/custom_menus_installer.php | 37 + modules/custom_menus/models/custom_menu.php | 21 + modules/custom_menus/module.info | 7 + .../views/admin_custom_menus.html.php | 8 + .../helpers/database_info_block.php | 36 + modules/database_info/module.info | 7 + .../views/admin_block_db.html.php | 18 + .../helpers/delete_cache_task.php | 70 + modules/delete_cache/module.info | 7 + .../controllers/admin_downloadfullsize.php | 93 + .../controllers/downloadfullsize.php | 37 + .../css/downloadfullsize_menu.css | 3 + .../helpers/downloadfullsize_block.php | 51 + .../helpers/downloadfullsize_event.php | 57 + .../helpers/downloadfullsize_theme.php | 26 + .../images/ico-view-downloadfullsize.png | Bin 0 -> 4125 bytes modules/downloadfullsize/module.info | 7 + .../views/admin_downloadfullsize.html.php | 5 + .../views/downloadfullsize_block.html.php | 18 + modules/dupcheck/controllers/dupcheck.php | 103 + modules/dupcheck/helpers/dupcheck.php | 88 + modules/dupcheck/helpers/dupcheck_event.php | 46 + .../dupcheck/helpers/dupcheck_installer.php | 43 + modules/dupcheck/helpers/dupcheck_task.php | 89 + modules/dupcheck/models/fullsize_md5sum.php | 21 + modules/dupcheck/module.info | 7 + modules/dupcheck/views/dupespage.html.php | 54 + .../exif_gps/controllers/admin_exif_gps.php | 158 + modules/exif_gps/controllers/exif_gps.php | 175 + modules/exif_gps/css/exif_gps_menu.css | 6 + modules/exif_gps/helpers/exif_gps.php | 72 + modules/exif_gps/helpers/exif_gps_block.php | 163 + modules/exif_gps/helpers/exif_gps_event.php | 269 + .../exif_gps/helpers/exif_gps_installer.php | 98 + modules/exif_gps/helpers/exif_gps_task.php | 87 + modules/exif_gps/helpers/exif_gps_theme.php | 25 + .../images/exif_gps-loading-map-large.gif | Bin 0 -> 2892 bytes .../images/ico-view-exif_gps_album.png | Bin 0 -> 4835 bytes .../images/ico-view-exif_gps_user.png | Bin 0 -> 4919 bytes .../exif_gps/js/markerclusterer_compiled.js | 21 + modules/exif_gps/models/exif_coordinate.php | 21 + modules/exif_gps/module.info | 7 + .../exif_gps/views/admin_exif_gps.html.php | 9 + .../osm/exif_gps_coordinates_geojson.html.php | 33 + .../osm/exif_gps_coordinates_xml.html.php | 21 + .../osm/exif_gps_dynamic_sidebar.html.php | 63 + .../exif_gps/views/osm/exif_gps_map.html.php | 65 + .../views/osm/exif_gps_maps_sidebar.html.php | 9 + .../views/osm/user_profile_exif_gps.html.php | 58 + .../helpers/gallerystats_block.php | 46 + .../helpers/gallerystats_installer.php | 24 + modules/gallerystats/module.info | 3 + .../views/gallerystats_block.html.php | 16 + modules/greydragon/changelog.txt | 11 + modules/greydragon/css/gd_common.css | 59 + modules/greydragon/images/blue-grad.png | Bin 0 -> 337 bytes modules/greydragon/module.info | 9 + .../views/gd_admin_include.html.php | 180 + modules/image_fit/helpers/image_fit_theme.php | 37 + modules/image_fit/js/jquery.imagefit.js | 48 + modules/image_fit/module.info | 7 + .../controllers/latestupdates.php | 596 + .../css/latestupdates_jcarousel.css | 95 + .../helpers/latestupdates_block.php | 52 + .../helpers/latestupdates_event.php | 29 + .../helpers/latestupdates_theme.php | 27 + modules/latestupdates/images/imageNavLeft.gif | Bin 0 -> 538 bytes .../images/imageNavLeftHover.gif | Bin 0 -> 615 bytes .../latestupdates/images/imageNavRight.gif | Bin 0 -> 535 bytes .../images/imageNavRightHover.gif | Bin 0 -> 613 bytes .../latestupdates/js/jcarousellite_1.0.1.js | 341 + modules/latestupdates/module.info | 7 + .../views/latestupdates_block.html.php | 10 + ...testupdates_user_profile_carousel.html.php | 37 + .../latestupdates_user_profile_info.html.php | 14 + .../controllers/admin_moduleorder.php | 83 + modules/moduleorder/helpers/moduleorder.php | 32 + .../moduleorder/helpers/moduleorder_event.php | 39 + .../helpers/moduleorder_installer.php | 38 + modules/moduleorder/module.info | 7 + .../views/admin_moduleorder.html.php | 59 + .../views/admin_moduleorder_blocks.html.php | 10 + .../controllers/admin_movie_tools.php | 99 + modules/movie_tools/helpers/movie_tools.php | 141 + .../movie_tools/helpers/movie_tools_event.php | 42 + .../helpers/movie_tools_installer.php | 39 + modules/movie_tools/module.info | 7 + .../views/admin_movie_tools.html.php | 37 + .../permissions_dialog_usability/module.info | 7 + .../views/permissions_form.html.php | 92 + .../controllers/admin_reset_count.php | 75 + .../controllers/admin_reset_counts.php | 71 + .../helpers/reset_counts_event.php | 62 + .../helpers/reset_counts_installer.php | 28 + modules/reset_counts/module.info | 7 + .../views/admin_reset_count.html.php | 5 + .../views/admin_reset_counts.html.php | 6 + modules/rwinfo/helpers/rwinfo_block.php | 178 + modules/rwinfo/helpers/rwinfo_installer.php | 45 + modules/rwinfo/helpers/rwinfo_theme.php | 94 + modules/rwinfo/module.info | 7 + modules/rwinfo/notes.txt | 10 + modules/rwinfo/views/rwinfo_block.html.php | 8 + .../controllers/tag_cloud_page.php | 66 + modules/tag_cloud_page/css/tag_cloud_page.css | 73 + .../helpers/tag_cloud_page_block.php | 40 + .../helpers/tag_cloud_page_event.php | 40 + .../helpers/tag_cloud_page_installer.php | 32 + .../helpers/tag_cloud_page_theme.php | 30 + modules/tag_cloud_page/js/tag_cloud_page.js | 89 + modules/tag_cloud_page/module.info | 7 + .../views/tag_cloud_page_block.html.php | 2 + .../views/tag_cloud_page_cloud.html.php | 35 + .../controllers/admin_themedispatcher.php | 105 + .../controllers/themedispatcher.php | 40 + .../css/admin_themedispatcher.css | 15 + .../themedispatcher/css/themedispatcher.css | 7 + modules/themedispatcher/helpers/MY_theme.php | 102 + .../helpers/themedispatcher.php | 34 + .../helpers/themedispatcher_event.php | 28 + .../helpers/themedispatcher_installer.php | 29 + .../helpers/themedispatcher_theme.php | 52 + modules/themedispatcher/module.info | 7 + .../views/admin_themedispatcher.html.php | 23 + .../treeview/controllers/admin_treeview.php | 116 + modules/treeview/controllers/treeview.php | 44 + modules/treeview/css/treeview.css | 91 + modules/treeview/helpers/treeview_block.php | 39 + modules/treeview/helpers/treeview_event.php | 40 + .../treeview/helpers/treeview_installer.php | 59 + modules/treeview/helpers/treeview_theme.php | 26 + modules/treeview/images/empty.gif | Bin 0 -> 62 bytes modules/treeview/images/join.gif | Bin 0 -> 69 bytes modules/treeview/images/join_rtl.gif | Bin 0 -> 67 bytes modules/treeview/images/joinbottom.gif | Bin 0 -> 66 bytes modules/treeview/images/joinbottom_rtl.gif | Bin 0 -> 64 bytes modules/treeview/images/line.gif | Bin 0 -> 66 bytes modules/treeview/images/line_rtl.gif | Bin 0 -> 65 bytes modules/treeview/images/minus.gif | Bin 0 -> 85 bytes modules/treeview/images/minus_rtl.gif | Bin 0 -> 85 bytes modules/treeview/images/minusbottom.gif | Bin 0 -> 83 bytes modules/treeview/images/minusbottom_rtl.gif | Bin 0 -> 83 bytes modules/treeview/images/nolines_minus.gif | Bin 0 -> 861 bytes modules/treeview/images/nolines_plus.gif | Bin 0 -> 870 bytes modules/treeview/images/plus.gif | Bin 0 -> 85 bytes modules/treeview/images/plus_rtl.gif | Bin 0 -> 85 bytes modules/treeview/images/plusbottom.gif | Bin 0 -> 84 bytes modules/treeview/images/plusbottom_rtl.gif | Bin 0 -> 85 bytes modules/treeview/module.info | 7 + .../treeview/views/admin_treeview.html.php | 11 + .../treeview/views/treeview_block.html.php | 2 + .../views/treeview_page_csstree.html.php | 133 + .../views/treeview_page_dtree.html.php | 529 + .../views/treeview_page_list.html.php | 115 + .../user_info/controllers/admin_user_info.php | 250 + modules/user_info/helpers/user_info_block.php | 56 + modules/user_info/helpers/user_info_event.php | 100 + .../user_info/helpers/user_info_installer.php | 82 + modules/user_info/models/user_info.php | 21 + modules/user_info/module.info | 7 + .../views/admin_block_user_info.html.php | 118 + .../user_info/views/admin_user_info.html.php | 6 + .../views/admin_user_info_lookupip.html.php | 8 + .../admin/controllers/admin_theme_options.php | 134 + themes/clean_canvas/css/calendarview_menu.css | 3 + .../clean_canvas/css/clean/screen_candy.css | 406 + .../clean_canvas/css/clean/screen_colors.css | 407 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_20_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_e6e4d0_40x100.png | Bin 0 -> 183 bytes .../images/ui-bg_glass_75_dedede_1x400.png | Bin 0 -> 113 bytes .../images/ui-bg_glass_85_e6e6e6_1x400.png | Bin 0 -> 108 bytes .../images/ui-bg_glass_95_f4f2f1_1x400.png | Bin 0 -> 121 bytes .../ui-bg_gloss-wave_55_7a7a7a_500x100.png | Bin 0 -> 2258 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_6f8bb3_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_737373_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_833434_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_8f8461_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_8f8f8f_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_9e9e9e_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_dedede_256x240.png | Bin 0 -> 4369 bytes .../css/clean/themeroller/ui.base.css | 7 + .../css/clean/themeroller/ui.core.css | 37 + .../css/clean/themeroller/ui.datepicker.css | 62 + .../css/clean/themeroller/ui.dialog.css | 13 + .../css/clean/themeroller/ui.progressbar.css | 4 + .../css/clean/themeroller/ui.resizable.css | 13 + .../css/clean/themeroller/ui.tabs.css | 9 + .../css/clean/themeroller/ui.theme.css | 246 + themes/clean_canvas/css/dark/screen_candy.css | 419 + .../clean_canvas/css/dark/screen_colors.css | 422 + .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_20_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_e6e4d0_40x100.png | Bin 0 -> 183 bytes .../images/ui-bg_glass_75_dedede_1x400.png | Bin 0 -> 113 bytes .../images/ui-bg_glass_85_e6e6e6_1x400.png | Bin 0 -> 108 bytes .../images/ui-bg_glass_95_f4f2f1_1x400.png | Bin 0 -> 121 bytes .../ui-bg_gloss-wave_55_7a7a7a_500x100.png | Bin 0 -> 2258 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_6f8bb3_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_737373_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_833434_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_8f8461_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_8f8f8f_256x240.png | Bin 0 -> 5355 bytes .../images/ui-icons_9e9e9e_256x240.png | Bin 0 -> 4369 bytes .../images/ui-icons_dedede_256x240.png | Bin 0 -> 4369 bytes .../css/dark/themeroller/ui.base.css | 7 + .../css/dark/themeroller/ui.core.css | 37 + .../css/dark/themeroller/ui.datepicker.css | 62 + .../css/dark/themeroller/ui.dialog.css | 13 + .../css/dark/themeroller/ui.progressbar.css | 4 + .../css/dark/themeroller/ui.resizable.css | 13 + .../css/dark/themeroller/ui.tabs.css | 9 + .../css/dark/themeroller/ui.theme.css | 246 + .../css/downloadfullsize_menu.css | 3 + themes/clean_canvas/css/embedlinks_menu.css | 3 + themes/clean_canvas/css/fix-ie.css | 153 + .../clean_canvas/css/minislideshow_menu.css | 3 + themes/clean_canvas/css/screen_fonts.css | 298 + .../clean_canvas/css/screen_layout_base.css | 960 + .../clean_canvas/css/screen_layout_fixed.css | 70 + .../clean_canvas/css/screen_layout_wide.css | 69 + themes/clean_canvas/css/tagsmap_menu.css | 7 + themes/clean_canvas/images/avatar.jpg | Bin 0 -> 3851 bytes themes/clean_canvas/images/avatar.png | Bin 0 -> 3851 bytes themes/clean_canvas/images/canvaslogo.png | Bin 0 -> 12136 bytes .../clean_canvas/images/clean/background2.jpg | Bin 0 -> 13916 bytes .../images/clean/background_header.jpg | Bin 0 -> 13609 bytes .../clean_canvas/images/clean/ico-album.png | Bin 0 -> 3830 bytes .../clean_canvas/images/clean/ico-error.png | Bin 0 -> 701 bytes themes/clean_canvas/images/clean/ico-info.png | Bin 0 -> 778 bytes .../clean_canvas/images/clean/ico-print.png | Bin 0 -> 989 bytes .../images/clean/ico-separator-rtl.gif | Bin 0 -> 106 bytes .../images/clean/ico-separator.gif | Bin 0 -> 106 bytes .../clean_canvas/images/clean/ico-success.png | Bin 0 -> 537 bytes .../images/clean/ico-view-comments.png | Bin 0 -> 3049 bytes .../clean/ico-view-downloadarchive_new.png | Bin 0 -> 4209 bytes .../images/clean/ico-view-fullsize.png | Bin 0 -> 3577 bytes .../images/clean/ico-view-slideshow-rtl.png | Bin 0 -> 1137 bytes .../images/clean/ico-view-slideshow.png | Bin 0 -> 3087 bytes .../clean_canvas/images/clean/ico-warning.png | Bin 0 -> 666 bytes .../images/clean/loading-large.gif | Bin 0 -> 8238 bytes .../images/clean/loading-small.gif | Bin 0 -> 673 bytes .../images/clean/page_background.jpg | Bin 0 -> 31028 bytes .../clean_canvas/images/dark/dark_grid_bg.gif | Bin 0 -> 10735 bytes themes/clean_canvas/images/dark/ico-album.png | Bin 0 -> 3830 bytes themes/clean_canvas/images/dark/ico-error.png | Bin 0 -> 701 bytes themes/clean_canvas/images/dark/ico-info.png | Bin 0 -> 778 bytes themes/clean_canvas/images/dark/ico-print.png | Bin 0 -> 989 bytes .../images/dark/ico-separator-rtl.gif | Bin 0 -> 106 bytes .../images/dark/ico-separator.gif | Bin 0 -> 106 bytes .../clean_canvas/images/dark/ico-success.png | Bin 0 -> 537 bytes .../images/dark/ico-view-comments.png | Bin 0 -> 3049 bytes .../dark/ico-view-downloadarchive_new.png | Bin 0 -> 4209 bytes .../images/dark/ico-view-fullsize.png | Bin 0 -> 3577 bytes .../images/dark/ico-view-slideshow-rtl.png | Bin 0 -> 1137 bytes .../images/dark/ico-view-slideshow.png | Bin 0 -> 3087 bytes .../clean_canvas/images/dark/ico-warning.png | Bin 0 -> 666 bytes .../images/dark/loading-large.gif | Bin 0 -> 8238 bytes .../images/dark/loading-small.gif | Bin 0 -> 673 bytes .../images/ico-denied-inactive.png | Bin 0 -> 604 bytes .../images/ico-denied-passive.png | Bin 0 -> 916 bytes themes/clean_canvas/images/ico-denied.png | Bin 0 -> 715 bytes themes/clean_canvas/images/ico-lock.png | Bin 0 -> 749 bytes .../images/ico-success-inactive.png | Bin 0 -> 476 bytes .../images/ico-success-passive.png | Bin 0 -> 617 bytes themes/clean_canvas/images/ico-success.png | Bin 0 -> 537 bytes .../images/ico-view-calendarview.png | Bin 0 -> 653 bytes .../images/ico-view-downloadfullsize.png | Bin 0 -> 5197 bytes .../images/ico-view-embedlinks.png | Bin 0 -> 4234 bytes .../images/ico-view-minislideshow.png | Bin 0 -> 1179 bytes .../clean_canvas/images/ico-view-tagsmap.png | Bin 0 -> 4108 bytes themes/clean_canvas/js/ui.init.js | 131 + themes/clean_canvas/theme.info | 6 + themes/clean_canvas/thumbnail.png | Bin 0 -> 43644 bytes themes/clean_canvas/views/album.html.php | 73 + themes/clean_canvas/views/block.html.php | 10 + themes/clean_canvas/views/comment.html.php | 25 + themes/clean_canvas/views/dynamic.html.php | 29 + themes/clean_canvas/views/info_block.html.php | 31 + themes/clean_canvas/views/info_theme.php | 30 + themes/clean_canvas/views/movie.html.php | 19 + themes/clean_canvas/views/no_sidebar.html.php | 11 + themes/clean_canvas/views/page.html.php | 188 + themes/clean_canvas/views/paginator.html.php | 87 + themes/clean_canvas/views/photo.html.php | 97 + themes/clean_canvas/views/sidebar.html.php | 16 + .../views/user_languages_block.html.php | 23 + .../admin/controllers/admin_theme_options.php | 860 + .../admin/views/admin_theme_options.html.php | 38 + themes/greydragon/changelog.txt | 641 + themes/greydragon/controllers/greydragon.php | 14 + themes/greydragon/css/base.css | 322 + .../css/colorpacks/blackhawk/css/colors.css | 169 + .../blackhawk/images/ajax-loading.gif | Bin 0 -> 4782 bytes .../colorpacks/blackhawk/images/colorpack.png | Bin 0 -> 307 bytes .../colorpacks/blackhawk/images/ico-album.png | Bin 0 -> 351 bytes .../colorpacks/blackhawk/images/ico-error.png | Bin 0 -> 701 bytes .../colorpacks/blackhawk/images/ico-help.png | Bin 0 -> 786 bytes .../colorpacks/blackhawk/images/ico-info.png | Bin 0 -> 778 bytes .../blackhawk/images/ico-warning.png | Bin 0 -> 666 bytes .../blackhawk/images/loading-large.gif | Bin 0 -> 8238 bytes .../blackhawk/images/loading-small.gif | Bin 0 -> 673 bytes .../colorpacks/blackhawk/images/search.png | Bin 0 -> 969 bytes .../colorpacks/blackhawk/images/ui-icons.png | Bin 0 -> 13169 bytes .../blackhawk/images/view-calendar-b.png | Bin 0 -> 653 bytes .../blackhawk/images/view-calendar.png | Bin 0 -> 429 bytes .../blackhawk/images/view-comments-b.png | Bin 0 -> 600 bytes .../blackhawk/images/view-comments.png | Bin 0 -> 492 bytes .../blackhawk/images/view-fullsize-b.png | Bin 0 -> 699 bytes .../blackhawk/images/view-fullsize.png | Bin 0 -> 407 bytes .../blackhawk/images/view-info-b.png | Bin 0 -> 493 bytes .../blackhawk/images/view-info-o.png | Bin 0 -> 259 bytes .../colorpacks/blackhawk/images/view-info.png | Bin 0 -> 938 bytes .../blackhawk/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/carbon/css/colors.css | 188 + .../colorpacks/carbon/images/ajax-loading.gif | Bin 0 -> 4782 bytes .../colorpacks/carbon/images/colorpack.png | Bin 0 -> 286 bytes .../colorpacks/carbon/images/ico-album.png | Bin 0 -> 351 bytes .../colorpacks/carbon/images/ico-error.png | Bin 0 -> 701 bytes .../css/colorpacks/carbon/images/ico-help.png | Bin 0 -> 786 bytes .../css/colorpacks/carbon/images/ico-info.png | Bin 0 -> 778 bytes .../colorpacks/carbon/images/ico-warning.png | Bin 0 -> 666 bytes .../carbon/images/loading-large.gif | Bin 0 -> 8238 bytes .../carbon/images/loading-small.gif | Bin 0 -> 673 bytes .../css/colorpacks/carbon/images/search.png | Bin 0 -> 969 bytes .../css/colorpacks/carbon/images/section.png | Bin 0 -> 192 bytes .../css/colorpacks/carbon/images/ui-icons.png | Bin 0 -> 13162 bytes .../carbon/images/view-calendar-b.png | Bin 0 -> 653 bytes .../carbon/images/view-calendar.png | Bin 0 -> 429 bytes .../carbon/images/view-comments-b.png | Bin 0 -> 600 bytes .../carbon/images/view-comments.png | Bin 0 -> 492 bytes .../carbon/images/view-fullsize-b.png | Bin 0 -> 699 bytes .../carbon/images/view-fullsize.png | Bin 0 -> 407 bytes .../colorpacks/carbon/images/view-info-b.png | Bin 0 -> 493 bytes .../colorpacks/carbon/images/view-info-o.png | Bin 0 -> 259 bytes .../colorpacks/carbon/images/view-info.png | Bin 0 -> 938 bytes .../carbon/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/greydragon/css/colors.css | 173 + .../greydragon/images/ajax-loading.gif | Bin 0 -> 4782 bytes .../greydragon/images/background-bottom.gif | Bin 0 -> 1040 bytes .../greydragon/images/background-top.gif | Bin 0 -> 862 bytes .../greydragon/images/background.gif | Bin 0 -> 1098 bytes .../greydragon/images/colorpack.png | Bin 0 -> 414 bytes .../colorpacks/greydragon/images/footer.png | Bin 0 -> 376 bytes .../greydragon/images/ico-album.png | Bin 0 -> 351 bytes .../greydragon/images/ico-error.png | Bin 0 -> 701 bytes .../colorpacks/greydragon/images/ico-help.png | Bin 0 -> 786 bytes .../colorpacks/greydragon/images/ico-info.png | Bin 0 -> 778 bytes .../greydragon/images/ico-warning.png | Bin 0 -> 666 bytes .../greydragon/images/image-thumb.gif | Bin 0 -> 830 bytes .../greydragon/images/loading-large.gif | Bin 0 -> 8238 bytes .../greydragon/images/loading-small.gif | Bin 0 -> 673 bytes .../colorpacks/greydragon/images/search.png | Bin 0 -> 969 bytes .../colorpacks/greydragon/images/section.png | Bin 0 -> 192 bytes .../colorpacks/greydragon/images/ui-icons.png | Bin 0 -> 13160 bytes .../greydragon/images/view-calendar-b.png | Bin 0 -> 653 bytes .../greydragon/images/view-calendar.png | Bin 0 -> 429 bytes .../greydragon/images/view-comments-b.png | Bin 0 -> 600 bytes .../greydragon/images/view-comments.png | Bin 0 -> 492 bytes .../greydragon/images/view-fullsize-b.png | Bin 0 -> 699 bytes .../greydragon/images/view-fullsize.png | Bin 0 -> 407 bytes .../greydragon/images/view-info-b.png | Bin 0 -> 493 bytes .../greydragon/images/view-info-o.png | Bin 0 -> 259 bytes .../greydragon/images/view-info.png | Bin 0 -> 938 bytes .../greydragon/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/roundrobin/css/colors.css | 192 + .../roundrobin/images/ajax-loading.gif | Bin 0 -> 2545 bytes .../colorpacks/roundrobin/images/bg-body.jpg | Bin 0 -> 13916 bytes .../roundrobin/images/bg-header.jpg | Bin 0 -> 13609 bytes .../roundrobin/images/colorpack.png | Bin 0 -> 475 bytes .../colorpacks/roundrobin/images/gallery.png | Bin 0 -> 553 bytes .../roundrobin/images/ico-album.png | Bin 0 -> 351 bytes .../roundrobin/images/ico-error.png | Bin 0 -> 701 bytes .../colorpacks/roundrobin/images/ico-help.png | Bin 0 -> 786 bytes .../colorpacks/roundrobin/images/ico-info.png | Bin 0 -> 778 bytes .../roundrobin/images/ico-warning.png | Bin 0 -> 666 bytes .../roundrobin/images/loading-large.gif | Bin 0 -> 8238 bytes .../roundrobin/images/loading-small.gif | Bin 0 -> 673 bytes .../colorpacks/roundrobin/images/search.png | Bin 0 -> 550 bytes .../colorpacks/roundrobin/images/ui-icons.png | Bin 0 -> 14168 bytes .../roundrobin/images/view-calendar-b.png | Bin 0 -> 891 bytes .../roundrobin/images/view-calendar.png | Bin 0 -> 260 bytes .../roundrobin/images/view-comments-b.png | Bin 0 -> 600 bytes .../roundrobin/images/view-comments.png | Bin 0 -> 298 bytes .../roundrobin/images/view-fullsize-b.png | Bin 0 -> 670 bytes .../roundrobin/images/view-fullsize.png | Bin 0 -> 275 bytes .../roundrobin/images/view-info-b.png | Bin 0 -> 698 bytes .../roundrobin/images/view-info-o.png | Bin 0 -> 259 bytes .../roundrobin/images/view-info.png | Bin 0 -> 286 bytes .../roundrobin/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/slateblue/css/colors.css | 176 + .../slateblue/images/ajax-loading.gif | Bin 0 -> 4782 bytes .../slateblue/images/background.jpg | Bin 0 -> 907 bytes .../colorpacks/slateblue/images/colorpack.png | Bin 0 -> 414 bytes .../colorpacks/slateblue/images/footer.png | Bin 0 -> 376 bytes .../colorpacks/slateblue/images/ico-album.png | Bin 0 -> 351 bytes .../colorpacks/slateblue/images/ico-error.png | Bin 0 -> 701 bytes .../colorpacks/slateblue/images/ico-help.png | Bin 0 -> 786 bytes .../colorpacks/slateblue/images/ico-info.png | Bin 0 -> 778 bytes .../slateblue/images/ico-warning.png | Bin 0 -> 666 bytes .../slateblue/images/loading-large.gif | Bin 0 -> 8238 bytes .../slateblue/images/loading-small.gif | Bin 0 -> 673 bytes .../colorpacks/slateblue/images/search.png | Bin 0 -> 969 bytes .../colorpacks/slateblue/images/section.png | Bin 0 -> 192 bytes .../colorpacks/slateblue/images/ui-icons.png | Bin 0 -> 13160 bytes .../slateblue/images/view-calendar-b.png | Bin 0 -> 653 bytes .../slateblue/images/view-calendar.png | Bin 0 -> 429 bytes .../slateblue/images/view-comments-b.png | Bin 0 -> 600 bytes .../slateblue/images/view-comments.png | Bin 0 -> 492 bytes .../slateblue/images/view-fullsize-b.png | Bin 0 -> 699 bytes .../slateblue/images/view-fullsize.png | Bin 0 -> 407 bytes .../slateblue/images/view-info-b.png | Bin 0 -> 493 bytes .../slateblue/images/view-info-o.png | Bin 0 -> 259 bytes .../colorpacks/slateblue/images/view-info.png | Bin 0 -> 938 bytes .../slateblue/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/whitehawk/css/colors.css | 172 + .../whitehawk/images/ajax-loading.gif | Bin 0 -> 2545 bytes .../colorpacks/whitehawk/images/colorpack.png | Bin 0 -> 417 bytes .../colorpacks/whitehawk/images/gallery.png | Bin 0 -> 1383 bytes .../colorpacks/whitehawk/images/ico-album.png | Bin 0 -> 351 bytes .../colorpacks/whitehawk/images/ico-error.png | Bin 0 -> 701 bytes .../colorpacks/whitehawk/images/ico-help.png | Bin 0 -> 786 bytes .../colorpacks/whitehawk/images/ico-info.png | Bin 0 -> 778 bytes .../whitehawk/images/ico-warning.png | Bin 0 -> 666 bytes .../whitehawk/images/loading-large.gif | Bin 0 -> 8238 bytes .../whitehawk/images/loading-small.gif | Bin 0 -> 673 bytes .../colorpacks/whitehawk/images/search.png | Bin 0 -> 571 bytes .../colorpacks/whitehawk/images/ui-icons.png | Bin 0 -> 9914 bytes .../whitehawk/images/view-calendar-b.png | Bin 0 -> 891 bytes .../whitehawk/images/view-calendar.png | Bin 0 -> 260 bytes .../whitehawk/images/view-comments-b.png | Bin 0 -> 600 bytes .../whitehawk/images/view-comments.png | Bin 0 -> 298 bytes .../whitehawk/images/view-fullsize-b.png | Bin 0 -> 670 bytes .../whitehawk/images/view-fullsize.png | Bin 0 -> 275 bytes .../whitehawk/images/view-info-b.png | Bin 0 -> 698 bytes .../whitehawk/images/view-info-o.png | Bin 0 -> 259 bytes .../colorpacks/whitehawk/images/view-info.png | Bin 0 -> 286 bytes .../whitehawk/images/view-slideshow-b.png | Bin 0 -> 1179 bytes .../css/colorpacks/wind/css/colors.css | 175 + .../colorpacks/wind/images/ajax-loading.gif | Bin 0 -> 2545 bytes .../css/colorpacks/wind/images/colorpack.png | Bin 0 -> 397 bytes .../css/colorpacks/wind/images/ico-album.png | Bin 0 -> 351 bytes .../css/colorpacks/wind/images/ico-error.png | Bin 0 -> 701 bytes .../css/colorpacks/wind/images/ico-help.png | Bin 0 -> 786 bytes .../css/colorpacks/wind/images/ico-info.png | Bin 0 -> 778 bytes .../wind/images/ico-view-fullsize.png | Bin 0 -> 1207 bytes .../wind/images/ico-view-slideshow-rtl.png | Bin 0 -> 1013 bytes .../wind/images/ico-view-slideshow.png | Bin 0 -> 854 bytes .../colorpacks/wind/images/ico-warning.png | Bin 0 -> 666 bytes .../colorpacks/wind/images/loading-large.gif | Bin 0 -> 8238 bytes .../colorpacks/wind/images/loading-small.gif | Bin 0 -> 673 bytes .../css/colorpacks/wind/images/section.png | Bin 0 -> 314 bytes .../css/colorpacks/wind/images/ui-icons.png | Bin 0 -> 10682 bytes .../colorpacks/wind/images/view-calendar.png | Bin 0 -> 637 bytes .../wind/images/view-comments-b.png | Bin 0 -> 892 bytes .../colorpacks/wind/images/view-comments.png | Bin 0 -> 347 bytes .../colorpacks/wind/images/view-fullsize.png | Bin 0 -> 365 bytes .../colorpacks/wind/images/view-info-b.png | Bin 0 -> 698 bytes .../colorpacks/wind/images/view-info-o.png | Bin 0 -> 259 bytes .../css/colorpacks/wind/images/view-info.png | Bin 0 -> 383 bytes .../wind/images/view-slideshow-b.png | Bin 0 -> 1179 bytes themes/greydragon/css/forms.css | 120 + .../css/framepacks/android/css/frame.css | 32 + .../framepacks/android/images/thumb-dgt-e.png | Bin 0 -> 1482 bytes .../android/images/thumb-dgt-eext.png | Bin 0 -> 1939 bytes .../android/images/thumb-dgt-ext.png | Bin 0 -> 1791 bytes .../framepacks/android/images/thumb-dgt.png | Bin 0 -> 1447 bytes .../framepacks/android/images/thumb-flm-e.png | Bin 0 -> 1443 bytes .../android/images/thumb-flm-eext.png | Bin 0 -> 1796 bytes .../android/images/thumb-flm-ext.png | Bin 0 -> 1737 bytes .../framepacks/android/images/thumb-flm.png | Bin 0 -> 1413 bytes .../framepacks/android/images/thumb-sqr-e.png | Bin 0 -> 1579 bytes .../android/images/thumb-sqr-eext.png | Bin 0 -> 1916 bytes .../android/images/thumb-sqr-ext.png | Bin 0 -> 1900 bytes .../framepacks/android/images/thumb-sqr.png | Bin 0 -> 1544 bytes .../framepacks/android/images/thumb-wd-e.png | Bin 0 -> 1428 bytes .../android/images/thumb-wd-eext.png | Bin 0 -> 1720 bytes .../android/images/thumb-wd-ext.png | Bin 0 -> 1659 bytes .../framepacks/android/images/thumb-wd.png | Bin 0 -> 1379 bytes .../css/framepacks/book/css/frame.css | 64 + .../framepacks/book/images/a-thumb-dgt-e.png | Bin 0 -> 1130 bytes .../book/images/a-thumb-dgt-eext.png | Bin 0 -> 1579 bytes .../book/images/a-thumb-dgt-ext.png | Bin 0 -> 1513 bytes .../framepacks/book/images/a-thumb-dgt.png | Bin 0 -> 1062 bytes .../framepacks/book/images/a-thumb-flm-e.png | Bin 0 -> 1105 bytes .../book/images/a-thumb-flm-eext.png | Bin 0 -> 1478 bytes .../book/images/a-thumb-flm-ext.png | Bin 0 -> 1300 bytes .../framepacks/book/images/a-thumb-flm.png | Bin 0 -> 1030 bytes .../framepacks/book/images/a-thumb-sqr-e.png | Bin 0 -> 1283 bytes .../book/images/a-thumb-sqr-eext.png | Bin 0 -> 1863 bytes .../book/images/a-thumb-sqr-ext.png | Bin 0 -> 1733 bytes .../framepacks/book/images/a-thumb-sqr.png | Bin 0 -> 1225 bytes .../framepacks/book/images/a-thumb-wd-e.png | Bin 0 -> 1073 bytes .../book/images/a-thumb-wd-eext.png | Bin 0 -> 1371 bytes .../framepacks/book/images/a-thumb-wd-ext.png | Bin 0 -> 1265 bytes .../css/framepacks/book/images/a-thumb-wd.png | Bin 0 -> 991 bytes .../framepacks/book/images/thumb-dgt-e.png | Bin 0 -> 619 bytes .../framepacks/book/images/thumb-dgt-eext.png | Bin 0 -> 802 bytes .../framepacks/book/images/thumb-dgt-ext.png | Bin 0 -> 773 bytes .../css/framepacks/book/images/thumb-dgt.png | Bin 0 -> 575 bytes .../framepacks/book/images/thumb-flm-e.png | Bin 0 -> 613 bytes .../framepacks/book/images/thumb-flm-eext.png | Bin 0 -> 783 bytes .../framepacks/book/images/thumb-flm-ext.png | Bin 0 -> 625 bytes .../css/framepacks/book/images/thumb-flm.png | Bin 0 -> 587 bytes .../framepacks/book/images/thumb-sqr-e.png | Bin 0 -> 676 bytes .../framepacks/book/images/thumb-sqr-eext.png | Bin 0 -> 902 bytes .../framepacks/book/images/thumb-sqr-ext.png | Bin 0 -> 864 bytes .../css/framepacks/book/images/thumb-sqr.png | Bin 0 -> 648 bytes .../css/framepacks/book/images/thumb-wd-e.png | Bin 0 -> 600 bytes .../framepacks/book/images/thumb-wd-eext.png | Bin 0 -> 727 bytes .../framepacks/book/images/thumb-wd-ext.png | Bin 0 -> 695 bytes .../css/framepacks/book/images/thumb-wd.png | Bin 0 -> 575 bytes .../css/framepacks/darkglass/css/frame.css | 32 + .../darkglass/images/thumb-dgt-e.png | Bin 0 -> 1876 bytes .../darkglass/images/thumb-dgt-eext.png | Bin 0 -> 2132 bytes .../darkglass/images/thumb-dgt-ext.png | Bin 0 -> 2097 bytes .../framepacks/darkglass/images/thumb-dgt.png | Bin 0 -> 1873 bytes .../darkglass/images/thumb-flm-e.png | Bin 0 -> 1814 bytes .../darkglass/images/thumb-flm-eext.png | Bin 0 -> 2092 bytes .../darkglass/images/thumb-flm-ext.png | Bin 0 -> 2048 bytes .../framepacks/darkglass/images/thumb-flm.png | Bin 0 -> 1811 bytes .../darkglass/images/thumb-sqr-e.png | Bin 0 -> 1896 bytes .../darkglass/images/thumb-sqr-eext.png | Bin 0 -> 2220 bytes .../darkglass/images/thumb-sqr-ext.png | Bin 0 -> 2187 bytes .../framepacks/darkglass/images/thumb-sqr.png | Bin 0 -> 3675 bytes .../darkglass/images/thumb-wd-e.png | Bin 0 -> 1787 bytes .../darkglass/images/thumb-wd-eext.png | Bin 0 -> 2051 bytes .../darkglass/images/thumb-wd-ext.png | Bin 0 -> 2006 bytes .../framepacks/darkglass/images/thumb-wd.png | Bin 0 -> 1767 bytes .../css/framepacks/greydragon/css/frame.css | 43 + .../css/framepacks/iphone/css/frame.css | 31 + .../framepacks/iphone/images/thumb-dgt-e.png | Bin 0 -> 2923 bytes .../iphone/images/thumb-dgt-eext.png | Bin 0 -> 3544 bytes .../iphone/images/thumb-dgt-ext.png | Bin 0 -> 3449 bytes .../framepacks/iphone/images/thumb-dgt.png | Bin 0 -> 2813 bytes .../framepacks/iphone/images/thumb-flm-e.png | Bin 0 -> 2734 bytes .../iphone/images/thumb-flm-eext.png | Bin 0 -> 3414 bytes .../iphone/images/thumb-flm-ext.png | Bin 0 -> 3272 bytes .../framepacks/iphone/images/thumb-flm.png | Bin 0 -> 2612 bytes .../framepacks/iphone/images/thumb-sqr-e.png | Bin 0 -> 2848 bytes .../iphone/images/thumb-sqr-eext.png | Bin 0 -> 3930 bytes .../iphone/images/thumb-sqr-ext.png | Bin 0 -> 3850 bytes .../framepacks/iphone/images/thumb-sqr.png | Bin 0 -> 2759 bytes .../framepacks/iphone/images/thumb-wd-e.png | Bin 0 -> 2769 bytes .../iphone/images/thumb-wd-eext.png | Bin 0 -> 3108 bytes .../framepacks/iphone/images/thumb-wd-ext.png | Bin 0 -> 3012 bytes .../css/framepacks/iphone/images/thumb-wd.png | Bin 0 -> 2676 bytes .../css/framepacks/iphoto/css/frame.css | 31 + .../framepacks/iphoto/images/thumb-dgt-e.png | Bin 0 -> 1093 bytes .../iphoto/images/thumb-dgt-eext.png | Bin 0 -> 1294 bytes .../iphoto/images/thumb-dgt-ext.png | Bin 0 -> 1251 bytes .../framepacks/iphoto/images/thumb-dgt.png | Bin 0 -> 1065 bytes .../framepacks/iphoto/images/thumb-flm-e.png | Bin 0 -> 1071 bytes .../iphoto/images/thumb-flm-eext.png | Bin 0 -> 1258 bytes .../iphoto/images/thumb-flm-ext.png | Bin 0 -> 1218 bytes .../framepacks/iphoto/images/thumb-flm.png | Bin 0 -> 1045 bytes .../framepacks/iphoto/images/thumb-sqr-e.png | Bin 0 -> 1141 bytes .../iphoto/images/thumb-sqr-eext.png | Bin 0 -> 1382 bytes .../iphoto/images/thumb-sqr-ext.png | Bin 0 -> 1342 bytes .../framepacks/iphoto/images/thumb-sqr.png | Bin 0 -> 1110 bytes .../framepacks/iphoto/images/thumb-wd-e.png | Bin 0 -> 1056 bytes .../iphoto/images/thumb-wd-eext.png | Bin 0 -> 1209 bytes .../framepacks/iphoto/images/thumb-wd-ext.png | Bin 0 -> 1168 bytes .../css/framepacks/iphoto/images/thumb-wd.png | Bin 0 -> 1015 bytes .../framepacks/iphoto/views/frame.html.php | 5 + .../css/framepacks/panel/css/frame.css | 37 + .../css/framepacks/roundcorners/css/frame.css | 44 + .../css/framepacks/simple/css/frame.css | 39 + .../css/framepacks/wall/css/frame.css | 48 + themes/greydragon/css/ipad.css | 20 + themes/greydragon/css/layout.css | 77 + themes/greydragon/css/menus.css | 58 + themes/greydragon/css/modules.css | 165 + themes/greydragon/css/normalize.css | 431 + themes/greydragon/css/rtl.css | 47 + themes/greydragon/css/screen.css | 17 + themes/greydragon/helpers/exif_event.php | 45 + .../greydragon/helpers/greydragon_event.php | 92 + .../helpers/greydragon_installer.php | 30 + themes/greydragon/images/apple-touch-icon.png | Bin 0 -> 9420 bytes themes/greydragon/images/arrows_left.png | Bin 0 -> 1895 bytes themes/greydragon/images/arrows_right.png | Bin 0 -> 1826 bytes themes/greydragon/images/avatar.jpg | Bin 0 -> 1442 bytes themes/greydragon/images/blue-grad.png | Bin 0 -> 337 bytes .../images/button-grad-active-vs.png | Bin 0 -> 152 bytes themes/greydragon/images/button-grad-vs.png | Bin 0 -> 155 bytes themes/greydragon/images/close.png | Bin 0 -> 564 bytes themes/greydragon/images/donate.png | Bin 0 -> 399 bytes themes/greydragon/images/gallery.png | Bin 0 -> 627 bytes themes/greydragon/images/ico-allowed.png | Bin 0 -> 715 bytes .../greydragon/images/ico-denied-inactive.png | Bin 0 -> 604 bytes .../greydragon/images/ico-denied-passive.png | Bin 0 -> 916 bytes themes/greydragon/images/ico-denied.png | Bin 0 -> 715 bytes themes/greydragon/images/ico-error.png | Bin 0 -> 701 bytes themes/greydragon/images/ico-help.png | Bin 0 -> 786 bytes themes/greydragon/images/ico-info.png | Bin 0 -> 778 bytes themes/greydragon/images/ico-lock.png | Bin 0 -> 749 bytes .../images/ico-success-inactive.png | Bin 0 -> 261 bytes .../greydragon/images/ico-success-passive.png | Bin 0 -> 561 bytes themes/greydragon/images/ico-success.png | Bin 0 -> 537 bytes themes/greydragon/images/ico-warning.png | Bin 0 -> 666 bytes themes/greydragon/images/missing-img.png | Bin 0 -> 33136 bytes themes/greydragon/js/gallery.ajax.custom.js | 14 + themes/greydragon/js/gallery.dialog.custom.js | 232 + themes/greydragon/js/jquery-ui.min.js | 7 + themes/greydragon/js/jquery.cycle.js | 1543 ++ themes/greydragon/js/jquery.form.custom.js | 1076 ++ themes/greydragon/js/jquery.json.min.js | 31 + themes/greydragon/js/jquery.min.js | 4 + themes/greydragon/js/ui.support.js | 80 + themes/greydragon/libraries/MY_Theme_View.php | 925 + themes/greydragon/theme.info | 10 + themes/greydragon/thumbnail.png | Bin 0 -> 25791 bytes themes/greydragon/views/album.html.php | 68 + themes/greydragon/views/block.html.php | 29 + themes/greydragon/views/calpage.html.php | 257 + themes/greydragon/views/dynamic.html.php | 38 + themes/greydragon/views/exif_sidebar.html.php | 18 + themes/greydragon/views/info_block.html.php | 29 + themes/greydragon/views/movie.html.php | 38 + themes/greydragon/views/no_sidebar.html.php | 19 + themes/greydragon/views/page.html.php | 259 + themes/greydragon/views/paginator.html.php | 216 + themes/greydragon/views/photo.html.php | 129 + themes/greydragon/views/rootpage.html.php | 59 + themes/greydragon/views/rootpage.html.php_fix | 46 + themes/greydragon/views/rss_block.html.php | 30 + themes/greydragon/views/search.html.php | 35 + themes/greydragon/views/sidebar.html.php | 27 + themes/greydragon/views/user_profile.html.php | 44 + .../admin/controllers/admin_theme_options.php | 206 + .../admin/views/admin_include.html.php | 56 + .../admin/views/admin_theme_options.html.php | 12 + themes/greydragon_wide_wind/changelog.txt | 4 + themes/greydragon_wide_wind/css/fix-ie.css | 59 + .../greydragon_wide_wind/css/screen-rtl.css | 324 + themes/greydragon_wide_wind/css/screen.css | 1125 ++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 124 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 4033 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_217bc0_256x240.png | Bin 0 -> 7638 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 7626 bytes .../images/ui-icons_469bdd_256x240.png | Bin 0 -> 5399 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 0 -> 8447 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 0 -> 4379 bytes .../css/themeroller/ui.base.css | 7 + .../css/themeroller/ui.core.css | 37 + .../css/themeroller/ui.datepicker.css | 62 + .../css/themeroller/ui.dialog.css | 13 + .../css/themeroller/ui.progressbar.css | 4 + .../css/themeroller/ui.resizable.css | 13 + .../css/themeroller/ui.tabs.css | 9 + .../css/themeroller/ui.theme.css | 243 + themes/greydragon_wide_wind/images/avatar.jpg | Bin 0 -> 1172 bytes .../images/background.gif | Bin 0 -> 1098 bytes themes/greydragon_wide_wind/images/footer.png | Bin 0 -> 376 bytes .../greydragon_wide_wind/images/ico-album.png | Bin 0 -> 508 bytes .../images/ico-denied-inactive.png | Bin 0 -> 604 bytes .../images/ico-denied-passive.png | Bin 0 -> 916 bytes .../images/ico-denied.png | Bin 0 -> 715 bytes .../greydragon_wide_wind/images/ico-error.png | Bin 0 -> 701 bytes .../greydragon_wide_wind/images/ico-help.png | Bin 0 -> 786 bytes .../greydragon_wide_wind/images/ico-info.png | Bin 0 -> 778 bytes .../greydragon_wide_wind/images/ico-lock.png | Bin 0 -> 749 bytes .../greydragon_wide_wind/images/ico-print.png | Bin 0 -> 989 bytes .../images/ico-separator-rtl.gif | Bin 0 -> 106 bytes .../images/ico-separator.gif | Bin 0 -> 106 bytes .../images/ico-success-inactive.png | Bin 0 -> 476 bytes .../images/ico-success-passive.png | Bin 0 -> 617 bytes .../images/ico-success.png | Bin 0 -> 537 bytes .../images/ico-view-calendar.png | Bin 0 -> 1118 bytes .../images/ico-view-comments.png | Bin 0 -> 1178 bytes .../images/ico-view-fullsize.png | Bin 0 -> 1088 bytes .../images/ico-view-slideshow-rtl.png | Bin 0 -> 1137 bytes .../images/ico-view-slideshow.png | Bin 0 -> 1148 bytes .../images/ico-warning.png | Bin 0 -> 666 bytes .../images/loading-large.gif | Bin 0 -> 8238 bytes .../images/loading-small.gif | Bin 0 -> 673 bytes themes/greydragon_wide_wind/images/search.png | Bin 0 -> 969 bytes .../images/select-photos-backg.png | Bin 0 -> 1154 bytes .../greydragon_wide_wind/images/ui-icons.png | Bin 0 -> 9657 bytes themes/greydragon_wide_wind/js/ui.init.js | 118 + .../libraries/MY_Theme_View.php | 36 + themes/greydragon_wide_wind/theme.info | 10 + themes/greydragon_wide_wind/thumbnail.png | Bin 0 -> 27213 bytes .../greydragon_wide_wind/views/album.html.php | 49 + .../greydragon_wide_wind/views/block.html.php | 10 + .../views/dynamic.html.php | 31 + .../greydragon_wide_wind/views/movie.html.php | 20 + .../views/no_sidebar.html.php | 12 + .../greydragon_wide_wind/views/page.html.php | 148 + .../views/paginator.html.php | 168 + .../greydragon_wide_wind/views/photo.html.php | 55 + .../views/search.html.php | 24 + .../views/sidebar.html.php | 16 + themes/imobile/controllers/albums.php | 205 + themes/imobile/controllers/imobile_login.php | 55 + .../imobile/controllers/imobile_uploader.php | 98 + themes/imobile/css/fotorama.css | 4 + themes/imobile/css/images/ajax-loader.gif | Bin 0 -> 6242 bytes .../css/images/icons-png/action-black.png | Bin 0 -> 219 bytes .../css/images/icons-png/action-white.png | Bin 0 -> 227 bytes .../css/images/icons-png/alert-black.png | Bin 0 -> 244 bytes .../css/images/icons-png/alert-white.png | Bin 0 -> 243 bytes .../css/images/icons-png/arrow-d-black.png | Bin 0 -> 146 bytes .../css/images/icons-png/arrow-d-l-black.png | Bin 0 -> 167 bytes .../css/images/icons-png/arrow-d-l-white.png | Bin 0 -> 173 bytes .../css/images/icons-png/arrow-d-r-black.png | Bin 0 -> 159 bytes .../css/images/icons-png/arrow-d-r-white.png | Bin 0 -> 171 bytes .../css/images/icons-png/arrow-d-white.png | Bin 0 -> 149 bytes .../css/images/icons-png/arrow-l-black.png | Bin 0 -> 149 bytes .../css/images/icons-png/arrow-l-white.png | Bin 0 -> 156 bytes .../css/images/icons-png/arrow-r-black.png | Bin 0 -> 147 bytes .../css/images/icons-png/arrow-r-white.png | Bin 0 -> 152 bytes .../css/images/icons-png/arrow-u-black.png | Bin 0 -> 147 bytes .../css/images/icons-png/arrow-u-l-black.png | Bin 0 -> 163 bytes .../css/images/icons-png/arrow-u-l-white.png | Bin 0 -> 169 bytes .../css/images/icons-png/arrow-u-r-black.png | Bin 0 -> 163 bytes .../css/images/icons-png/arrow-u-r-white.png | Bin 0 -> 165 bytes .../css/images/icons-png/arrow-u-white.png | Bin 0 -> 151 bytes .../css/images/icons-png/audio-black.png | Bin 0 -> 307 bytes .../css/images/icons-png/audio-white.png | Bin 0 -> 314 bytes .../css/images/icons-png/back-black.png | Bin 0 -> 233 bytes .../css/images/icons-png/back-white.png | Bin 0 -> 240 bytes .../css/images/icons-png/bars-black.png | Bin 0 -> 132 bytes .../css/images/icons-png/bars-white.png | Bin 0 -> 135 bytes .../css/images/icons-png/bullets-black.png | Bin 0 -> 147 bytes .../css/images/icons-png/bullets-white.png | Bin 0 -> 152 bytes .../css/images/icons-png/calendar-black.png | Bin 0 -> 146 bytes .../css/images/icons-png/calendar-white.png | Bin 0 -> 143 bytes .../css/images/icons-png/camera-black.png | Bin 0 -> 250 bytes .../css/images/icons-png/camera-white.png | Bin 0 -> 251 bytes .../css/images/icons-png/carat-d-black.png | Bin 0 -> 207 bytes .../css/images/icons-png/carat-d-white.png | Bin 0 -> 213 bytes .../css/images/icons-png/carat-l-black.png | Bin 0 -> 174 bytes .../css/images/icons-png/carat-l-white.png | Bin 0 -> 177 bytes .../css/images/icons-png/carat-r-black.png | Bin 0 -> 184 bytes .../css/images/icons-png/carat-r-white.png | Bin 0 -> 194 bytes .../css/images/icons-png/carat-u-black.png | Bin 0 -> 196 bytes .../css/images/icons-png/carat-u-white.png | Bin 0 -> 204 bytes .../css/images/icons-png/check-black.png | Bin 0 -> 169 bytes .../css/images/icons-png/check-white.png | Bin 0 -> 172 bytes .../css/images/icons-png/clock-black.png | Bin 0 -> 310 bytes .../css/images/icons-png/clock-white.png | Bin 0 -> 316 bytes .../css/images/icons-png/cloud-black.png | Bin 0 -> 212 bytes .../css/images/icons-png/cloud-white.png | Bin 0 -> 210 bytes .../css/images/icons-png/comment-black.png | Bin 0 -> 165 bytes .../css/images/icons-png/comment-white.png | Bin 0 -> 160 bytes .../css/images/icons-png/delete-black.png | Bin 0 -> 171 bytes .../css/images/icons-png/delete-white.png | Bin 0 -> 185 bytes .../css/images/icons-png/edit-black.png | Bin 0 -> 163 bytes .../css/images/icons-png/edit-white.png | Bin 0 -> 170 bytes .../css/images/icons-png/eye-black.png | Bin 0 -> 249 bytes .../css/images/icons-png/eye-white.png | Bin 0 -> 253 bytes .../css/images/icons-png/forbidden-black.png | Bin 0 -> 299 bytes .../css/images/icons-png/forbidden-white.png | Bin 0 -> 308 bytes .../css/images/icons-png/forward-black.png | Bin 0 -> 233 bytes .../css/images/icons-png/forward-white.png | Bin 0 -> 243 bytes .../css/images/icons-png/gear-black.png | Bin 0 -> 318 bytes .../css/images/icons-png/gear-white.png | Bin 0 -> 302 bytes .../css/images/icons-png/grid-black.png | Bin 0 -> 160 bytes .../css/images/icons-png/grid-white.png | Bin 0 -> 167 bytes .../css/images/icons-png/heart-black.png | Bin 0 -> 242 bytes .../css/images/icons-png/heart-white.png | Bin 0 -> 246 bytes .../css/images/icons-png/home-black.png | Bin 0 -> 150 bytes .../css/images/icons-png/home-white.png | Bin 0 -> 154 bytes .../css/images/icons-png/info-black.png | Bin 0 -> 250 bytes .../css/images/icons-png/info-white.png | Bin 0 -> 251 bytes .../css/images/icons-png/location-black.png | Bin 0 -> 245 bytes .../css/images/icons-png/location-white.png | Bin 0 -> 247 bytes .../css/images/icons-png/lock-black.png | Bin 0 -> 204 bytes .../css/images/icons-png/lock-white.png | Bin 0 -> 207 bytes .../css/images/icons-png/mail-black.png | Bin 0 -> 226 bytes .../css/images/icons-png/mail-white.png | Bin 0 -> 227 bytes .../css/images/icons-png/minus-black.png | Bin 0 -> 116 bytes .../css/images/icons-png/minus-white.png | Bin 0 -> 116 bytes .../css/images/icons-png/navigation-black.png | Bin 0 -> 242 bytes .../css/images/icons-png/navigation-white.png | Bin 0 -> 241 bytes .../css/images/icons-png/phone-black.png | Bin 0 -> 270 bytes .../css/images/icons-png/phone-white.png | Bin 0 -> 274 bytes .../css/images/icons-png/plus-black.png | Bin 0 -> 123 bytes .../css/images/icons-png/plus-white.png | Bin 0 -> 124 bytes .../css/images/icons-png/power-black.png | Bin 0 -> 292 bytes .../css/images/icons-png/power-white.png | Bin 0 -> 302 bytes .../css/images/icons-png/recycle-black.png | Bin 0 -> 243 bytes .../css/images/icons-png/recycle-white.png | Bin 0 -> 253 bytes .../css/images/icons-png/refresh-black.png | Bin 0 -> 295 bytes .../css/images/icons-png/refresh-white.png | Bin 0 -> 301 bytes .../css/images/icons-png/search-black.png | Bin 0 -> 324 bytes .../css/images/icons-png/search-white.png | Bin 0 -> 321 bytes .../css/images/icons-png/shop-black.png | Bin 0 -> 174 bytes .../css/images/icons-png/shop-white.png | Bin 0 -> 173 bytes .../css/images/icons-png/star-black.png | Bin 0 -> 231 bytes .../css/images/icons-png/star-white.png | Bin 0 -> 239 bytes .../css/images/icons-png/tag-black.png | Bin 0 -> 159 bytes .../css/images/icons-png/tag-white.png | Bin 0 -> 159 bytes .../css/images/icons-png/user-black.png | Bin 0 -> 245 bytes .../css/images/icons-png/user-white.png | Bin 0 -> 245 bytes .../css/images/icons-png/video-black.png | Bin 0 -> 171 bytes .../css/images/icons-png/video-white.png | Bin 0 -> 170 bytes .../css/images/icons-svg/action-black.svg | 7 + .../css/images/icons-svg/action-white.svg | 7 + .../css/images/icons-svg/alert-black.svg | 8 + .../css/images/icons-svg/alert-white.svg | 8 + .../css/images/icons-svg/arrow-d-black.svg | 37 + .../css/images/icons-svg/arrow-d-l-black.svg | 37 + .../css/images/icons-svg/arrow-d-l-white.svg | 37 + .../css/images/icons-svg/arrow-d-r-black.svg | 37 + .../css/images/icons-svg/arrow-d-r-white.svg | 37 + .../css/images/icons-svg/arrow-d-white.svg | 37 + .../css/images/icons-svg/arrow-l-black.svg | 37 + .../css/images/icons-svg/arrow-l-white.svg | 37 + .../css/images/icons-svg/arrow-r-black.svg | 37 + .../css/images/icons-svg/arrow-r-white.svg | 37 + .../css/images/icons-svg/arrow-u-black.svg | 37 + .../css/images/icons-svg/arrow-u-l-black.svg | 37 + .../css/images/icons-svg/arrow-u-l-white.svg | 37 + .../css/images/icons-svg/arrow-u-r-black.svg | 37 + .../css/images/icons-svg/arrow-u-r-white.svg | 37 + .../css/images/icons-svg/arrow-u-white.svg | 37 + .../css/images/icons-svg/audio-black.svg | 40 + .../css/images/icons-svg/audio-white.svg | 40 + .../css/images/icons-svg/back-black.svg | 7 + .../css/images/icons-svg/back-white.svg | 7 + .../css/images/icons-svg/bars-black.svg | 9 + .../css/images/icons-svg/bars-white.svg | 9 + .../css/images/icons-svg/bullets-black.svg | 10 + .../css/images/icons-svg/bullets-white.svg | 11 + .../css/images/icons-svg/calendar-black.svg | 39 + .../css/images/icons-svg/calendar-white.svg | 39 + .../css/images/icons-svg/camera-black.svg | 9 + .../css/images/icons-svg/camera-white.svg | 10 + .../css/images/icons-svg/carat-d-black.svg | 7 + .../css/images/icons-svg/carat-d-white.svg | 7 + .../css/images/icons-svg/carat-l-black.svg | 7 + .../css/images/icons-svg/carat-l-white.svg | 7 + .../css/images/icons-svg/carat-r-black.svg | 7 + .../css/images/icons-svg/carat-r-white.svg | 7 + .../css/images/icons-svg/carat-u-black.svg | 7 + .../css/images/icons-svg/carat-u-white.svg | 7 + .../css/images/icons-svg/check-black.svg | 7 + .../css/images/icons-svg/check-white.svg | 7 + .../css/images/icons-svg/clock-black.svg | 38 + .../css/images/icons-svg/clock-white.svg | 38 + .../css/images/icons-svg/cloud-black.svg | 9 + .../css/images/icons-svg/cloud-white.svg | 9 + .../css/images/icons-svg/comment-black.svg | 37 + .../css/images/icons-svg/comment-white.svg | 37 + .../css/images/icons-svg/delete-black.svg | 37 + .../css/images/icons-svg/delete-white.svg | 37 + .../css/images/icons-svg/edit-black.svg | 37 + .../css/images/icons-svg/edit-white.svg | 37 + .../css/images/icons-svg/eye-black.svg | 8 + .../css/images/icons-svg/eye-white.svg | 8 + .../css/images/icons-svg/forbidden-black.svg | 40 + .../css/images/icons-svg/forbidden-white.svg | 40 + .../css/images/icons-svg/forward-black.svg | 7 + .../css/images/icons-svg/forward-white.svg | 7 + .../css/images/icons-svg/gear-black.svg | 52 + .../css/images/icons-svg/gear-white.svg | 52 + .../css/images/icons-svg/grid-black.svg | 44 + .../css/images/icons-svg/grid-white.svg | 44 + .../css/images/icons-svg/heart-black.svg | 7 + .../css/images/icons-svg/heart-white.svg | 8 + .../css/images/icons-svg/home-black.svg | 37 + .../css/images/icons-svg/home-white.svg | 37 + .../css/images/icons-svg/info-black.svg | 38 + .../css/images/icons-svg/info-white.svg | 38 + .../css/images/icons-svg/location-black.svg | 8 + .../css/images/icons-svg/location-white.svg | 8 + .../css/images/icons-svg/lock-black.svg | 8 + .../css/images/icons-svg/lock-white.svg | 9 + .../css/images/icons-svg/mail-black.svg | 7 + .../css/images/icons-svg/mail-white.svg | 7 + .../css/images/icons-svg/minus-black.svg | 7 + .../css/images/icons-svg/minus-white.svg | 7 + .../css/images/icons-svg/navigation-black.svg | 7 + .../css/images/icons-svg/navigation-white.svg | 7 + .../css/images/icons-svg/phone-black.svg | 12 + .../css/images/icons-svg/phone-white.svg | 12 + .../css/images/icons-svg/plus-black.svg | 37 + .../css/images/icons-svg/plus-white.svg | 37 + .../css/images/icons-svg/power-black.svg | 12 + .../css/images/icons-svg/power-white.svg | 12 + .../css/images/icons-svg/recycle-black.svg | 8 + .../css/images/icons-svg/recycle-white.svg | 9 + .../css/images/icons-svg/refresh-black.svg | 40 + .../css/images/icons-svg/refresh-white.svg | 40 + .../css/images/icons-svg/search-black.svg | 9 + .../css/images/icons-svg/search-white.svg | 9 + .../css/images/icons-svg/shop-black.svg | 9 + .../css/images/icons-svg/shop-white.svg | 9 + .../css/images/icons-svg/star-black.svg | 7 + .../css/images/icons-svg/star-white.svg | 7 + .../css/images/icons-svg/tag-black.svg | 37 + .../css/images/icons-svg/tag-white.svg | 37 + .../css/images/icons-svg/user-black.svg | 41 + .../css/images/icons-svg/user-white.svg | 41 + .../css/images/icons-svg/video-black.svg | 7 + .../css/images/icons-svg/video-white.svg | 8 + themes/imobile/css/imobile.css | 159 + themes/imobile/css/imobile.min.css | 1 + .../imobile/css/jquery.mobile-1.4.1.min.css | 3 + themes/imobile/helpers/imobile.php | 80 + themes/imobile/helpers/search.php | 161 + themes/imobile/images/fotorama.png | Bin 0 -> 5080 bytes themes/imobile/images/fotorama@2x.png | Bin 0 -> 16299 bytes themes/imobile/images/loader.gif | Bin 0 -> 10423 bytes themes/imobile/js/fotorama.js | 3452 ++++ themes/imobile/js/fotorama.min.js | 2 + themes/imobile/js/imobile.js | 106 + themes/imobile/js/imobile.min.js | 1 + themes/imobile/js/jquery-1.11.0.min.js | 4 + themes/imobile/js/jquery.mobile-1.4.1.js | 14931 ++++++++++++++++ themes/imobile/js/jquery.unveil.min.js | 11 + themes/imobile/js/staystandalone.js | 24 + themes/imobile/js/staystandalone.min.js | 1 + themes/imobile/theme.info | 10 + themes/imobile/thumbnail.png | Bin 0 -> 31702 bytes themes/imobile/views/album.html.php | 129 + themes/imobile/views/movie.html.php | 12 + themes/imobile/views/page.html.php | 115 + themes/imobile/views/photo.html.php | 12 + themes/imobile/views/search.html.php | 60 + themes/smk/css/fix-ie.css | 59 + themes/smk/css/screen-rtl.css | 333 + themes/smk/css/screen.css | 1081 ++ .../themeroller/images/animated-overlay.gif | Bin 0 -> 1738 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 124 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 4033 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_217bc0_256x240.png | Bin 0 -> 7638 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 7626 bytes .../images/ui-icons_469bdd_256x240.png | Bin 0 -> 5399 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 0 -> 8447 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 0 -> 4379 bytes themes/smk/css/themeroller/ui.base.css | 1177 ++ themes/smk/images/avatar.jpg | Bin 0 -> 1172 bytes themes/smk/images/ico-album.png | Bin 0 -> 397 bytes themes/smk/images/ico-denied-inactive.png | Bin 0 -> 604 bytes themes/smk/images/ico-denied-passive.png | Bin 0 -> 916 bytes themes/smk/images/ico-denied.png | Bin 0 -> 715 bytes themes/smk/images/ico-error.png | Bin 0 -> 701 bytes themes/smk/images/ico-help.png | Bin 0 -> 786 bytes themes/smk/images/ico-info.png | Bin 0 -> 778 bytes themes/smk/images/ico-lock.png | Bin 0 -> 749 bytes themes/smk/images/ico-print.png | Bin 0 -> 989 bytes themes/smk/images/ico-separator-rtl.gif | Bin 0 -> 106 bytes themes/smk/images/ico-separator.gif | Bin 0 -> 106 bytes themes/smk/images/ico-success-inactive.png | Bin 0 -> 476 bytes themes/smk/images/ico-success-passive.png | Bin 0 -> 617 bytes themes/smk/images/ico-success.png | Bin 0 -> 537 bytes themes/smk/images/ico-view-comments.png | Bin 0 -> 768 bytes themes/smk/images/ico-view-fullsize.png | Bin 0 -> 1046 bytes themes/smk/images/ico-view-slideshow-rtl.png | Bin 0 -> 1137 bytes themes/smk/images/ico-view-slideshow.png | Bin 0 -> 960 bytes themes/smk/images/ico-warning.png | Bin 0 -> 666 bytes themes/smk/images/loading-large.gif | Bin 0 -> 8238 bytes themes/smk/images/loading-small.gif | Bin 0 -> 673 bytes themes/smk/images/select-photos-backg.png | Bin 0 -> 1154 bytes themes/smk/js/ui.init.js | 118 + themes/smk/theme.info | 6 + themes/smk/thumbnail.png | Bin 0 -> 20740 bytes themes/smk/views/album.html.php | 47 + themes/smk/views/block.html.php | 10 + themes/smk/views/dynamic.html.php | 29 + themes/smk/views/movie.html.php | 19 + themes/smk/views/no_sidebar.html.php | 11 + themes/smk/views/page.html.php | 144 + themes/smk/views/paginator.html.php | 87 + themes/smk/views/photo.html.php | 51 + themes/smk/views/sidebar.html.php | 16 + themes/widesmk/css/fix-ie.css | 59 + themes/widesmk/css/screen-rtl.css | 333 + themes/widesmk/css/screen.css | 1093 ++ .../themeroller/images/animated-overlay.gif | Bin 0 -> 1738 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_55_fbec88_40x100.png | Bin 0 -> 182 bytes .../images/ui-bg_glass_75_d0e5f5_1x400.png | Bin 0 -> 124 bytes .../images/ui-bg_glass_85_dfeffc_1x400.png | Bin 0 -> 123 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_55_5c9ccc_500x100.png | Bin 0 -> 4033 bytes .../ui-bg_inset-hard_100_f5f8f9_1x100.png | Bin 0 -> 104 bytes .../ui-bg_inset-hard_100_fcfdfd_1x100.png | Bin 0 -> 88 bytes .../images/ui-icons_217bc0_256x240.png | Bin 0 -> 7638 bytes .../images/ui-icons_2e83ff_256x240.png | Bin 0 -> 7626 bytes .../images/ui-icons_469bdd_256x240.png | Bin 0 -> 5399 bytes .../images/ui-icons_6da8d5_256x240.png | Bin 0 -> 8447 bytes .../images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_d8e7f3_256x240.png | Bin 0 -> 4379 bytes .../images/ui-icons_f9bd01_256x240.png | Bin 0 -> 4379 bytes themes/widesmk/css/themeroller/ui.base.css | 20 + themes/widesmk/css/themeroller/ui.core.css | 37 + .../widesmk/css/themeroller/ui.datepicker.css | 62 + themes/widesmk/css/themeroller/ui.dialog.css | 13 + .../css/themeroller/ui.progressbar.css | 4 + .../widesmk/css/themeroller/ui.resizable.css | 13 + themes/widesmk/css/themeroller/ui.tabs.css | 9 + themes/widesmk/css/themeroller/ui.theme.css | 243 + themes/widesmk/images/avatar.jpg | Bin 0 -> 1172 bytes themes/widesmk/images/ico-album.png | Bin 0 -> 397 bytes themes/widesmk/images/ico-denied-inactive.png | Bin 0 -> 604 bytes themes/widesmk/images/ico-denied-passive.png | Bin 0 -> 916 bytes themes/widesmk/images/ico-denied.png | Bin 0 -> 715 bytes themes/widesmk/images/ico-error.png | Bin 0 -> 701 bytes themes/widesmk/images/ico-help.png | Bin 0 -> 786 bytes themes/widesmk/images/ico-info.png | Bin 0 -> 778 bytes themes/widesmk/images/ico-lock.png | Bin 0 -> 749 bytes themes/widesmk/images/ico-print.png | Bin 0 -> 989 bytes themes/widesmk/images/ico-separator-rtl.gif | Bin 0 -> 106 bytes themes/widesmk/images/ico-separator.gif | Bin 0 -> 106 bytes .../widesmk/images/ico-success-inactive.png | Bin 0 -> 476 bytes themes/widesmk/images/ico-success-passive.png | Bin 0 -> 617 bytes themes/widesmk/images/ico-success.png | Bin 0 -> 537 bytes themes/widesmk/images/ico-view-comments.png | Bin 0 -> 768 bytes themes/widesmk/images/ico-view-fullsize.png | Bin 0 -> 1046 bytes .../widesmk/images/ico-view-slideshow-rtl.png | Bin 0 -> 1137 bytes themes/widesmk/images/ico-view-slideshow.png | Bin 0 -> 960 bytes themes/widesmk/images/ico-warning.png | Bin 0 -> 666 bytes themes/widesmk/images/loading-large.gif | Bin 0 -> 8238 bytes themes/widesmk/images/loading-small.gif | Bin 0 -> 673 bytes themes/widesmk/images/select-photos-backg.png | Bin 0 -> 1154 bytes themes/widesmk/js/ui.init.js | 133 + themes/widesmk/theme.info | 6 + themes/widesmk/thumbnail.png | Bin 0 -> 20740 bytes themes/widesmk/views/album.html.php | 47 + themes/widesmk/views/block.html.php | 10 + themes/widesmk/views/dynamic.html.php | 29 + themes/widesmk/views/movie.html.php | 19 + themes/widesmk/views/no_sidebar.html.php | 11 + themes/widesmk/views/page.html.php | 144 + themes/widesmk/views/paginator.html.php | 87 + themes/widesmk/views/photo.html.php | 51 + themes/widesmk/views/sidebar.html.php | 16 + 1139 files changed, 59195 insertions(+) create mode 100644 README.md create mode 100755 modules/.not-used/navcarousel/controllers/admin_navcarousel.php create mode 100755 modules/.not-used/navcarousel/controllers/navcarousel.php create mode 100755 modules/.not-used/navcarousel/css/credits.txt create mode 100755 modules/.not-used/navcarousel/css/skin.css create mode 100755 modules/.not-used/navcarousel/helpers/navcarousel_event.php create mode 100755 modules/.not-used/navcarousel/helpers/navcarousel_theme.php create mode 100755 modules/.not-used/navcarousel/images/ajax-loader.gif create mode 100755 modules/.not-used/navcarousel/images/next-horizontal.png create mode 100755 modules/.not-used/navcarousel/images/prev-horizontal.png create mode 100755 modules/.not-used/navcarousel/js/jquery.jcarousel.js create mode 100755 modules/.not-used/navcarousel/js/jquery.jcarousel.min.js create mode 100755 modules/.not-used/navcarousel/module.info create mode 100755 modules/.not-used/navcarousel/views/admin_navcarousel.html.php create mode 100755 modules/.not-used/navcarousel/views/navcarousel.html.php create mode 100755 modules/.not-used/register/controllers/admin_register.php create mode 100755 modules/.not-used/register/controllers/register.php create mode 100755 modules/.not-used/register/css/register.css create mode 100755 modules/.not-used/register/helpers/register.php create mode 100755 modules/.not-used/register/helpers/register_event.php create mode 100755 modules/.not-used/register/helpers/register_installer.php create mode 100755 modules/.not-used/register/helpers/register_theme.php create mode 100755 modules/.not-used/register/models/pending_user.php create mode 100755 modules/.not-used/register/module.info create mode 100755 modules/.not-used/register/views/admin_register.html.php create mode 100755 modules/.not-used/register/views/confirm_registration.html.php create mode 100755 modules/.not-used/register/views/register_admin_notify.html.php create mode 100755 modules/.not-used/register/views/register_welcome.html.php create mode 100755 modules/.not-used/register/views/register_welcome_message.html.php create mode 100755 modules/.not-used/register/views/register_welcome_message_loader.html.php create mode 100755 modules/.not-used/tag_cloud_html5/controllers/admin_tag_cloud_html5.php create mode 100755 modules/.not-used/tag_cloud_html5/controllers/tag_cloud.php create mode 100755 modules/.not-used/tag_cloud_html5/css/admin_tag_cloud_html5.css create mode 100755 modules/.not-used/tag_cloud_html5/css/tag_cloud_html5.css create mode 100755 modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_block.php create mode 100755 modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_event.php create mode 100755 modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_installer.php create mode 100755 modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_theme.php create mode 100755 modules/.not-used/tag_cloud_html5/js/excanvas.compiled.js create mode 100755 modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.js create mode 100755 modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.min.js create mode 100755 modules/.not-used/tag_cloud_html5/libraries/MY_Form_Input.php create mode 100755 modules/.not-used/tag_cloud_html5/module.info create mode 100755 modules/.not-used/tag_cloud_html5/views/admin_tag_cloud_html5.html.php create mode 100755 modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_block.html.php create mode 100755 modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_embed.html.php create mode 100755 modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_page.html.php create mode 100755 modules/.not-used/user_albums/helpers/user_albums_event.php create mode 100755 modules/.not-used/user_albums/module.info create mode 100755 modules/albumtree/helpers/albumtree_block.php create mode 100755 modules/albumtree/helpers/albumtree_installer.php create mode 100755 modules/albumtree/images/empty.gif create mode 100755 modules/albumtree/images/join.gif create mode 100755 modules/albumtree/images/join_rtl.gif create mode 100755 modules/albumtree/images/joinbottom.gif create mode 100755 modules/albumtree/images/joinbottom_rtl.gif create mode 100755 modules/albumtree/images/line.gif create mode 100755 modules/albumtree/images/line_rtl.gif create mode 100755 modules/albumtree/images/minus.gif create mode 100755 modules/albumtree/images/minus_rtl.gif create mode 100755 modules/albumtree/images/minusbottom.gif create mode 100755 modules/albumtree/images/minusbottom_rtl.gif create mode 100755 modules/albumtree/images/nolines_minus.gif create mode 100755 modules/albumtree/images/nolines_plus.gif create mode 100755 modules/albumtree/images/plus.gif create mode 100755 modules/albumtree/images/plus_rtl.gif create mode 100755 modules/albumtree/images/plusbottom.gif create mode 100755 modules/albumtree/images/plusbottom_rtl.gif create mode 100755 modules/albumtree/module.info create mode 100755 modules/albumtree/views/albumtree_block_dtree.html.php create mode 100755 modules/albumtree/views/albumtree_block_list.html.php create mode 100755 modules/albumtree/views/albumtree_block_select.html.php create mode 100755 modules/arrow_nav/helpers/arrow_nav_theme.php create mode 100755 modules/arrow_nav/js/arrow_nav.js create mode 100755 modules/arrow_nav/module.info create mode 100755 modules/batchtag/controllers/batchtag.php create mode 100755 modules/batchtag/helpers/batchtag_block.php create mode 100755 modules/batchtag/helpers/batchtag_event.php create mode 100755 modules/batchtag/helpers/batchtag_installer.php create mode 100755 modules/batchtag/module.info create mode 100755 modules/batchtag/views/batchtag_block.html.php create mode 100755 modules/captionator/controllers/captionator.php create mode 100755 modules/captionator/helpers/captionator_event.php create mode 100755 modules/captionator/module.info create mode 100755 modules/captionator/views/captionator_dialog.html.php create mode 100755 modules/custom_menus/controllers/admin_custom_menus.php create mode 100755 modules/custom_menus/helpers/custom_menus_event.php create mode 100755 modules/custom_menus/helpers/custom_menus_installer.php create mode 100755 modules/custom_menus/models/custom_menu.php create mode 100755 modules/custom_menus/module.info create mode 100755 modules/custom_menus/views/admin_custom_menus.html.php create mode 100755 modules/database_info/helpers/database_info_block.php create mode 100755 modules/database_info/module.info create mode 100755 modules/database_info/views/admin_block_db.html.php create mode 100755 modules/delete_cache/helpers/delete_cache_task.php create mode 100755 modules/delete_cache/module.info create mode 100755 modules/downloadfullsize/controllers/admin_downloadfullsize.php create mode 100755 modules/downloadfullsize/controllers/downloadfullsize.php create mode 100755 modules/downloadfullsize/css/downloadfullsize_menu.css create mode 100755 modules/downloadfullsize/helpers/downloadfullsize_block.php create mode 100755 modules/downloadfullsize/helpers/downloadfullsize_event.php create mode 100755 modules/downloadfullsize/helpers/downloadfullsize_theme.php create mode 100755 modules/downloadfullsize/images/ico-view-downloadfullsize.png create mode 100755 modules/downloadfullsize/module.info create mode 100755 modules/downloadfullsize/views/admin_downloadfullsize.html.php create mode 100755 modules/downloadfullsize/views/downloadfullsize_block.html.php create mode 100755 modules/dupcheck/controllers/dupcheck.php create mode 100755 modules/dupcheck/helpers/dupcheck.php create mode 100755 modules/dupcheck/helpers/dupcheck_event.php create mode 100755 modules/dupcheck/helpers/dupcheck_installer.php create mode 100755 modules/dupcheck/helpers/dupcheck_task.php create mode 100755 modules/dupcheck/models/fullsize_md5sum.php create mode 100755 modules/dupcheck/module.info create mode 100755 modules/dupcheck/views/dupespage.html.php create mode 100755 modules/exif_gps/controllers/admin_exif_gps.php create mode 100755 modules/exif_gps/controllers/exif_gps.php create mode 100755 modules/exif_gps/css/exif_gps_menu.css create mode 100755 modules/exif_gps/helpers/exif_gps.php create mode 100755 modules/exif_gps/helpers/exif_gps_block.php create mode 100755 modules/exif_gps/helpers/exif_gps_event.php create mode 100755 modules/exif_gps/helpers/exif_gps_installer.php create mode 100755 modules/exif_gps/helpers/exif_gps_task.php create mode 100755 modules/exif_gps/helpers/exif_gps_theme.php create mode 100755 modules/exif_gps/images/exif_gps-loading-map-large.gif create mode 100755 modules/exif_gps/images/ico-view-exif_gps_album.png create mode 100755 modules/exif_gps/images/ico-view-exif_gps_user.png create mode 100755 modules/exif_gps/js/markerclusterer_compiled.js create mode 100755 modules/exif_gps/models/exif_coordinate.php create mode 100755 modules/exif_gps/module.info create mode 100755 modules/exif_gps/views/admin_exif_gps.html.php create mode 100755 modules/exif_gps/views/osm/exif_gps_coordinates_geojson.html.php create mode 100755 modules/exif_gps/views/osm/exif_gps_coordinates_xml.html.php create mode 100755 modules/exif_gps/views/osm/exif_gps_dynamic_sidebar.html.php create mode 100755 modules/exif_gps/views/osm/exif_gps_map.html.php create mode 100755 modules/exif_gps/views/osm/exif_gps_maps_sidebar.html.php create mode 100755 modules/exif_gps/views/osm/user_profile_exif_gps.html.php create mode 100755 modules/gallerystats/helpers/gallerystats_block.php create mode 100755 modules/gallerystats/helpers/gallerystats_installer.php create mode 100755 modules/gallerystats/module.info create mode 100755 modules/gallerystats/views/gallerystats_block.html.php create mode 100755 modules/greydragon/changelog.txt create mode 100755 modules/greydragon/css/gd_common.css create mode 100755 modules/greydragon/images/blue-grad.png create mode 100755 modules/greydragon/module.info create mode 100755 modules/greydragon/views/gd_admin_include.html.php create mode 100755 modules/image_fit/helpers/image_fit_theme.php create mode 100755 modules/image_fit/js/jquery.imagefit.js create mode 100755 modules/image_fit/module.info create mode 100755 modules/latestupdates/controllers/latestupdates.php create mode 100755 modules/latestupdates/css/latestupdates_jcarousel.css create mode 100755 modules/latestupdates/helpers/latestupdates_block.php create mode 100755 modules/latestupdates/helpers/latestupdates_event.php create mode 100755 modules/latestupdates/helpers/latestupdates_theme.php create mode 100755 modules/latestupdates/images/imageNavLeft.gif create mode 100755 modules/latestupdates/images/imageNavLeftHover.gif create mode 100755 modules/latestupdates/images/imageNavRight.gif create mode 100755 modules/latestupdates/images/imageNavRightHover.gif create mode 100755 modules/latestupdates/js/jcarousellite_1.0.1.js create mode 100755 modules/latestupdates/module.info create mode 100755 modules/latestupdates/views/latestupdates_block.html.php create mode 100755 modules/latestupdates/views/latestupdates_user_profile_carousel.html.php create mode 100755 modules/latestupdates/views/latestupdates_user_profile_info.html.php create mode 100755 modules/moduleorder/controllers/admin_moduleorder.php create mode 100755 modules/moduleorder/helpers/moduleorder.php create mode 100755 modules/moduleorder/helpers/moduleorder_event.php create mode 100755 modules/moduleorder/helpers/moduleorder_installer.php create mode 100755 modules/moduleorder/module.info create mode 100755 modules/moduleorder/views/admin_moduleorder.html.php create mode 100755 modules/moduleorder/views/admin_moduleorder_blocks.html.php create mode 100755 modules/movie_tools/controllers/admin_movie_tools.php create mode 100755 modules/movie_tools/helpers/movie_tools.php create mode 100755 modules/movie_tools/helpers/movie_tools_event.php create mode 100755 modules/movie_tools/helpers/movie_tools_installer.php create mode 100755 modules/movie_tools/module.info create mode 100755 modules/movie_tools/views/admin_movie_tools.html.php create mode 100755 modules/permissions_dialog_usability/module.info create mode 100755 modules/permissions_dialog_usability/views/permissions_form.html.php create mode 100755 modules/reset_counts/controllers/admin_reset_count.php create mode 100755 modules/reset_counts/controllers/admin_reset_counts.php create mode 100755 modules/reset_counts/helpers/reset_counts_event.php create mode 100755 modules/reset_counts/helpers/reset_counts_installer.php create mode 100755 modules/reset_counts/module.info create mode 100755 modules/reset_counts/views/admin_reset_count.html.php create mode 100755 modules/reset_counts/views/admin_reset_counts.html.php create mode 100755 modules/rwinfo/helpers/rwinfo_block.php create mode 100755 modules/rwinfo/helpers/rwinfo_installer.php create mode 100755 modules/rwinfo/helpers/rwinfo_theme.php create mode 100755 modules/rwinfo/module.info create mode 100755 modules/rwinfo/notes.txt create mode 100755 modules/rwinfo/views/rwinfo_block.html.php create mode 100755 modules/tag_cloud_page/controllers/tag_cloud_page.php create mode 100755 modules/tag_cloud_page/css/tag_cloud_page.css create mode 100755 modules/tag_cloud_page/helpers/tag_cloud_page_block.php create mode 100755 modules/tag_cloud_page/helpers/tag_cloud_page_event.php create mode 100755 modules/tag_cloud_page/helpers/tag_cloud_page_installer.php create mode 100755 modules/tag_cloud_page/helpers/tag_cloud_page_theme.php create mode 100755 modules/tag_cloud_page/js/tag_cloud_page.js create mode 100755 modules/tag_cloud_page/module.info create mode 100755 modules/tag_cloud_page/views/tag_cloud_page_block.html.php create mode 100755 modules/tag_cloud_page/views/tag_cloud_page_cloud.html.php create mode 100755 modules/themedispatcher/controllers/admin_themedispatcher.php create mode 100755 modules/themedispatcher/controllers/themedispatcher.php create mode 100755 modules/themedispatcher/css/admin_themedispatcher.css create mode 100755 modules/themedispatcher/css/themedispatcher.css create mode 100755 modules/themedispatcher/helpers/MY_theme.php create mode 100755 modules/themedispatcher/helpers/themedispatcher.php create mode 100755 modules/themedispatcher/helpers/themedispatcher_event.php create mode 100755 modules/themedispatcher/helpers/themedispatcher_installer.php create mode 100755 modules/themedispatcher/helpers/themedispatcher_theme.php create mode 100755 modules/themedispatcher/module.info create mode 100755 modules/themedispatcher/views/admin_themedispatcher.html.php create mode 100755 modules/treeview/controllers/admin_treeview.php create mode 100755 modules/treeview/controllers/treeview.php create mode 100755 modules/treeview/css/treeview.css create mode 100755 modules/treeview/helpers/treeview_block.php create mode 100755 modules/treeview/helpers/treeview_event.php create mode 100755 modules/treeview/helpers/treeview_installer.php create mode 100755 modules/treeview/helpers/treeview_theme.php create mode 100755 modules/treeview/images/empty.gif create mode 100755 modules/treeview/images/join.gif create mode 100755 modules/treeview/images/join_rtl.gif create mode 100755 modules/treeview/images/joinbottom.gif create mode 100755 modules/treeview/images/joinbottom_rtl.gif create mode 100755 modules/treeview/images/line.gif create mode 100755 modules/treeview/images/line_rtl.gif create mode 100755 modules/treeview/images/minus.gif create mode 100755 modules/treeview/images/minus_rtl.gif create mode 100755 modules/treeview/images/minusbottom.gif create mode 100755 modules/treeview/images/minusbottom_rtl.gif create mode 100755 modules/treeview/images/nolines_minus.gif create mode 100755 modules/treeview/images/nolines_plus.gif create mode 100755 modules/treeview/images/plus.gif create mode 100755 modules/treeview/images/plus_rtl.gif create mode 100755 modules/treeview/images/plusbottom.gif create mode 100755 modules/treeview/images/plusbottom_rtl.gif create mode 100755 modules/treeview/module.info create mode 100755 modules/treeview/views/admin_treeview.html.php create mode 100755 modules/treeview/views/treeview_block.html.php create mode 100755 modules/treeview/views/treeview_page_csstree.html.php create mode 100755 modules/treeview/views/treeview_page_dtree.html.php create mode 100755 modules/treeview/views/treeview_page_list.html.php create mode 100755 modules/user_info/controllers/admin_user_info.php create mode 100755 modules/user_info/helpers/user_info_block.php create mode 100755 modules/user_info/helpers/user_info_event.php create mode 100755 modules/user_info/helpers/user_info_installer.php create mode 100755 modules/user_info/models/user_info.php create mode 100755 modules/user_info/module.info create mode 100755 modules/user_info/views/admin_block_user_info.html.php create mode 100755 modules/user_info/views/admin_user_info.html.php create mode 100755 modules/user_info/views/admin_user_info_lookupip.html.php create mode 100755 themes/clean_canvas/admin/controllers/admin_theme_options.php create mode 100755 themes/clean_canvas/css/calendarview_menu.css create mode 100755 themes/clean_canvas/css/clean/screen_candy.css create mode 100755 themes/clean_canvas/css/clean/screen_colors.css create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_glass_75_dedede_1x400.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_glass_85_e6e6e6_1x400.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_glass_95_f4f2f1_1x400.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_gloss-wave_55_7a7a7a_500x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_6f8bb3_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_737373_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_833434_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8461_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8f8f_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_9e9e9e_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/images/ui-icons_dedede_256x240.png create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.base.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.core.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.datepicker.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.dialog.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.progressbar.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.resizable.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.tabs.css create mode 100755 themes/clean_canvas/css/clean/themeroller/ui.theme.css create mode 100755 themes/clean_canvas/css/dark/screen_candy.css create mode 100755 themes/clean_canvas/css/dark/screen_colors.css create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_glass_75_dedede_1x400.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_glass_85_e6e6e6_1x400.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_glass_95_f4f2f1_1x400.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_gloss-wave_55_7a7a7a_500x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_6f8bb3_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_737373_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_833434_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8461_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8f8f_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_9e9e9e_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/images/ui-icons_dedede_256x240.png create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.base.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.core.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.datepicker.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.dialog.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.progressbar.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.resizable.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.tabs.css create mode 100755 themes/clean_canvas/css/dark/themeroller/ui.theme.css create mode 100755 themes/clean_canvas/css/downloadfullsize_menu.css create mode 100755 themes/clean_canvas/css/embedlinks_menu.css create mode 100755 themes/clean_canvas/css/fix-ie.css create mode 100755 themes/clean_canvas/css/minislideshow_menu.css create mode 100755 themes/clean_canvas/css/screen_fonts.css create mode 100755 themes/clean_canvas/css/screen_layout_base.css create mode 100755 themes/clean_canvas/css/screen_layout_fixed.css create mode 100755 themes/clean_canvas/css/screen_layout_wide.css create mode 100755 themes/clean_canvas/css/tagsmap_menu.css create mode 100755 themes/clean_canvas/images/avatar.jpg create mode 100755 themes/clean_canvas/images/avatar.png create mode 100755 themes/clean_canvas/images/canvaslogo.png create mode 100755 themes/clean_canvas/images/clean/background2.jpg create mode 100755 themes/clean_canvas/images/clean/background_header.jpg create mode 100755 themes/clean_canvas/images/clean/ico-album.png create mode 100755 themes/clean_canvas/images/clean/ico-error.png create mode 100755 themes/clean_canvas/images/clean/ico-info.png create mode 100755 themes/clean_canvas/images/clean/ico-print.png create mode 100755 themes/clean_canvas/images/clean/ico-separator-rtl.gif create mode 100755 themes/clean_canvas/images/clean/ico-separator.gif create mode 100755 themes/clean_canvas/images/clean/ico-success.png create mode 100755 themes/clean_canvas/images/clean/ico-view-comments.png create mode 100755 themes/clean_canvas/images/clean/ico-view-downloadarchive_new.png create mode 100755 themes/clean_canvas/images/clean/ico-view-fullsize.png create mode 100755 themes/clean_canvas/images/clean/ico-view-slideshow-rtl.png create mode 100755 themes/clean_canvas/images/clean/ico-view-slideshow.png create mode 100755 themes/clean_canvas/images/clean/ico-warning.png create mode 100755 themes/clean_canvas/images/clean/loading-large.gif create mode 100755 themes/clean_canvas/images/clean/loading-small.gif create mode 100755 themes/clean_canvas/images/clean/page_background.jpg create mode 100755 themes/clean_canvas/images/dark/dark_grid_bg.gif create mode 100755 themes/clean_canvas/images/dark/ico-album.png create mode 100755 themes/clean_canvas/images/dark/ico-error.png create mode 100755 themes/clean_canvas/images/dark/ico-info.png create mode 100755 themes/clean_canvas/images/dark/ico-print.png create mode 100755 themes/clean_canvas/images/dark/ico-separator-rtl.gif create mode 100755 themes/clean_canvas/images/dark/ico-separator.gif create mode 100755 themes/clean_canvas/images/dark/ico-success.png create mode 100755 themes/clean_canvas/images/dark/ico-view-comments.png create mode 100755 themes/clean_canvas/images/dark/ico-view-downloadarchive_new.png create mode 100755 themes/clean_canvas/images/dark/ico-view-fullsize.png create mode 100755 themes/clean_canvas/images/dark/ico-view-slideshow-rtl.png create mode 100755 themes/clean_canvas/images/dark/ico-view-slideshow.png create mode 100755 themes/clean_canvas/images/dark/ico-warning.png create mode 100755 themes/clean_canvas/images/dark/loading-large.gif create mode 100755 themes/clean_canvas/images/dark/loading-small.gif create mode 100755 themes/clean_canvas/images/ico-denied-inactive.png create mode 100755 themes/clean_canvas/images/ico-denied-passive.png create mode 100755 themes/clean_canvas/images/ico-denied.png create mode 100755 themes/clean_canvas/images/ico-lock.png create mode 100755 themes/clean_canvas/images/ico-success-inactive.png create mode 100755 themes/clean_canvas/images/ico-success-passive.png create mode 100755 themes/clean_canvas/images/ico-success.png create mode 100755 themes/clean_canvas/images/ico-view-calendarview.png create mode 100755 themes/clean_canvas/images/ico-view-downloadfullsize.png create mode 100755 themes/clean_canvas/images/ico-view-embedlinks.png create mode 100755 themes/clean_canvas/images/ico-view-minislideshow.png create mode 100755 themes/clean_canvas/images/ico-view-tagsmap.png create mode 100755 themes/clean_canvas/js/ui.init.js create mode 100755 themes/clean_canvas/theme.info create mode 100755 themes/clean_canvas/thumbnail.png create mode 100755 themes/clean_canvas/views/album.html.php create mode 100755 themes/clean_canvas/views/block.html.php create mode 100755 themes/clean_canvas/views/comment.html.php create mode 100755 themes/clean_canvas/views/dynamic.html.php create mode 100755 themes/clean_canvas/views/info_block.html.php create mode 100755 themes/clean_canvas/views/info_theme.php create mode 100755 themes/clean_canvas/views/movie.html.php create mode 100755 themes/clean_canvas/views/no_sidebar.html.php create mode 100755 themes/clean_canvas/views/page.html.php create mode 100755 themes/clean_canvas/views/paginator.html.php create mode 100755 themes/clean_canvas/views/photo.html.php create mode 100755 themes/clean_canvas/views/sidebar.html.php create mode 100755 themes/clean_canvas/views/user_languages_block.html.php create mode 100755 themes/greydragon/admin/controllers/admin_theme_options.php create mode 100755 themes/greydragon/admin/views/admin_theme_options.html.php create mode 100755 themes/greydragon/changelog.txt create mode 100755 themes/greydragon/controllers/greydragon.php create mode 100755 themes/greydragon/css/base.css create mode 100755 themes/greydragon/css/colorpacks/blackhawk/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/search.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/blackhawk/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/carbon/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/carbon/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/carbon/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/carbon/images/search.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/section.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/carbon/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/background-bottom.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/background-top.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/background.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/footer.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/image-thumb.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/search.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/section.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/greydragon/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/bg-body.jpg create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/bg-header.jpg create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/gallery.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/search.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/roundrobin/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/background.jpg create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/footer.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/search.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/section.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/slateblue/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/gallery.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/search.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-calendar-b.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize-b.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/whitehawk/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/colorpacks/wind/css/colors.css create mode 100755 themes/greydragon/css/colorpacks/wind/images/ajax-loading.gif create mode 100755 themes/greydragon/css/colorpacks/wind/images/colorpack.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-album.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-error.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-help.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-info.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-view-slideshow-rtl.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-view-slideshow.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ico-warning.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/loading-large.gif create mode 100755 themes/greydragon/css/colorpacks/wind/images/loading-small.gif create mode 100755 themes/greydragon/css/colorpacks/wind/images/section.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/ui-icons.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-calendar.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-comments-b.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-comments.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-fullsize.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-info-b.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-info-o.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-info.png create mode 100755 themes/greydragon/css/colorpacks/wind/images/view-slideshow-b.png create mode 100755 themes/greydragon/css/forms.css create mode 100755 themes/greydragon/css/framepacks/android/css/frame.css create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/android/images/thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/book/css/frame.css create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/a-thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/book/images/thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/darkglass/css/frame.css create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/darkglass/images/thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/greydragon/css/frame.css create mode 100755 themes/greydragon/css/framepacks/iphone/css/frame.css create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/iphone/images/thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/iphoto/css/frame.css create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-e.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-eext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-ext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-dgt.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-flm-e.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-flm-eext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-flm-ext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-flm.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-e.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-eext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-ext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-sqr.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-wd-e.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-wd-eext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-wd-ext.png create mode 100755 themes/greydragon/css/framepacks/iphoto/images/thumb-wd.png create mode 100755 themes/greydragon/css/framepacks/iphoto/views/frame.html.php create mode 100755 themes/greydragon/css/framepacks/panel/css/frame.css create mode 100755 themes/greydragon/css/framepacks/roundcorners/css/frame.css create mode 100755 themes/greydragon/css/framepacks/simple/css/frame.css create mode 100755 themes/greydragon/css/framepacks/wall/css/frame.css create mode 100755 themes/greydragon/css/ipad.css create mode 100755 themes/greydragon/css/layout.css create mode 100755 themes/greydragon/css/menus.css create mode 100755 themes/greydragon/css/modules.css create mode 100755 themes/greydragon/css/normalize.css create mode 100755 themes/greydragon/css/rtl.css create mode 100755 themes/greydragon/css/screen.css create mode 100755 themes/greydragon/helpers/exif_event.php create mode 100755 themes/greydragon/helpers/greydragon_event.php create mode 100755 themes/greydragon/helpers/greydragon_installer.php create mode 100755 themes/greydragon/images/apple-touch-icon.png create mode 100755 themes/greydragon/images/arrows_left.png create mode 100755 themes/greydragon/images/arrows_right.png create mode 100755 themes/greydragon/images/avatar.jpg create mode 100755 themes/greydragon/images/blue-grad.png create mode 100755 themes/greydragon/images/button-grad-active-vs.png create mode 100755 themes/greydragon/images/button-grad-vs.png create mode 100755 themes/greydragon/images/close.png create mode 100755 themes/greydragon/images/donate.png create mode 100755 themes/greydragon/images/gallery.png create mode 100755 themes/greydragon/images/ico-allowed.png create mode 100755 themes/greydragon/images/ico-denied-inactive.png create mode 100755 themes/greydragon/images/ico-denied-passive.png create mode 100755 themes/greydragon/images/ico-denied.png create mode 100755 themes/greydragon/images/ico-error.png create mode 100755 themes/greydragon/images/ico-help.png create mode 100755 themes/greydragon/images/ico-info.png create mode 100755 themes/greydragon/images/ico-lock.png create mode 100755 themes/greydragon/images/ico-success-inactive.png create mode 100755 themes/greydragon/images/ico-success-passive.png create mode 100755 themes/greydragon/images/ico-success.png create mode 100755 themes/greydragon/images/ico-warning.png create mode 100755 themes/greydragon/images/missing-img.png create mode 100755 themes/greydragon/js/gallery.ajax.custom.js create mode 100755 themes/greydragon/js/gallery.dialog.custom.js create mode 100755 themes/greydragon/js/jquery-ui.min.js create mode 100755 themes/greydragon/js/jquery.cycle.js create mode 100755 themes/greydragon/js/jquery.form.custom.js create mode 100755 themes/greydragon/js/jquery.json.min.js create mode 100755 themes/greydragon/js/jquery.min.js create mode 100755 themes/greydragon/js/ui.support.js create mode 100755 themes/greydragon/libraries/MY_Theme_View.php create mode 100755 themes/greydragon/theme.info create mode 100755 themes/greydragon/thumbnail.png create mode 100755 themes/greydragon/views/album.html.php create mode 100755 themes/greydragon/views/block.html.php create mode 100755 themes/greydragon/views/calpage.html.php create mode 100755 themes/greydragon/views/dynamic.html.php create mode 100755 themes/greydragon/views/exif_sidebar.html.php create mode 100755 themes/greydragon/views/info_block.html.php create mode 100755 themes/greydragon/views/movie.html.php create mode 100755 themes/greydragon/views/no_sidebar.html.php create mode 100755 themes/greydragon/views/page.html.php create mode 100755 themes/greydragon/views/paginator.html.php create mode 100755 themes/greydragon/views/photo.html.php create mode 100755 themes/greydragon/views/rootpage.html.php create mode 100755 themes/greydragon/views/rootpage.html.php_fix create mode 100755 themes/greydragon/views/rss_block.html.php create mode 100755 themes/greydragon/views/search.html.php create mode 100755 themes/greydragon/views/sidebar.html.php create mode 100755 themes/greydragon/views/user_profile.html.php create mode 100755 themes/greydragon_wide_wind/admin/controllers/admin_theme_options.php create mode 100755 themes/greydragon_wide_wind/admin/views/admin_include.html.php create mode 100755 themes/greydragon_wide_wind/admin/views/admin_theme_options.html.php create mode 100755 themes/greydragon_wide_wind/changelog.txt create mode 100755 themes/greydragon_wide_wind/css/fix-ie.css create mode 100755 themes/greydragon_wide_wind/css/screen-rtl.css create mode 100755 themes/greydragon_wide_wind/css/screen.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_flat_55_fbec88_40x100.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_217bc0_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_2e83ff_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_469bdd_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_6da8d5_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_cd0a0a_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_d8e7f3_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/images/ui-icons_f9bd01_256x240.png create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.base.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.core.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.datepicker.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.dialog.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.progressbar.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.resizable.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.tabs.css create mode 100755 themes/greydragon_wide_wind/css/themeroller/ui.theme.css create mode 100755 themes/greydragon_wide_wind/images/avatar.jpg create mode 100755 themes/greydragon_wide_wind/images/background.gif create mode 100755 themes/greydragon_wide_wind/images/footer.png create mode 100755 themes/greydragon_wide_wind/images/ico-album.png create mode 100755 themes/greydragon_wide_wind/images/ico-denied-inactive.png create mode 100755 themes/greydragon_wide_wind/images/ico-denied-passive.png create mode 100755 themes/greydragon_wide_wind/images/ico-denied.png create mode 100755 themes/greydragon_wide_wind/images/ico-error.png create mode 100755 themes/greydragon_wide_wind/images/ico-help.png create mode 100755 themes/greydragon_wide_wind/images/ico-info.png create mode 100755 themes/greydragon_wide_wind/images/ico-lock.png create mode 100755 themes/greydragon_wide_wind/images/ico-print.png create mode 100755 themes/greydragon_wide_wind/images/ico-separator-rtl.gif create mode 100755 themes/greydragon_wide_wind/images/ico-separator.gif create mode 100755 themes/greydragon_wide_wind/images/ico-success-inactive.png create mode 100755 themes/greydragon_wide_wind/images/ico-success-passive.png create mode 100755 themes/greydragon_wide_wind/images/ico-success.png create mode 100755 themes/greydragon_wide_wind/images/ico-view-calendar.png create mode 100755 themes/greydragon_wide_wind/images/ico-view-comments.png create mode 100755 themes/greydragon_wide_wind/images/ico-view-fullsize.png create mode 100755 themes/greydragon_wide_wind/images/ico-view-slideshow-rtl.png create mode 100755 themes/greydragon_wide_wind/images/ico-view-slideshow.png create mode 100755 themes/greydragon_wide_wind/images/ico-warning.png create mode 100755 themes/greydragon_wide_wind/images/loading-large.gif create mode 100755 themes/greydragon_wide_wind/images/loading-small.gif create mode 100755 themes/greydragon_wide_wind/images/search.png create mode 100755 themes/greydragon_wide_wind/images/select-photos-backg.png create mode 100755 themes/greydragon_wide_wind/images/ui-icons.png create mode 100755 themes/greydragon_wide_wind/js/ui.init.js create mode 100755 themes/greydragon_wide_wind/libraries/MY_Theme_View.php create mode 100755 themes/greydragon_wide_wind/theme.info create mode 100755 themes/greydragon_wide_wind/thumbnail.png create mode 100755 themes/greydragon_wide_wind/views/album.html.php create mode 100755 themes/greydragon_wide_wind/views/block.html.php create mode 100755 themes/greydragon_wide_wind/views/dynamic.html.php create mode 100755 themes/greydragon_wide_wind/views/movie.html.php create mode 100755 themes/greydragon_wide_wind/views/no_sidebar.html.php create mode 100755 themes/greydragon_wide_wind/views/page.html.php create mode 100755 themes/greydragon_wide_wind/views/paginator.html.php create mode 100755 themes/greydragon_wide_wind/views/photo.html.php create mode 100755 themes/greydragon_wide_wind/views/search.html.php create mode 100755 themes/greydragon_wide_wind/views/sidebar.html.php create mode 100755 themes/imobile/controllers/albums.php create mode 100755 themes/imobile/controllers/imobile_login.php create mode 100755 themes/imobile/controllers/imobile_uploader.php create mode 100755 themes/imobile/css/fotorama.css create mode 100755 themes/imobile/css/images/ajax-loader.gif create mode 100755 themes/imobile/css/images/icons-png/action-black.png create mode 100755 themes/imobile/css/images/icons-png/action-white.png create mode 100755 themes/imobile/css/images/icons-png/alert-black.png create mode 100755 themes/imobile/css/images/icons-png/alert-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-l-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-l-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-r-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-r-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-d-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-l-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-l-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-r-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-r-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-l-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-l-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-r-black.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-r-white.png create mode 100755 themes/imobile/css/images/icons-png/arrow-u-white.png create mode 100755 themes/imobile/css/images/icons-png/audio-black.png create mode 100755 themes/imobile/css/images/icons-png/audio-white.png create mode 100755 themes/imobile/css/images/icons-png/back-black.png create mode 100755 themes/imobile/css/images/icons-png/back-white.png create mode 100755 themes/imobile/css/images/icons-png/bars-black.png create mode 100755 themes/imobile/css/images/icons-png/bars-white.png create mode 100755 themes/imobile/css/images/icons-png/bullets-black.png create mode 100755 themes/imobile/css/images/icons-png/bullets-white.png create mode 100755 themes/imobile/css/images/icons-png/calendar-black.png create mode 100755 themes/imobile/css/images/icons-png/calendar-white.png create mode 100755 themes/imobile/css/images/icons-png/camera-black.png create mode 100755 themes/imobile/css/images/icons-png/camera-white.png create mode 100755 themes/imobile/css/images/icons-png/carat-d-black.png create mode 100755 themes/imobile/css/images/icons-png/carat-d-white.png create mode 100755 themes/imobile/css/images/icons-png/carat-l-black.png create mode 100755 themes/imobile/css/images/icons-png/carat-l-white.png create mode 100755 themes/imobile/css/images/icons-png/carat-r-black.png create mode 100755 themes/imobile/css/images/icons-png/carat-r-white.png create mode 100755 themes/imobile/css/images/icons-png/carat-u-black.png create mode 100755 themes/imobile/css/images/icons-png/carat-u-white.png create mode 100755 themes/imobile/css/images/icons-png/check-black.png create mode 100755 themes/imobile/css/images/icons-png/check-white.png create mode 100755 themes/imobile/css/images/icons-png/clock-black.png create mode 100755 themes/imobile/css/images/icons-png/clock-white.png create mode 100755 themes/imobile/css/images/icons-png/cloud-black.png create mode 100755 themes/imobile/css/images/icons-png/cloud-white.png create mode 100755 themes/imobile/css/images/icons-png/comment-black.png create mode 100755 themes/imobile/css/images/icons-png/comment-white.png create mode 100755 themes/imobile/css/images/icons-png/delete-black.png create mode 100755 themes/imobile/css/images/icons-png/delete-white.png create mode 100755 themes/imobile/css/images/icons-png/edit-black.png create mode 100755 themes/imobile/css/images/icons-png/edit-white.png create mode 100755 themes/imobile/css/images/icons-png/eye-black.png create mode 100755 themes/imobile/css/images/icons-png/eye-white.png create mode 100755 themes/imobile/css/images/icons-png/forbidden-black.png create mode 100755 themes/imobile/css/images/icons-png/forbidden-white.png create mode 100755 themes/imobile/css/images/icons-png/forward-black.png create mode 100755 themes/imobile/css/images/icons-png/forward-white.png create mode 100755 themes/imobile/css/images/icons-png/gear-black.png create mode 100755 themes/imobile/css/images/icons-png/gear-white.png create mode 100755 themes/imobile/css/images/icons-png/grid-black.png create mode 100755 themes/imobile/css/images/icons-png/grid-white.png create mode 100755 themes/imobile/css/images/icons-png/heart-black.png create mode 100755 themes/imobile/css/images/icons-png/heart-white.png create mode 100755 themes/imobile/css/images/icons-png/home-black.png create mode 100755 themes/imobile/css/images/icons-png/home-white.png create mode 100755 themes/imobile/css/images/icons-png/info-black.png create mode 100755 themes/imobile/css/images/icons-png/info-white.png create mode 100755 themes/imobile/css/images/icons-png/location-black.png create mode 100755 themes/imobile/css/images/icons-png/location-white.png create mode 100755 themes/imobile/css/images/icons-png/lock-black.png create mode 100755 themes/imobile/css/images/icons-png/lock-white.png create mode 100755 themes/imobile/css/images/icons-png/mail-black.png create mode 100755 themes/imobile/css/images/icons-png/mail-white.png create mode 100755 themes/imobile/css/images/icons-png/minus-black.png create mode 100755 themes/imobile/css/images/icons-png/minus-white.png create mode 100755 themes/imobile/css/images/icons-png/navigation-black.png create mode 100755 themes/imobile/css/images/icons-png/navigation-white.png create mode 100755 themes/imobile/css/images/icons-png/phone-black.png create mode 100755 themes/imobile/css/images/icons-png/phone-white.png create mode 100755 themes/imobile/css/images/icons-png/plus-black.png create mode 100755 themes/imobile/css/images/icons-png/plus-white.png create mode 100755 themes/imobile/css/images/icons-png/power-black.png create mode 100755 themes/imobile/css/images/icons-png/power-white.png create mode 100755 themes/imobile/css/images/icons-png/recycle-black.png create mode 100755 themes/imobile/css/images/icons-png/recycle-white.png create mode 100755 themes/imobile/css/images/icons-png/refresh-black.png create mode 100755 themes/imobile/css/images/icons-png/refresh-white.png create mode 100755 themes/imobile/css/images/icons-png/search-black.png create mode 100755 themes/imobile/css/images/icons-png/search-white.png create mode 100755 themes/imobile/css/images/icons-png/shop-black.png create mode 100755 themes/imobile/css/images/icons-png/shop-white.png create mode 100755 themes/imobile/css/images/icons-png/star-black.png create mode 100755 themes/imobile/css/images/icons-png/star-white.png create mode 100755 themes/imobile/css/images/icons-png/tag-black.png create mode 100755 themes/imobile/css/images/icons-png/tag-white.png create mode 100755 themes/imobile/css/images/icons-png/user-black.png create mode 100755 themes/imobile/css/images/icons-png/user-white.png create mode 100755 themes/imobile/css/images/icons-png/video-black.png create mode 100755 themes/imobile/css/images/icons-png/video-white.png create mode 100755 themes/imobile/css/images/icons-svg/action-black.svg create mode 100755 themes/imobile/css/images/icons-svg/action-white.svg create mode 100755 themes/imobile/css/images/icons-svg/alert-black.svg create mode 100755 themes/imobile/css/images/icons-svg/alert-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-l-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-l-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-r-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-r-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-d-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-l-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-l-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-r-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-r-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-l-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-l-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-r-black.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-r-white.svg create mode 100755 themes/imobile/css/images/icons-svg/arrow-u-white.svg create mode 100755 themes/imobile/css/images/icons-svg/audio-black.svg create mode 100755 themes/imobile/css/images/icons-svg/audio-white.svg create mode 100755 themes/imobile/css/images/icons-svg/back-black.svg create mode 100755 themes/imobile/css/images/icons-svg/back-white.svg create mode 100755 themes/imobile/css/images/icons-svg/bars-black.svg create mode 100755 themes/imobile/css/images/icons-svg/bars-white.svg create mode 100755 themes/imobile/css/images/icons-svg/bullets-black.svg create mode 100755 themes/imobile/css/images/icons-svg/bullets-white.svg create mode 100755 themes/imobile/css/images/icons-svg/calendar-black.svg create mode 100755 themes/imobile/css/images/icons-svg/calendar-white.svg create mode 100755 themes/imobile/css/images/icons-svg/camera-black.svg create mode 100755 themes/imobile/css/images/icons-svg/camera-white.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-d-black.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-d-white.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-l-black.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-l-white.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-r-black.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-r-white.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-u-black.svg create mode 100755 themes/imobile/css/images/icons-svg/carat-u-white.svg create mode 100755 themes/imobile/css/images/icons-svg/check-black.svg create mode 100755 themes/imobile/css/images/icons-svg/check-white.svg create mode 100755 themes/imobile/css/images/icons-svg/clock-black.svg create mode 100755 themes/imobile/css/images/icons-svg/clock-white.svg create mode 100755 themes/imobile/css/images/icons-svg/cloud-black.svg create mode 100755 themes/imobile/css/images/icons-svg/cloud-white.svg create mode 100755 themes/imobile/css/images/icons-svg/comment-black.svg create mode 100755 themes/imobile/css/images/icons-svg/comment-white.svg create mode 100755 themes/imobile/css/images/icons-svg/delete-black.svg create mode 100755 themes/imobile/css/images/icons-svg/delete-white.svg create mode 100755 themes/imobile/css/images/icons-svg/edit-black.svg create mode 100755 themes/imobile/css/images/icons-svg/edit-white.svg create mode 100755 themes/imobile/css/images/icons-svg/eye-black.svg create mode 100755 themes/imobile/css/images/icons-svg/eye-white.svg create mode 100755 themes/imobile/css/images/icons-svg/forbidden-black.svg create mode 100755 themes/imobile/css/images/icons-svg/forbidden-white.svg create mode 100755 themes/imobile/css/images/icons-svg/forward-black.svg create mode 100755 themes/imobile/css/images/icons-svg/forward-white.svg create mode 100755 themes/imobile/css/images/icons-svg/gear-black.svg create mode 100755 themes/imobile/css/images/icons-svg/gear-white.svg create mode 100755 themes/imobile/css/images/icons-svg/grid-black.svg create mode 100755 themes/imobile/css/images/icons-svg/grid-white.svg create mode 100755 themes/imobile/css/images/icons-svg/heart-black.svg create mode 100755 themes/imobile/css/images/icons-svg/heart-white.svg create mode 100755 themes/imobile/css/images/icons-svg/home-black.svg create mode 100755 themes/imobile/css/images/icons-svg/home-white.svg create mode 100755 themes/imobile/css/images/icons-svg/info-black.svg create mode 100755 themes/imobile/css/images/icons-svg/info-white.svg create mode 100755 themes/imobile/css/images/icons-svg/location-black.svg create mode 100755 themes/imobile/css/images/icons-svg/location-white.svg create mode 100755 themes/imobile/css/images/icons-svg/lock-black.svg create mode 100755 themes/imobile/css/images/icons-svg/lock-white.svg create mode 100755 themes/imobile/css/images/icons-svg/mail-black.svg create mode 100755 themes/imobile/css/images/icons-svg/mail-white.svg create mode 100755 themes/imobile/css/images/icons-svg/minus-black.svg create mode 100755 themes/imobile/css/images/icons-svg/minus-white.svg create mode 100755 themes/imobile/css/images/icons-svg/navigation-black.svg create mode 100755 themes/imobile/css/images/icons-svg/navigation-white.svg create mode 100755 themes/imobile/css/images/icons-svg/phone-black.svg create mode 100755 themes/imobile/css/images/icons-svg/phone-white.svg create mode 100755 themes/imobile/css/images/icons-svg/plus-black.svg create mode 100755 themes/imobile/css/images/icons-svg/plus-white.svg create mode 100755 themes/imobile/css/images/icons-svg/power-black.svg create mode 100755 themes/imobile/css/images/icons-svg/power-white.svg create mode 100755 themes/imobile/css/images/icons-svg/recycle-black.svg create mode 100755 themes/imobile/css/images/icons-svg/recycle-white.svg create mode 100755 themes/imobile/css/images/icons-svg/refresh-black.svg create mode 100755 themes/imobile/css/images/icons-svg/refresh-white.svg create mode 100755 themes/imobile/css/images/icons-svg/search-black.svg create mode 100755 themes/imobile/css/images/icons-svg/search-white.svg create mode 100755 themes/imobile/css/images/icons-svg/shop-black.svg create mode 100755 themes/imobile/css/images/icons-svg/shop-white.svg create mode 100755 themes/imobile/css/images/icons-svg/star-black.svg create mode 100755 themes/imobile/css/images/icons-svg/star-white.svg create mode 100755 themes/imobile/css/images/icons-svg/tag-black.svg create mode 100755 themes/imobile/css/images/icons-svg/tag-white.svg create mode 100755 themes/imobile/css/images/icons-svg/user-black.svg create mode 100755 themes/imobile/css/images/icons-svg/user-white.svg create mode 100755 themes/imobile/css/images/icons-svg/video-black.svg create mode 100755 themes/imobile/css/images/icons-svg/video-white.svg create mode 100755 themes/imobile/css/imobile.css create mode 100755 themes/imobile/css/imobile.min.css create mode 100755 themes/imobile/css/jquery.mobile-1.4.1.min.css create mode 100755 themes/imobile/helpers/imobile.php create mode 100755 themes/imobile/helpers/search.php create mode 100755 themes/imobile/images/fotorama.png create mode 100755 themes/imobile/images/fotorama@2x.png create mode 100755 themes/imobile/images/loader.gif create mode 100755 themes/imobile/js/fotorama.js create mode 100755 themes/imobile/js/fotorama.min.js create mode 100755 themes/imobile/js/imobile.js create mode 100755 themes/imobile/js/imobile.min.js create mode 100755 themes/imobile/js/jquery-1.11.0.min.js create mode 100755 themes/imobile/js/jquery.mobile-1.4.1.js create mode 100755 themes/imobile/js/jquery.unveil.min.js create mode 100755 themes/imobile/js/staystandalone.js create mode 100755 themes/imobile/js/staystandalone.min.js create mode 100755 themes/imobile/theme.info create mode 100755 themes/imobile/thumbnail.png create mode 100755 themes/imobile/views/album.html.php create mode 100755 themes/imobile/views/movie.html.php create mode 100755 themes/imobile/views/page.html.php create mode 100755 themes/imobile/views/photo.html.php create mode 100755 themes/imobile/views/search.html.php create mode 100755 themes/smk/css/fix-ie.css create mode 100755 themes/smk/css/screen-rtl.css create mode 100755 themes/smk/css/screen.css create mode 100755 themes/smk/css/themeroller/images/animated-overlay.gif create mode 100755 themes/smk/css/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_flat_55_fbec88_40x100.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 themes/smk/css/themeroller/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_217bc0_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_2e83ff_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_469bdd_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_6da8d5_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_cd0a0a_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_d8e7f3_256x240.png create mode 100755 themes/smk/css/themeroller/images/ui-icons_f9bd01_256x240.png create mode 100755 themes/smk/css/themeroller/ui.base.css create mode 100755 themes/smk/images/avatar.jpg create mode 100755 themes/smk/images/ico-album.png create mode 100755 themes/smk/images/ico-denied-inactive.png create mode 100755 themes/smk/images/ico-denied-passive.png create mode 100755 themes/smk/images/ico-denied.png create mode 100755 themes/smk/images/ico-error.png create mode 100755 themes/smk/images/ico-help.png create mode 100755 themes/smk/images/ico-info.png create mode 100755 themes/smk/images/ico-lock.png create mode 100755 themes/smk/images/ico-print.png create mode 100755 themes/smk/images/ico-separator-rtl.gif create mode 100755 themes/smk/images/ico-separator.gif create mode 100755 themes/smk/images/ico-success-inactive.png create mode 100755 themes/smk/images/ico-success-passive.png create mode 100755 themes/smk/images/ico-success.png create mode 100755 themes/smk/images/ico-view-comments.png create mode 100755 themes/smk/images/ico-view-fullsize.png create mode 100755 themes/smk/images/ico-view-slideshow-rtl.png create mode 100755 themes/smk/images/ico-view-slideshow.png create mode 100755 themes/smk/images/ico-warning.png create mode 100755 themes/smk/images/loading-large.gif create mode 100755 themes/smk/images/loading-small.gif create mode 100755 themes/smk/images/select-photos-backg.png create mode 100755 themes/smk/js/ui.init.js create mode 100755 themes/smk/theme.info create mode 100755 themes/smk/thumbnail.png create mode 100755 themes/smk/views/album.html.php create mode 100755 themes/smk/views/block.html.php create mode 100755 themes/smk/views/dynamic.html.php create mode 100755 themes/smk/views/movie.html.php create mode 100755 themes/smk/views/no_sidebar.html.php create mode 100755 themes/smk/views/page.html.php create mode 100755 themes/smk/views/paginator.html.php create mode 100755 themes/smk/views/photo.html.php create mode 100755 themes/smk/views/sidebar.html.php create mode 100755 themes/widesmk/css/fix-ie.css create mode 100755 themes/widesmk/css/screen-rtl.css create mode 100755 themes/widesmk/css/screen.css create mode 100755 themes/widesmk/css/themeroller/images/animated-overlay.gif create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_flat_55_fbec88_40x100.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_glass_75_d0e5f5_1x400.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_glass_85_dfeffc_1x400.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_gloss-wave_55_5c9ccc_500x100.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png create mode 100755 themes/widesmk/css/themeroller/images/ui-bg_inset-hard_100_fcfdfd_1x100.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_217bc0_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_2e83ff_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_469bdd_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_6da8d5_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_cd0a0a_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_d8e7f3_256x240.png create mode 100755 themes/widesmk/css/themeroller/images/ui-icons_f9bd01_256x240.png create mode 100755 themes/widesmk/css/themeroller/ui.base.css create mode 100755 themes/widesmk/css/themeroller/ui.core.css create mode 100755 themes/widesmk/css/themeroller/ui.datepicker.css create mode 100755 themes/widesmk/css/themeroller/ui.dialog.css create mode 100755 themes/widesmk/css/themeroller/ui.progressbar.css create mode 100755 themes/widesmk/css/themeroller/ui.resizable.css create mode 100755 themes/widesmk/css/themeroller/ui.tabs.css create mode 100755 themes/widesmk/css/themeroller/ui.theme.css create mode 100755 themes/widesmk/images/avatar.jpg create mode 100755 themes/widesmk/images/ico-album.png create mode 100755 themes/widesmk/images/ico-denied-inactive.png create mode 100755 themes/widesmk/images/ico-denied-passive.png create mode 100755 themes/widesmk/images/ico-denied.png create mode 100755 themes/widesmk/images/ico-error.png create mode 100755 themes/widesmk/images/ico-help.png create mode 100755 themes/widesmk/images/ico-info.png create mode 100755 themes/widesmk/images/ico-lock.png create mode 100755 themes/widesmk/images/ico-print.png create mode 100755 themes/widesmk/images/ico-separator-rtl.gif create mode 100755 themes/widesmk/images/ico-separator.gif create mode 100755 themes/widesmk/images/ico-success-inactive.png create mode 100755 themes/widesmk/images/ico-success-passive.png create mode 100755 themes/widesmk/images/ico-success.png create mode 100755 themes/widesmk/images/ico-view-comments.png create mode 100755 themes/widesmk/images/ico-view-fullsize.png create mode 100755 themes/widesmk/images/ico-view-slideshow-rtl.png create mode 100755 themes/widesmk/images/ico-view-slideshow.png create mode 100755 themes/widesmk/images/ico-warning.png create mode 100755 themes/widesmk/images/loading-large.gif create mode 100755 themes/widesmk/images/loading-small.gif create mode 100755 themes/widesmk/images/select-photos-backg.png create mode 100755 themes/widesmk/js/ui.init.js create mode 100755 themes/widesmk/theme.info create mode 100755 themes/widesmk/thumbnail.png create mode 100755 themes/widesmk/views/album.html.php create mode 100755 themes/widesmk/views/block.html.php create mode 100755 themes/widesmk/views/dynamic.html.php create mode 100755 themes/widesmk/views/movie.html.php create mode 100755 themes/widesmk/views/no_sidebar.html.php create mode 100755 themes/widesmk/views/page.html.php create mode 100755 themes/widesmk/views/paginator.html.php create mode 100755 themes/widesmk/views/photo.html.php create mode 100755 themes/widesmk/views/sidebar.html.php diff --git a/README.md b/README.md new file mode 100644 index 0000000..c94a69e --- /dev/null +++ b/README.md @@ -0,0 +1,32 @@ +modules/: +albumtree +arrow_nav +batchtag +captionator +custom_menus +database_info +delete_cache +downloadfullsize +dupcheck +exif_gps +gallerystats +greydragon +image_fit +latestupdates +moduleorder +movie_tools +permissions_dialog_usability +reset_counts +rwinfo +tag_cloud_page +themedispatcher +treeview +user_info + +themes/: +clean_canvas +greydragon +greydragon_wide_wind +imobile +smk +widesmk diff --git a/modules/.not-used/navcarousel/controllers/admin_navcarousel.php b/modules/.not-used/navcarousel/controllers/admin_navcarousel.php new file mode 100755 index 0000000..5d9dff6 --- /dev/null +++ b/modules/.not-used/navcarousel/controllers/admin_navcarousel.php @@ -0,0 +1,134 @@ +_get_view(); + } + + public function handler() { + access::verify_csrf(); + + $form = $this->_get_form(); + if ($form->validate()) { + $scrollsize = intval($form->navcarousel->scrollsize->value); + $showelements = intval($form->navcarousel->showelements->value); + $carouselwidth = intval($form->navcarousel->carouselwidth->value); + $thumbsize = intval($form->thumbsettings->thumbsize->value); + if ($showelements < 1) { + $showelements = 1; + message::error(t("You must show at least one item.")); + } + if ($scrollsize < 1) { + $scrollsize = 1; + message::error(t("You must scroll by at least one item.")); + } + if ($thumbsize > 150 || $thumbsize < 25) { + $thumbsize = 50; + message::error(t("The size of the thumbnails must be between 25 and 150 pixel.")); + } + if ($carouselwidth < ($thumbsize + 75) && $carouselwidth > 0) { + $carouselwidth = $thumbsize + 75; + message::error(t("The carousel must be at least %pixel wide.", array("pixel" => $carouselwidth))); + } + if ($carouselwidth > 0) { + if ($carouselwidth < ((($thumbsize + 11) * $showelements) + 64)) { + $showelements = ($carouselwidth - 64) / ($thumbsize + 11); + $showelements = intval(floor($showelements)); + message::error(t("With the selected carousel width and thumbnail size you can show a maximum of %itemno items.", array("itemno" => $showelements))); + } + } else { + message::warning(t("The maximum number of displayable items cannot be calculated when the carousel width is set to 0.")); + } + if ($scrollsize > $showelements) { + $scrollsize = $showelements; + message::error(t("The number of items to scroll must not exceed the number of items to show.")); + } + module::set_var( + "navcarousel", "scrollsize", $scrollsize); + module::set_var( + "navcarousel", "showelements", $showelements); + module::set_var( + "navcarousel", "carouselwidth", $carouselwidth); + module::set_var( + "navcarousel", "thumbsize", $thumbsize); + module::set_var( + "navcarousel", "abovephoto", $form->navcarousel->abovephoto->value, true); + module::set_var( + "navcarousel", "noajax", $form->navcarousel->noajax->value, true); + module::set_var( + "navcarousel", "showondomready", $form->navcarousel->showondomready->value, true); + module::set_var( + "navcarousel", "maintainaspect", $form->thumbsettings->maintainaspect->value, true); + module::set_var( + "navcarousel", "nomouseover", $form->thumbsettings->nomouseover->value, true); + module::set_var( + "navcarousel", "noresize", $form->thumbsettings->noresize->value, true); + + message::success(t("Your settings have been saved.")); + url::redirect("admin/navcarousel"); + } + print $this->_get_view($form); + } + + private function _get_view($form=null) { + $v = new Admin_View("admin.html"); + $v->content = new View("admin_navcarousel.html"); + $v->content->form = empty($form) ? $this->_get_form() : $form; + return $v; + } + + private function _get_form() { + $form = new Forge("admin/navcarousel/handler", "", "post", array("id" => "g-admin-form")); + + $group = $form->group("navcarousel")->label(t("Navigation carousel settings")); + $group->input("scrollsize")->label(t('Enter how many items you want to scroll when clicking next or previous')) + ->value(module::get_var("navcarousel", "scrollsize", "7")) + ->rules("valid_numeric|length[1,2]"); + $group->input("showelements")->label(t('Enter how many items you want to be visible')) + ->value(module::get_var("navcarousel", "showelements", "7")) + ->rules("valid_numeric|length[1,2]"); + $group->input("carouselwidth")->label(t('Carousel width (in pixel). If set to 0 the carousel will use the full available width.')) + ->value(module::get_var("navcarousel", "carouselwidth", "600")) + ->rules("valid_numeric|length[1,3]"); + $group->checkbox("abovephoto")->label(t("Show carousel above photo")) + ->checked(module::get_var("navcarousel", "abovephoto", false)); + $group->checkbox("noajax")->label(t("Disable dynamic loading of thumbnails (might be slow for big albums)")) + ->checked(module::get_var("navcarousel", "noajax", false)); + $group->checkbox("showondomready")->label(t("Show carousel before all items are loaded (faster loading on large albums but might cause too early display on Chrome and Opera)")) + ->checked(module::get_var("navcarousel", "showondomready", false)); + + $group = $form->group("thumbsettings")->label(t("Change how thumnails are displayed")); + $group->input("thumbsize")->label(t('Thumbnail size (in pixel)')) + ->value(module::get_var("navcarousel", "thumbsize", "50")) + ->rules("valid_numeric|length[1,3]"); + $group->checkbox("nomouseover")->label(t("Do not show item title and number on mouse over")) + ->checked(module::get_var("navcarousel", "nomouseover", false)); + $group->checkbox("noresize")->label(t("Crop thumbails instead of resizing them.")) + ->onClick("changeaspectstate()") + ->id("noresize") + ->checked(module::get_var("navcarousel", "noresize", false)); + $group->checkbox("maintainaspect")->label(t("Maintain aspect ratio of the items for the thumbnails.")) + ->id("maintainaspect") + ->checked(module::get_var("navcarousel", "maintainaspect", false)); + + $form->submit("submit")->value(t("Save")); + return $form; + } +} diff --git a/modules/.not-used/navcarousel/controllers/navcarousel.php b/modules/.not-used/navcarousel/controllers/navcarousel.php new file mode 100755 index 0000000..7b8125a --- /dev/null +++ b/modules/.not-used/navcarousel/controllers/navcarousel.php @@ -0,0 +1,62 @@ +parent(); + $item_count = -1; + + // Array indexes are 0-based, jCarousel positions are 1-based. + $first = max(0, intval($_GET['first']) - 1); + $last = max($first + 1, intval($_GET['last']) - 1); + + $length = $last - $first + 1; + + // Build the array with the thumbnail URLs + foreach ($parent->viewable()->children() as $photo) { + if (!$photo->is_album()) { + $item_count++; + $itemlist[$item_count] = $photo->thumb_url(); + } + } + + $total = count($itemlist); + $selected = array_slice($itemlist, $first, $length); + + // --- + + header('Content-Type: text/xml'); + + echo ''; + + // Return total number of images so the callback + // can set the size of the carousel. + echo ' ' . $total . ''; + + foreach ($selected as $img) { + echo ' ' . $img . ''; + } + + echo ''; + + } +} diff --git a/modules/.not-used/navcarousel/css/credits.txt b/modules/.not-used/navcarousel/css/credits.txt new file mode 100755 index 0000000..e5ec8c2 --- /dev/null +++ b/modules/.not-used/navcarousel/css/credits.txt @@ -0,0 +1 @@ +Button images copyright by Tango Icon Library Team (http://tango.freedesktop.org/Tango_Icon_Library) \ No newline at end of file diff --git a/modules/.not-used/navcarousel/css/skin.css b/modules/.not-used/navcarousel/css/skin.css new file mode 100755 index 0000000..695779f --- /dev/null +++ b/modules/.not-used/navcarousel/css/skin.css @@ -0,0 +1,122 @@ +.jcarousel-skin-tango .jcarousel-container { + -moz-border-radius: 10px; + background: transparent; + border: 0; +} + +.jcarousel-skin-tango .jcarousel-container-horizontal { + padding: 0 60px; + margin: 0 auto; +} + +.jcarousel-skin-tango .jcarousel-item { + background-color: transparent !important; +} + +.jcarousel-skin-tango .jcarousel-item-horizontal { + margin-right: 2px; + margin-right: 2px; + padding-top: 2px; + text-align: center; +} + +.jcarousel-skin-tango .jcarousel-item-placeholder { + background: #fff; + color: #000; +} + +/** + * Horizontal Buttons + */ +.jcarousel-skin-tango .jcarousel-next-horizontal { + position: absolute; + right: 18px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url('../images/next-horizontal.png') no-repeat 0 0; + visibility: hidden; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:hover { + background-position: -32px 0; +} + +.jcarousel-skin-tango .jcarousel-next-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-next-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal { + position: absolute; + left: 18px; + width: 32px; + height: 32px; + cursor: pointer; + background: transparent url('../images/prev-horizontal.png') no-repeat 0 0; + visibility: hidden; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:hover { + background-position: -32px 0; +} + +.jcarousel-skin-tango .jcarousel-prev-horizontal:active { + background-position: -64px 0; +} + +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:hover, +.jcarousel-skin-tango .jcarousel-prev-disabled-horizontal:active { + cursor: default; + background-position: -96px 0; +} + +.carousel-thumbnail { + padding: 5px; + margin: 0 !important; +} + +.carousel-thumbnail:hover { + box-shadow: 1px 0px 8px #d7e1fa; + -moz-box-shadow: 1px 0px 8px #d7e1fa; + -webkit-box-shadow: 1px 0px 8px #d7e1fa; +} + +.carousel-current { + box-shadow: 1px 0px 8px #d7e1fa; + -moz-box-shadow: 1px 0px 8px #d7e1fa; + -webkit-box-shadow: 1px 0px 8px #d7e1fa; + padding: 5px; + margin: 0 !important; +} + +#navcarousel-wrapper { + width: 100%; + background: url('../images/ajax-loader.gif') no-repeat center center; +} + +#navcarousel { + visibility: hidden; +} + +/** + * RTL Support + */ + +.jcarousel-skin-tango .jcarousel-direction-rtl {direction:rtl;} +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-item-horizontal{ margin-right:0; margin-left:10px;} + +/*horizontal buttons*/ +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-next-horizontal{ + background-image:url('../images/prev-horizontal.png'); right:auto; left:5px; +} +.jcarousel-skin-tango .jcarousel-direction-rtl .jcarousel-prev-horizontal{ + background-image:url('../images/next-horizontal.png'); left:auto; right:5px; +} diff --git a/modules/.not-used/navcarousel/helpers/navcarousel_event.php b/modules/.not-used/navcarousel/helpers/navcarousel_event.php new file mode 100755 index 0000000..a636ea2 --- /dev/null +++ b/modules/.not-used/navcarousel/helpers/navcarousel_event.php @@ -0,0 +1,28 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("navcarousel_menu") + ->label(t("Navigation carousel")) + ->url(url::site("admin/navcarousel"))); + } +} diff --git a/modules/.not-used/navcarousel/helpers/navcarousel_theme.php b/modules/.not-used/navcarousel/helpers/navcarousel_theme.php new file mode 100755 index 0000000..cd1603a --- /dev/null +++ b/modules/.not-used/navcarousel/helpers/navcarousel_theme.php @@ -0,0 +1,43 @@ +page_type == "item") { + return $theme->script("jquery.jcarousel.min.js") + . $theme->css("skin.css"); + } + } + + static function photo_bottom($theme) { + if (!module::get_var("navcarousel", "abovephoto", false)) { + if ($theme->page_type == "item") { + return new View("navcarousel.html"); + } + } + } + + static function photo_top($theme) { + if (module::get_var("navcarousel", "abovephoto", false)) { + if ($theme->page_type == "item") { + return new View("navcarousel.html"); + } + } + } +} diff --git a/modules/.not-used/navcarousel/images/ajax-loader.gif b/modules/.not-used/navcarousel/images/ajax-loader.gif new file mode 100755 index 0000000000000000000000000000000000000000..3288d1035d70bb86517e2c233f1a904e41f06b29 GIT binary patch literal 3208 zcmc(iX;4#H9>pJdFE7h`I{IF)0|5<6L}(j=N}5%L009EB2nYfyF)E0PvIqo$u!IC; z4PgyY5|S9AEh38G)(9eq4TbH7_UHg@yWrlIJ$6smIADL7s^P;_O;ykRc9soXl`UC*LwQJXkii*0rx|*7rI2=x7WaRkx_~XZqFJ8R3c=2Kg zf@aSAv8+BJ8+^hyay>(QR@t*blbKzsf0}bscEqRc5Hd3o(-N5RyW=zWB*zQw6Zh>* z2CROCDAbu#D`)S|J_o(lL9Yn3l*+8RdiRD_>iNz$#_IAzCna&Wl5 zSF_(rRCDD!wi#i8oAm&jYtn2_@VB%2-H*G%bN#|(6R6N?wM)3u`PiGzwuX7qmTgyF zpE)h0kuoxQ9?=kW7Y!=R@DmhU9)vwT*EZWzJ zrt+=2tqFts72yIp?|gvdLhs8Hfku^Z(){gmN%Y=K#P|%fkvgUj~HfIp3CuXqCtYGtJ#me+n+-LmP( z*XNuk%!aH8bIE@_Bj46>M*dSro|7<6vZ7WUHh5YQzN$>IJFqCb|CT!wj~R2C2%=q{ zpt8rzY$aw?W?=Ustv{jo?Ow@ZRkLe<)NItY>Cyhle*wR59dTdF6(@{5^ zAQBOB*hNtc3bkY-8{Cm$nFS@elbTtSqrt7MB{h_4y+~`!mVa}?c&N>&?P}GqdMuhQ z&@TD5Czd((DcG_Su~dKKV)Pj$-qi1WHM8_vc^O4?^!oY|tmK~i!{fjd&@_1E(T~r7 z_REZy&hMT^ySJB3W7l$4YhR`M(J7S5S~+4Q&3HPa)z%zPpisOp$^ zTEe99ig2$5_qFr!$;7A6CJ}PJmRhli>w?LC}Y`#HLGy6 zMU4EhL~dKCN5Ut;U2jd*83ShBNiu zcJB0l9>1Modc?-oM<R4?}3g}UJ%@K);kriq>)e*rh%hdqM)5Q)*+O8 zXm;SEbs@koiYS!9YXIclSg+5m_s~yrW#kKMdiRszg(gCP5HPmP7L)vCf8@fxUh6qY z@Z#TmkjzAZX{rwE+q|K~F2v5{_@vt%>yT_a#fF03SFt{0RXvDAiaY~K9CgS1O>frXgAjBCS}mEd4mIWZ$=ovd5| zR?GRdU}d6+Q`+JRW)|=v7$)XNkn3yE`!nAiSCvOB1jKT zG<1aK3s<0b0m==egTD#8i(Of=1pGDTOCho0XpIOMQ&P87cVKY1W=C6kIg z9cH=@a&zbm2+`|{(_?YC9fdm?1TY~-pwlBn?>=(~1pDKbco6jloP;0-cqRiwV1A_S zEyV0Dj8Pwy!nekzaN>{)7rgZ&_QLxK{~1yRe865^yx>}+a!ECd>#MMwddow z@CU{l+Rt$xuXuf}?ga{3IAr?Raql^c@a%sI0U5m}HvJ5O1#I%_MMPt#BH>OqUZ{-k zt>4Xzz=%jT*FVW(uYkWyx}9Gw$HdN*qU?Bit#ji(Wi7p-u|_8?h^%szIS^s^fNM}b zgGy>|=cbEufpguY5_6w~&ZLv=Bo06UF9EYIY;Er-1VK)SyF&!|J{axiE1z^(hXwVq zsFS=K-#zC}CcOs^8W{KAt+kK)jYDgDYbCXv{{rwsgqtIU3<910$CJi)s?? z_t8k{>7*0~4l~LLF7$WXT5OSq5QCTbP_l!SN|{R}3D&eWA8~0ltWh1IL+ZBX4rRSt zWF6Om3WDMu4xK^1(BF`2cL}rUCzhHAB`@j5&R-yk_l*t;mPGY|u2^o|myvcOdrg0W z%=lX;f^Vkqfp?u7*4qQq%A3Mpf!xspWBSKS@O%r*TSM}?dl(@*%{0Jm_8;(h{R__M Btk^P) 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 literal 0 HcmV?d00001 diff --git a/modules/.not-used/navcarousel/images/prev-horizontal.png b/modules/.not-used/navcarousel/images/prev-horizontal.png new file mode 100755 index 0000000000000000000000000000000000000000..e963d28ec64a8891975a1c27c1557385dd725a35 GIT binary patch literal 2344 zcmV+@3D@?CP)Cv0000PbVXQn zQ*UN;cVTj608n9RZgehAMN}YmGcGkQHA#y6-~a#!l1W5CRCr$PnQ3fPRTRgIpjH%% zsHlilsfyGX5+O1DLB=ZkANQmKLUOP{0R6F@FNgK z1Uh!?_?wuD;-gja5wHDM$s+!vUs9`c=gwK9MvV%11c2B6WB#}B$-?V)>eMNJ;lhQ1 zM~@yUw*m0lzie2~;qxqMNbnnX>C)xd=FOX5KYaL5J%0SyRRC&$e^24}On4ki@RPcC z@BZiE!-xO5dGn?^a^#2t0=F`N-T$pyx769QXWjPiDg0iGpO%`MT13zq#i4!Mu=3ySEPMxZD|5oM;!gv1s zd9`NE8nt%qTG!z7O#F83+Qmt;S2%a>TrEDke*OCO+BR<7s3Ew2|Gv6=_ioVc+_|H$ z+qZ9Pqf}hGb}gzb5$gZIfdgv){{8CU!Gr41p+hi)!7vb$ZdzpPQSjA=t2CLmA^e#$k+M{K}OpqXHn*e_mdm z+O=z!+Oubm+P80?0tN)J8*uQ9(!@B%lck~oFcdzr-l9c|l$?C@>#}9b)Rik&strER zgtt;&iZpwFNdQYpxyzR?*VOZhpmqq1=%hp=x)I)dj_eUhqbOs8{!gAfspQ0=%MKZ6 z_wL<62oT&@sPKr-c(PQa{zKtI>^XDhXqz{0o?5VAfrcQ|fMfpr`Pvved-m+8;PX^` zsrQ)!1`H^o#uC73)26A(lP9aGQ>W?$u}C`vh>iip>eZ|DGb4Ofa6@0Ld+5MMF<|YJCQZ_FKx|`1eCd-kAk39HGk3;E0-vYi z<6H!IHhlQ-0L>La4i!HmBSVYN!pI633k3!O!ee;iW>fO7y>fgV=k|VGhG-!}Y zOG{I-NpuWI^9XOsgAt!+6DLkonVFf6;qzR4YXV$xX3K($NTuv(b^-K{A3t6%%9I0y zVZpp&hIke|cI;T4F~}T1L@IRxfOW+h^pA)D1W3R|`9W|>3mJkeV9E{e0|)Q{3(znx zcB2#jcKF!I0Du|s5q`*!A!_K*p*ky=%s_n1#$a<`#LBGS34Aq0d^3+aZQHg@l_v0S zNu#B7-w4mb%#Jkm(9}G8>Vtj)00ium5CGnCu-G#Gsq3ccLS%XZ$_{4A4!;8fU;u$> z!hj$IfXe)rfgeAi;v>3bNDa2#SR-Hz9z0kL95_&a&SVfL@HvQyYeQ;@r+3BbB_$;# zOE!2RsklV0es!8N&5%ibq)Lpx4Fo^}F!Ty$7ubUE4!gXP)s*os$IurdLZ z=`@_?GKSL!zZ(dEgiOJ_m=kl3z<&@vx#uY51cB)6{PKDs)<||VnGOiZ6qJj8{rc$= zV)N|;e%FMq$Wd*1P**HY?9+sVgyxdEpUN(J#jP8=%zhL?kix=3-RN*V%Y6aY#OKbP z)7P{#lN=*$L5P*_#fM}6lA51N#(8!6^l4q=+4YD{d7#VZDw=aX^Pt(oNV{BFpE+|z z-xfObUj{z$`$AwU;hur4W*TAAJsFNthw(Sr&OiVx^a^s4(pew^_&gV%3DmIws1E>Q zU&h77HIrpvXigUz*Yxv%nl?}Y)NT>tIcx94;cKu|h;#HY)r zQ%88o6lF}rQ+6|R3*)~G{7srPX)gBxPbH(hLPXYVgeSw%{}2zr2YR40-~%i77ZJi= zBLH9*AQBni6R}2OUyFU$x^?TEzJ2=^a}Uq1FtwO-u9S*m8S|^yFJeE7{V0|o_LbP@ zVjqju6QjITT8At0-=29P*Z6?~D#$F=bYLHABZ00x9@5E~oYQ0iZv z9D80{mpl!uXN;kQ@R?|Y4_%lS{=>p2O<*w@pqk)!P25Nw(ZCTLb_oq#tU!=q0l<3* z&X~&1`jPsyk9XU@7x2AFeEiQ=V+7oWuNs%)f3+V0KLUOP{0R6Fi1`
  • First item
  • Second item
  • + * @result + * + *
    + *
    + *
    + *
      + *
    • First item
    • + *
    • Second item
    • + *
    + *
    + *
    + *
    + *
    + *
    + * + * @method jcarousel + * @return jQuery + * @param o {Hash|String} A set of key/value pairs to set as configuration properties or a method name to call on a formerly created instance. + */ + $.fn.jcarousel = function(o) { + if (typeof o == 'string') { + var instance = $(this).data('jcarousel'), args = Array.prototype.slice.call(arguments, 1); + return instance[o].apply(instance, args); + } else + return this.each(function() { + $(this).data('jcarousel', new $jc(this, o)); + }); + }; + + // Default configuration properties. + var defaults = { + vertical: false, + rtl: false, + start: 1, + offset: 1, + size: null, + scroll: 3, + visible: null, + animation: 'normal', + easing: 'swing', + auto: 0, + wrap: null, + initCallback: null, + reloadCallback: null, + itemLoadCallback: null, + itemFirstInCallback: null, + itemFirstOutCallback: null, + itemLastInCallback: null, + itemLastOutCallback: null, + itemVisibleInCallback: null, + itemVisibleOutCallback: null, + buttonNextHTML: '
    ', + buttonPrevHTML: '
    ', + buttonNextEvent: 'click', + buttonPrevEvent: 'click', + buttonNextCallback: null, + buttonPrevCallback: null, + itemFallbackDimension: null + }, windowLoaded = false; + + $(window).bind('load.jcarousel', function() { windowLoaded = true; }) + + /** + * The jCarousel object. + * + * @constructor + * @class jcarousel + * @param e {HTMLElement} The element to create the carousel for. + * @param o {Object} A set of key/value pairs to set as configuration properties. + * @cat Plugins/jCarousel + */ + $.jcarousel = function(e, o) { + this.options = $.extend({}, defaults, o || {}); + + this.locked = false; + + this.container = null; + this.clip = null; + this.list = null; + this.buttonNext = null; + this.buttonPrev = null; + + // Only set if not explicitly passed as option + if (!o || o.rtl === undefined) + this.options.rtl = ($(e).attr('dir') || $('html').attr('dir') || '').toLowerCase() == 'rtl'; + + this.wh = !this.options.vertical ? 'width' : 'height'; + this.lt = !this.options.vertical ? (this.options.rtl ? 'right' : 'left') : 'top'; + + // Extract skin class + var skin = '', split = e.className.split(' '); + + for (var i = 0; i < split.length; i++) { + if (split[i].indexOf('jcarousel-skin') != -1) { + $(e).removeClass(split[i]); + skin = split[i]; + break; + } + } + + if (e.nodeName.toUpperCase() == 'UL' || e.nodeName.toUpperCase() == 'OL') { + this.list = $(e); + this.container = this.list.parent(); + + if (this.container.hasClass('jcarousel-clip')) { + if (!this.container.parent().hasClass('jcarousel-container')) + this.container = this.container.wrap('
    '); + + this.container = this.container.parent(); + } else if (!this.container.hasClass('jcarousel-container')) + this.container = this.list.wrap('
    ').parent(); + } else { + this.container = $(e); + this.list = this.container.find('ul,ol').eq(0); + } + + if (skin != '' && this.container.parent()[0].className.indexOf('jcarousel-skin') == -1) + this.container.wrap('
    '); + + this.clip = this.list.parent(); + + if (!this.clip.length || !this.clip.hasClass('jcarousel-clip')) + this.clip = this.list.wrap('
    ').parent(); + + this.buttonNext = $('.jcarousel-next', this.container); + + if (this.buttonNext.size() == 0 && this.options.buttonNextHTML != null) + this.buttonNext = this.clip.after(this.options.buttonNextHTML).next(); + + this.buttonNext.addClass(this.className('jcarousel-next')); + + this.buttonPrev = $('.jcarousel-prev', this.container); + + if (this.buttonPrev.size() == 0 && this.options.buttonPrevHTML != null) + this.buttonPrev = this.clip.after(this.options.buttonPrevHTML).next(); + + this.buttonPrev.addClass(this.className('jcarousel-prev')); + + this.clip.addClass(this.className('jcarousel-clip')).css({ + overflow: 'hidden', + position: 'relative' + }); + this.list.addClass(this.className('jcarousel-list')).css({ + overflow: 'hidden', + position: 'relative', + top: 0, + margin: 0, + padding: 0 + }).css((this.options.rtl ? 'right' : 'left'), 0); + this.container.addClass(this.className('jcarousel-container')).css({ + position: 'relative' + }); + if (!this.options.vertical && this.options.rtl) + this.container.addClass('jcarousel-direction-rtl').attr('dir', 'rtl'); + + var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; + var li = this.list.children('li'); + + var self = this; + + if (li.size() > 0) { + var wh = 0, i = this.options.offset; + li.each(function() { + self.format(this, i++); + wh += self.dimension(this, di); + }); + + this.list.css(this.wh, (wh + 100) + 'px'); + + // Only set if not explicitly passed as option + if (!o || o.size === undefined) + this.options.size = li.size(); + } + + // For whatever reason, .show() does not work in Safari... + this.container.css('display', 'block'); + this.buttonNext.css('display', 'block'); + this.buttonPrev.css('display', 'block'); + + this.funcNext = function() { self.next(); }; + this.funcPrev = function() { self.prev(); }; + this.funcResize = function() { self.reload(); }; + + if (this.options.initCallback != null) + this.options.initCallback(this, 'init'); + + if (!windowLoaded && $.browser.safari) { + this.buttons(false, false); + $(window).bind('load.jcarousel', function() { self.setup(); }); + } else + this.setup(); + }; + + // Create shortcut for internal use + var $jc = $.jcarousel; + + $jc.fn = $jc.prototype = { + jcarousel: '0.2.5' + }; + + $jc.fn.extend = $jc.extend = $.extend; + + $jc.fn.extend({ + /** + * Setups the carousel. + * + * @method setup + * @return undefined + */ + setup: function() { + this.first = null; + this.last = null; + this.prevFirst = null; + this.prevLast = null; + this.animating = false; + this.timer = null; + this.tail = null; + this.inTail = false; + + if (this.locked) + return; + + this.list.css(this.lt, this.pos(this.options.offset) + 'px'); + var p = this.pos(this.options.start); + this.prevFirst = this.prevLast = null; + this.animate(p, false); + + $(window).unbind('resize.jcarousel', this.funcResize).bind('resize.jcarousel', this.funcResize); + }, + + /** + * Clears the list and resets the carousel. + * + * @method reset + * @return undefined + */ + reset: function() { + this.list.empty(); + + this.list.css(this.lt, '0px'); + this.list.css(this.wh, '10px'); + + if (this.options.initCallback != null) + this.options.initCallback(this, 'reset'); + + this.setup(); + }, + + /** + * Reloads the carousel and adjusts positions. + * + * @method reload + * @return undefined + */ + reload: function() { + if (this.tail != null && this.inTail) + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + this.tail); + + this.tail = null; + this.inTail = false; + + if (this.options.reloadCallback != null) + this.options.reloadCallback(this); + + if (this.options.visible != null) { + var self = this; + var di = Math.ceil(this.clipping() / this.options.visible), wh = 0, lt = 0; + this.list.children('li').each(function(i) { + wh += self.dimension(this, di); + if (i + 1 < self.first) + lt = wh; + }); + + this.list.css(this.wh, wh + 'px'); + this.list.css(this.lt, -lt + 'px'); + } + + this.scroll(this.first, false); + }, + + /** + * Locks the carousel. + * + * @method lock + * @return undefined + */ + lock: function() { + this.locked = true; + this.buttons(); + }, + + /** + * Unlocks the carousel. + * + * @method unlock + * @return undefined + */ + unlock: function() { + this.locked = false; + this.buttons(); + }, + + /** + * Sets the size of the carousel. + * + * @method size + * @return undefined + * @param s {Number} The size of the carousel. + */ + size: function(s) { + if (s != undefined) { + this.options.size = s; + if (!this.locked) + this.buttons(); + } + + return this.options.size; + }, + + /** + * Checks whether a list element exists for the given index (or index range). + * + * @method get + * @return bool + * @param i {Number} The index of the (first) element. + * @param i2 {Number} The index of the last element. + */ + has: function(i, i2) { + if (i2 == undefined || !i2) + i2 = i; + + if (this.options.size !== null && i2 > this.options.size) + i2 = this.options.size; + + for (var j = i; j <= i2; j++) { + var e = this.get(j); + if (!e.length || e.hasClass('jcarousel-item-placeholder')) + return false; + } + + return true; + }, + + /** + * Returns a jQuery object with list element for the given index. + * + * @method get + * @return jQuery + * @param i {Number} The index of the element. + */ + get: function(i) { + return $('.jcarousel-item-' + i, this.list); + }, + + /** + * Adds an element for the given index to the list. + * If the element already exists, it updates the inner html. + * Returns the created element as jQuery object. + * + * @method add + * @return jQuery + * @param i {Number} The index of the element. + * @param s {String} The innerHTML of the element. + */ + add: function(i, s) { + var e = this.get(i), old = 0, n = $(s); + + if (e.length == 0) { + var c, e = this.create(i), j = $jc.intval(i); + while (c = this.get(--j)) { + if (j <= 0 || c.length) { + j <= 0 ? this.list.prepend(e) : c.after(e); + break; + } + } + } else + old = this.dimension(e); + + if (n.get(0).nodeName.toUpperCase() == 'LI') { + e.replaceWith(n); + e = n; + } else + e.empty().append(s); + + this.format(e.removeClass(this.className('jcarousel-item-placeholder')), i); + + var di = this.options.visible != null ? Math.ceil(this.clipping() / this.options.visible) : null; + var wh = this.dimension(e, di) - old; + + if (i > 0 && i < this.first) + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - wh + 'px'); + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) + wh + 'px'); + + return e; + }, + + /** + * Removes an element for the given index from the list. + * + * @method remove + * @return undefined + * @param i {Number} The index of the element. + */ + remove: function(i) { + var e = this.get(i); + + // Check if item exists and is not currently visible + if (!e.length || (i >= this.first && i <= this.last)) + return; + + var d = this.dimension(e); + + if (i < this.first) + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) + d + 'px'); + + e.remove(); + + this.list.css(this.wh, $jc.intval(this.list.css(this.wh)) - d + 'px'); + }, + + /** + * Moves the carousel forwards. + * + * @method next + * @return undefined + */ + next: function() { + this.stopAuto(); + + if (this.tail != null && !this.inTail) + this.scrollTail(false); + else + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'last') && this.options.size != null && this.last == this.options.size) ? 1 : this.first + this.options.scroll); + }, + + /** + * Moves the carousel backwards. + * + * @method prev + * @return undefined + */ + prev: function() { + this.stopAuto(); + + if (this.tail != null && this.inTail) + this.scrollTail(true); + else + this.scroll(((this.options.wrap == 'both' || this.options.wrap == 'first') && this.options.size != null && this.first == 1) ? this.options.size : this.first - this.options.scroll); + }, + + /** + * Scrolls the tail of the carousel. + * + * @method scrollTail + * @return undefined + * @param b {Boolean} Whether scroll the tail back or forward. + */ + scrollTail: function(b) { + if (this.locked || this.animating || !this.tail) + return; + + var pos = $jc.intval(this.list.css(this.lt)); + + !b ? pos -= this.tail : pos += this.tail; + this.inTail = !b; + + // Save for callbacks + this.prevFirst = this.first; + this.prevLast = this.last; + + this.animate(pos); + }, + + /** + * Scrolls the carousel to a certain position. + * + * @method scroll + * @return undefined + * @param i {Number} The index of the element to scoll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + scroll: function(i, a) { + if (this.locked || this.animating) + return; + + this.animate(this.pos(i), a); + }, + + /** + * Prepares the carousel and return the position for a certian index. + * + * @method pos + * @return {Number} + * @param i {Number} The index of the element to scoll to. + */ + pos: function(i) { + var pos = $jc.intval(this.list.css(this.lt)); + + if (this.locked || this.animating) + return pos; + + if (this.options.wrap != 'circular') + i = i < 1 ? 1 : (this.options.size && i > this.options.size ? this.options.size : i); + + var back = this.first > i; + + // Create placeholders, new list width/height + // and new list position + var f = this.options.wrap != 'circular' && this.first <= 1 ? 1 : this.first; + var c = back ? this.get(f) : this.get(this.last); + var j = back ? f : f - 1; + var e = null, l = 0, p = false, d = 0, g; + + while (back ? --j >= i : ++j < i) { + e = this.get(j); + p = !e.length; + if (e.length == 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + c[back ? 'before' : 'after' ](e); + + if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) + e = this.add(j, g.clone(true)); + } + } + + c = e; + d = this.dimension(e); + + if (p) + l += d; + + if (this.first != null && (this.options.wrap == 'circular' || (j >= 1 && (this.options.size == null || j <= this.options.size)))) + pos = back ? pos + d : pos - d; + } + + // Calculate visible items + var clipping = this.clipping(); + var cache = []; + var visible = 0, j = i, v = 0; + var c = this.get(i - 1); + + while (++visible) { + e = this.get(j); + p = !e.length; + if (e.length == 0) { + e = this.create(j).addClass(this.className('jcarousel-item-placeholder')); + // This should only happen on a next scroll + c.length == 0 ? this.list.prepend(e) : c[back ? 'before' : 'after' ](e); + + if (this.first != null && this.options.wrap == 'circular' && this.options.size !== null && (j <= 0 || j > this.options.size)) { + g = this.get(this.index(j)); + if (g.length) + e = this.add(j, g.clone(true)); + } + } + + c = e; + var d = this.dimension(e); + if (d == 0) { + throw new Error('jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...'); + } + + if (this.options.wrap != 'circular' && this.options.size !== null && j > this.options.size) + cache.push(e); + else if (p) + l += d; + + v += d; + + if (v >= clipping) + break; + + j++; + } + + // Remove out-of-range placeholders + for (var x = 0; x < cache.length; x++) + cache[x].remove(); + + // Resize list + if (l > 0) { + this.list.css(this.wh, this.dimension(this.list) + l + 'px'); + + if (back) { + pos -= l; + this.list.css(this.lt, $jc.intval(this.list.css(this.lt)) - l + 'px'); + } + } + + // Calculate first and last item + var last = i + visible - 1; + if (this.options.wrap != 'circular' && this.options.size && last > this.options.size) + last = this.options.size; + + if (j > last) { + visible = 0, j = last, v = 0; + while (++visible) { + var e = this.get(j--); + if (!e.length) + break; + v += this.dimension(e); + if (v >= clipping) + break; + } + } + + var first = last - visible + 1; + if (this.options.wrap != 'circular' && first < 1) + first = 1; + + if (this.inTail && back) { + pos += this.tail; + this.inTail = false; + } + + this.tail = null; + if (this.options.wrap != 'circular' && last == this.options.size && (last - visible + 1) >= 1) { + var m = $jc.margin(this.get(last), !this.options.vertical ? 'marginRight' : 'marginBottom'); + if ((v - m) > clipping) + this.tail = v - clipping - m; + } + + // Adjust position + while (i-- > first) + pos += this.dimension(this.get(i)); + + // Save visible item range + this.prevFirst = this.first; + this.prevLast = this.last; + this.first = first; + this.last = last; + + return pos; + }, + + /** + * Animates the carousel to a certain position. + * + * @method animate + * @return undefined + * @param p {Number} Position to scroll to. + * @param a {Boolean} Flag indicating whether to perform animation. + */ + animate: function(p, a) { + if (this.locked || this.animating) + return; + + this.animating = true; + + var self = this; + var scrolled = function() { + self.animating = false; + + if (p == 0) + self.list.css(self.lt, 0); + + if (self.options.wrap == 'circular' || self.options.wrap == 'both' || self.options.wrap == 'last' || self.options.size == null || self.last < self.options.size) + self.startAuto(); + + self.buttons(); + self.notify('onAfterAnimation'); + + // This function removes items which are appended automatically for circulation. + // This prevents the list from growing infinitely. + if (self.options.wrap == 'circular' && self.options.size !== null) + for (var i = self.prevFirst; i <= self.prevLast; i++) + if (i !== null && !(i >= self.first && i <= self.last) && (i < 1 || i > self.options.size)) + self.remove(i); + }; + + this.notify('onBeforeAnimation'); + + // Animate + if (!this.options.animation || a == false) { + this.list.css(this.lt, p + 'px'); + scrolled(); + } else { + var o = !this.options.vertical ? (this.options.rtl ? {'right': p} : {'left': p}) : {'top': p}; + this.list.animate(o, this.options.animation, this.options.easing, scrolled); + } + }, + + /** + * Starts autoscrolling. + * + * @method auto + * @return undefined + * @param s {Number} Seconds to periodically autoscroll the content. + */ + startAuto: function(s) { + if (s != undefined) + this.options.auto = s; + + if (this.options.auto == 0) + return this.stopAuto(); + + if (this.timer != null) + return; + + var self = this; + this.timer = setTimeout(function() { self.next(); }, this.options.auto * 1000); + }, + + /** + * Stops autoscrolling. + * + * @method stopAuto + * @return undefined + */ + stopAuto: function() { + if (this.timer == null) + return; + + clearTimeout(this.timer); + this.timer = null; + }, + + /** + * Sets the states of the prev/next buttons. + * + * @method buttons + * @return undefined + */ + buttons: function(n, p) { + if (n == undefined || n == null) { + var n = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'first') || this.options.size == null || this.last < this.options.size); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'first') && this.options.size != null && this.last >= this.options.size) + n = this.tail != null && !this.inTail; + } + + if (p == undefined || p == null) { + var p = !this.locked && this.options.size !== 0 && ((this.options.wrap && this.options.wrap != 'last') || this.first > 1); + if (!this.locked && (!this.options.wrap || this.options.wrap == 'last') && this.options.size != null && this.first == 1) + p = this.tail != null && this.inTail; + } + + var self = this; + + this.buttonNext[n ? 'bind' : 'unbind'](this.options.buttonNextEvent + '.jcarousel', this.funcNext)[n ? 'removeClass' : 'addClass'](this.className('jcarousel-next-disabled')).attr('disabled', n ? false : true); + this.buttonPrev[p ? 'bind' : 'unbind'](this.options.buttonPrevEvent + '.jcarousel', this.funcPrev)[p ? 'removeClass' : 'addClass'](this.className('jcarousel-prev-disabled')).attr('disabled', p ? false : true); + + if (this.options.buttonNextCallback != null && this.buttonNext.data('jcarouselstate') != n) { + this.buttonNext.each(function() { self.options.buttonNextCallback(self, this, n); }).data('jcarouselstate', n); + } + + if (this.options.buttonPrevCallback != null && (this.buttonPrev.data('jcarouselstate') != p)) { + this.buttonPrev.each(function() { self.options.buttonPrevCallback(self, this, p); }).data('jcarouselstate', p); + } + }, + + /** + * Notify callback of a specified event. + * + * @method notify + * @return undefined + * @param evt {String} The event name + */ + notify: function(evt) { + var state = this.prevFirst == null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev'); + + // Load items + this.callback('itemLoadCallback', evt, state); + + if (this.prevFirst !== this.first) { + this.callback('itemFirstInCallback', evt, state, this.first); + this.callback('itemFirstOutCallback', evt, state, this.prevFirst); + } + + if (this.prevLast !== this.last) { + this.callback('itemLastInCallback', evt, state, this.last); + this.callback('itemLastOutCallback', evt, state, this.prevLast); + } + + this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast); + this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last); + }, + + callback: function(cb, evt, state, i1, i2, i3, i4) { + if (this.options[cb] == undefined || (typeof this.options[cb] != 'object' && evt != 'onAfterAnimation')) + return; + + var callback = typeof this.options[cb] == 'object' ? this.options[cb][evt] : this.options[cb]; + + if (!$.isFunction(callback)) + return; + + var self = this; + + if (i1 === undefined) + callback(self, state, evt); + else if (i2 === undefined) + this.get(i1).each(function() { callback(self, this, i1, state, evt); }); + else { + for (var i = i1; i <= i2; i++) + if (i !== null && !(i >= i3 && i <= i4)) + this.get(i).each(function() { callback(self, this, i, state, evt); }); + } + }, + + create: function(i) { + return this.format('
  • ', i); + }, + + format: function(e, i) { + var e = $(e), split = e.get(0).className.split(' '); + for (var j = 0; j < split.length; j++) { + if (split[j].indexOf('jcarousel-') != -1) { + e.removeClass(split[j]); + } + } + e.addClass(this.className('jcarousel-item')).addClass(this.className('jcarousel-item-' + i)).css({ + 'float': (this.options.rtl ? 'right' : 'left'), + 'list-style': 'none' + }).attr('jcarouselindex', i); + return e; + }, + + className: function(c) { + return c + ' ' + c + (!this.options.vertical ? '-horizontal' : '-vertical'); + }, + + dimension: function(e, d) { + var el = e.jquery != undefined ? e[0] : e; + + var old = !this.options.vertical ? + (el.offsetWidth || $jc.intval(this.options.itemFallbackDimension)) + $jc.margin(el, 'marginLeft') + $jc.margin(el, 'marginRight') : + (el.offsetHeight || $jc.intval(this.options.itemFallbackDimension)) + $jc.margin(el, 'marginTop') + $jc.margin(el, 'marginBottom'); + + if (d == undefined || old == d) + return old; + + var w = !this.options.vertical ? + d - $jc.margin(el, 'marginLeft') - $jc.margin(el, 'marginRight') : + d - $jc.margin(el, 'marginTop') - $jc.margin(el, 'marginBottom'); + + $(el).css(this.wh, w + 'px'); + + return this.dimension(el); + }, + + clipping: function() { + return !this.options.vertical ? + this.clip[0].offsetWidth - $jc.intval(this.clip.css('borderLeftWidth')) - $jc.intval(this.clip.css('borderRightWidth')) : + this.clip[0].offsetHeight - $jc.intval(this.clip.css('borderTopWidth')) - $jc.intval(this.clip.css('borderBottomWidth')); + }, + + index: function(i, s) { + if (s == undefined) + s = this.options.size; + + return Math.round((((i-1) / s) - Math.floor((i-1) / s)) * s) + 1; + } + }); + + $jc.extend({ + /** + * Gets/Sets the global default configuration properties. + * + * @method defaults + * @return {Object} + * @param d {Object} A set of key/value pairs to set as configuration properties. + */ + defaults: function(d) { + return $.extend(defaults, d || {}); + }, + + margin: function(e, p) { + if (!e) + return 0; + + var el = e.jquery != undefined ? e[0] : e; + + if (p == 'marginRight' && $.browser.safari) { + var old = {'display': 'block', 'float': 'none', 'width': 'auto'}, oWidth, oWidth2; + + $.swap(el, old, function() { oWidth = el.offsetWidth; }); + + old['marginRight'] = 0; + $.swap(el, old, function() { oWidth2 = el.offsetWidth; }); + + return oWidth2 - oWidth; + } + + return $jc.intval($.css(el, p)); + }, + + intval: function(v) { + v = parseInt(v); + return isNaN(v) ? 0 : v; + } + }); + +})(jQuery); diff --git a/modules/.not-used/navcarousel/js/jquery.jcarousel.min.js b/modules/.not-used/navcarousel/js/jquery.jcarousel.min.js new file mode 100755 index 0000000..0b8313a --- /dev/null +++ b/modules/.not-used/navcarousel/js/jquery.jcarousel.min.js @@ -0,0 +1,16 @@ +/*! + * jCarousel - Riding carousels with jQuery + * http://sorgalla.com/jcarousel/ + * + * Copyright (c) 2006 Jan Sorgalla (http://sorgalla.com) + * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) + * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses. + * + * Built on top of the jQuery library + * http://jquery.com + * + * Inspired by the "Carousel Component" by Bill Scott + * http://billwscott.com/carousel/ + */ + +(function(i){i.fn.jcarousel=function(a){if(typeof a=="string"){var c=i(this).data("jcarousel"),b=Array.prototype.slice.call(arguments,1);return c[a].apply(c,b)}else return this.each(function(){i(this).data("jcarousel",new h(this,a))})};var p={vertical:false,rtl:false,start:1,offset:1,size:null,scroll:3,visible:null,animation:"normal",easing:"swing",auto:0,wrap:null,initCallback:null,reloadCallback:null,itemLoadCallback:null,itemFirstInCallback:null,itemFirstOutCallback:null,itemLastInCallback:null, itemLastOutCallback:null,itemVisibleInCallback:null,itemVisibleOutCallback:null,buttonNextHTML:"
    ",buttonPrevHTML:"
    ",buttonNextEvent:"click",buttonPrevEvent:"click",buttonNextCallback:null,buttonPrevCallback:null,itemFallbackDimension:null},q=false;i(window).bind("load.jcarousel",function(){q=true});i.jcarousel=function(a,c){this.options=i.extend({},p,c||{});this.locked=false;this.buttonPrev=this.buttonNext=this.list=this.clip=this.container=null;if(!c||c.rtl===undefined)this.options.rtl= (i(a).attr("dir")||i("html").attr("dir")||"").toLowerCase()=="rtl";this.wh=!this.options.vertical?"width":"height";this.lt=!this.options.vertical?this.options.rtl?"right":"left":"top";for(var b="",d=a.className.split(" "),e=0;e");this.container=this.container.parent()}else if(!this.container.hasClass("jcarousel-container"))this.container=this.list.wrap("
    ").parent()}else{this.container=i(a);this.list=this.container.find("ul,ol").eq(0)}b!=""&&this.container.parent()[0].className.indexOf("jcarousel-skin")==-1&&this.container.wrap('
    ');this.clip=this.list.parent();if(!this.clip.length||!this.clip.hasClass("jcarousel-clip"))this.clip=this.list.wrap("
    ").parent(); this.buttonNext=i(".jcarousel-next",this.container);if(this.buttonNext.size()==0&&this.options.buttonNextHTML!=null)this.buttonNext=this.clip.after(this.options.buttonNextHTML).next();this.buttonNext.addClass(this.className("jcarousel-next"));this.buttonPrev=i(".jcarousel-prev",this.container);if(this.buttonPrev.size()==0&&this.options.buttonPrevHTML!=null)this.buttonPrev=this.clip.after(this.options.buttonPrevHTML).next();this.buttonPrev.addClass(this.className("jcarousel-prev"));this.clip.addClass(this.className("jcarousel-clip")).css({overflow:"hidden", position:"relative"});this.list.addClass(this.className("jcarousel-list")).css({overflow:"hidden",position:"relative",top:0,margin:0,padding:0}).css(this.options.rtl?"right":"left",0);this.container.addClass(this.className("jcarousel-container")).css({position:"relative"});!this.options.vertical&&this.options.rtl&&this.container.addClass("jcarousel-direction-rtl").attr("dir","rtl");var f=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;b=this.list.children("li");var g= this;if(b.size()>0){var j=0;e=this.options.offset;b.each(function(){g.format(this,e++);j+=g.dimension(this,f)});this.list.css(this.wh,j+100+"px");if(!c||c.size===undefined)this.options.size=b.size()}this.container.css("display","block");this.buttonNext.css("display","block");this.buttonPrev.css("display","block");this.funcNext=function(){g.next()};this.funcPrev=function(){g.prev()};this.funcResize=function(){g.reload()};this.options.initCallback!=null&&this.options.initCallback(this,"init");if(!q&& i.browser.safari){this.buttons(false,false);i(window).bind("load.jcarousel",function(){g.setup()})}else this.setup()};var h=i.jcarousel;h.fn=h.prototype={jcarousel:"0.2.5"};h.fn.extend=h.extend=i.extend;h.fn.extend({setup:function(){this.prevLast=this.prevFirst=this.last=this.first=null;this.animating=false;this.tail=this.timer=null;this.inTail=false;if(!this.locked){this.list.css(this.lt,this.pos(this.options.offset)+"px");var a=this.pos(this.options.start);this.prevFirst=this.prevLast=null;this.animate(a, false);i(window).unbind("resize.jcarousel",this.funcResize).bind("resize.jcarousel",this.funcResize)}},reset:function(){this.list.empty();this.list.css(this.lt,"0px");this.list.css(this.wh,"10px");this.options.initCallback!=null&&this.options.initCallback(this,"reset");this.setup()},reload:function(){this.tail!=null&&this.inTail&&this.list.css(this.lt,h.intval(this.list.css(this.lt))+this.tail);this.tail=null;this.inTail=false;this.options.reloadCallback!=null&&this.options.reloadCallback(this);if(this.options.visible!= null){var a=this,c=Math.ceil(this.clipping()/this.options.visible),b=0,d=0;this.list.children("li").each(function(e){b+=a.dimension(this,c);if(e+1this.options.size)c=this.options.size;for(var b=a;b<=c;b++){var d=this.get(b);if(!d.length||d.hasClass("jcarousel-item-placeholder"))return false}return true},get:function(a){return i(".jcarousel-item-"+a,this.list)},add:function(a,c){var b=this.get(a),d=0,e=i(c);if(b.length==0){var f;b=this.create(a);for(var g=h.intval(a);f=this.get(--g);)if(g<=0||f.length){g<=0?this.list.prepend(b):f.after(b);break}}else d=this.dimension(b);if(e.get(0).nodeName.toUpperCase()=="LI"){b.replaceWith(e); b=e}else b.empty().append(c);this.format(b.removeClass(this.className("jcarousel-item-placeholder")),a);e=this.options.visible!=null?Math.ceil(this.clipping()/this.options.visible):null;d=this.dimension(b,e)-d;a>0&&a=this.first&&a<=this.last)){var b=this.dimension(c);athis.options.size?this.options.size:a;for(var b=this.first>a,d=this.options.wrap!="circular"&&this.first<=1?1:this.first,e=b?this.get(d):this.get(this.last),f=b?d:d-1,g=null,j=0,l=false,k=0;b?--f>=a:++fthis.options.size)){e=this.get(this.index(f)); if(e.length)g=this.add(f,e.clone(true))}}e=g;k=this.dimension(g);if(l)j+=k;if(this.first!=null&&(this.options.wrap=="circular"||f>=1&&(this.options.size==null||f<=this.options.size)))c=b?c+k:c-k}d=this.clipping();var o=[],n=0;f=a;var m=0;for(e=this.get(a-1);++n;){g=this.get(f);l=!g.length;if(g.length==0){g=this.create(f).addClass(this.className("jcarousel-item-placeholder"));e.length==0?this.list.prepend(g):e[b?"before":"after"](g);if(this.first!=null&&this.options.wrap=="circular"&&this.options.size!== null&&(f<=0||f>this.options.size)){e=this.get(this.index(f));if(e.length)g=this.add(f,e.clone(true))}}e=g;k=this.dimension(g);if(k==0)throw Error("jCarousel: No width/height set for items. This will cause an infinite loop. Aborting...");if(this.options.wrap!="circular"&&this.options.size!==null&&f>this.options.size)o.push(g);else if(l)j+=k;m+=k;if(m>=d)break;f++}for(g=0;g0){this.list.css(this.wh,this.dimension(this.list)+j+"px");if(b){c-=j;this.list.css(this.lt,h.intval(this.list.css(this.lt))- j+"px")}}j=a+n-1;if(this.options.wrap!="circular"&&this.options.size&&j>this.options.size)j=this.options.size;if(f>j){n=0;f=j;for(m=0;++n;){g=this.get(f--);if(!g.length)break;m+=this.dimension(g);if(m>=d)break}}f=j-n+1;if(this.options.wrap!="circular"&&f<1)f=1;if(this.inTail&&b){c+=this.tail;this.inTail=false}this.tail=null;if(this.options.wrap!="circular"&&j==this.options.size&&j-n+1>=1){b=h.margin(this.get(j),!this.options.vertical?"marginRight":"marginBottom");if(m-b>d)this.tail=m-d-b}for(;a-- > f;)c+=this.dimension(this.get(a));this.prevFirst=this.first;this.prevLast=this.last;this.first=f;this.last=j;return c},animate:function(a,c){if(!(this.locked||this.animating)){this.animating=true;var b=this,d=function(){b.animating=false;a==0&&b.list.css(b.lt,0);if(b.options.wrap=="circular"||b.options.wrap=="both"||b.options.wrap=="last"||b.options.size==null||b.last=b.first&&e<=b.last)&&(e<1||e>b.options.size))b.remove(e)};this.notify("onBeforeAnimation");if(!this.options.animation||c==false){this.list.css(this.lt,a+"px");d()}else this.list.animate(!this.options.vertical?this.options.rtl?{right:a}:{left:a}:{top:a},this.options.animation,this.options.easing,d)}},startAuto:function(a){if(a!=undefined)this.options.auto=a;if(this.options.auto==0)return this.stopAuto();if(this.timer==null){var c=this;this.timer=setTimeout(function(){c.next()}, this.options.auto*1E3)}},stopAuto:function(){if(this.timer!=null){clearTimeout(this.timer);this.timer=null}},buttons:function(a,c){if(a==undefined||a==null){a=!this.locked&&this.options.size!==0&&(this.options.wrap&&this.options.wrap!="first"||this.options.size==null||this.last=this.options.size)a=this.tail!=null&&!this.inTail}if(c==undefined||c==null){c=!this.locked&&this.options.size!== 0&&(this.options.wrap&&this.options.wrap!="last"||this.first>1);if(!this.locked&&(!this.options.wrap||this.options.wrap=="last")&&this.options.size!=null&&this.first==1)c=this.tail!=null&&this.inTail}var b=this;this.buttonNext[a?"bind":"unbind"](this.options.buttonNextEvent+".jcarousel",this.funcNext)[a?"removeClass":"addClass"](this.className("jcarousel-next-disabled")).attr("disabled",a?false:true);this.buttonPrev[c?"bind":"unbind"](this.options.buttonPrevEvent+".jcarousel",this.funcPrev)[c?"removeClass": "addClass"](this.className("jcarousel-prev-disabled")).attr("disabled",c?false:true);this.options.buttonNextCallback!=null&&this.buttonNext.data("jcarouselstate")!=a&&this.buttonNext.each(function(){b.options.buttonNextCallback(b,this,a)}).data("jcarouselstate",a);this.options.buttonPrevCallback!=null&&this.buttonPrev.data("jcarouselstate")!=c&&this.buttonPrev.each(function(){b.options.buttonPrevCallback(b,this,c)}).data("jcarouselstate",c)},notify:function(a){var c=this.prevFirst==null?"init":this.prevFirst< this.first?"next":"prev";this.callback("itemLoadCallback",a,c);if(this.prevFirst!==this.first){this.callback("itemFirstInCallback",a,c,this.first);this.callback("itemFirstOutCallback",a,c,this.prevFirst)}if(this.prevLast!==this.last){this.callback("itemLastInCallback",a,c,this.last);this.callback("itemLastOutCallback",a,c,this.prevLast)}this.callback("itemVisibleInCallback",a,c,this.first,this.last,this.prevFirst,this.prevLast);this.callback("itemVisibleOutCallback",a,c,this.prevFirst,this.prevLast, this.first,this.last)},callback:function(a,c,b,d,e,f,g){if(!(this.options[a]==undefined||typeof this.options[a]!="object"&&c!="onAfterAnimation")){var j=typeof this.options[a]=="object"?this.options[a][c]:this.options[a];if(i.isFunction(j)){var l=this;if(d===undefined)j(l,b,c);else if(e===undefined)this.get(d).each(function(){j(l,this,d,b,c)});else for(var k=d;k<=e;k++)k!==null&&!(k>=f&&k<=g)&&this.get(k).each(function(){j(l,this,k,b,c)})}}},create:function(a){return this.format("
  • ",a)},format:function(a, c){a=i(a);for(var b=a.get(0).className.split(" "),d=0;d + +
    +

    +

    +

    + If you are experiencing this bug then please enable the option 'Disable dynamic loading of thumbnails'.
    + I am working on fixing this bug and will release an update as soon as possible.") ?>

    + +
    diff --git a/modules/.not-used/navcarousel/views/navcarousel.html.php b/modules/.not-used/navcarousel/views/navcarousel.html.php new file mode 100755 index 0000000..508cafb --- /dev/null +++ b/modules/.not-used/navcarousel/views/navcarousel.html.php @@ -0,0 +1,202 @@ +item->parent()->viewable()->children_count(); + $itemoffset = intval(floor($showelements / 2)); + if ($childcount <= $showelements) { + $itemoffset = 1; + } else { + $itempos = $theme->item->parent()->get_position($theme->item); + $itemoffset = $itempos - $itemoffset; + if ($itemoffset < 1) { + $itemoffset = 1; + } + if (($itemoffset + $showelements) > $childcount) { + $itemoffset = $childcount - $showelements + 1; + } + } + if (module::get_var("navcarousel", "noajax", false)) { + $ajaxhandler = ""; + } else { + $ajaxhandler = "itemLoadCallback: navcarousel_itemLoadCallback,\n"; + } + if (module::get_var("navcarousel", "showondomready", false)) { + $onwinload = ""; + } else { + $onwinload = "});\n + $(window).load(function () {\n"; + } + echo "\n + \n + \n + "; + $thumbsize = module::get_var("navcarousel", "thumbsize", "50"); + $parent = $item->parent(); + $item_counter = 0; + $item_offset = 0; + $maintain_aspect = module::get_var("navcarousel", "maintainaspect", false); + $no_resize = module::get_var("navcarousel", "noresize", false); + $no_ajax = module::get_var("navcarousel", "noajax", false); +?> + + +where("state", "!=", 2) + ->count_all(); + if ($count == 0) { + site_status::clear("pending_user_registrations"); + } + list ($form, $errors) = $this->_get_form(); + print $this->_get_admin_view($form, $errors); + } + + public function update() { + access::verify_csrf(); + + $post = new Validation($_POST); + $post->add_rules("policy", "required"); + $post->add_rules("group", array($this, "passthru")); + $post->add_rules("email_verification", array($this, "passthru")); + // added Shad Laws, v2 + $post->add_rules("admin_notify", array($this, "passthru")); + $post->add_rules("subject_prefix", array($this, "passthru")); + $group_list = array(); + if ($post->validate()) { + module::set_var("registration", "policy", $post->policy); + module::set_var("registration", "default_group", $post->group); + module::set_var("registration", "email_verification", !empty($post->email_verification)); + // added Shad Laws, v2 + module::set_var("registration", "admin_notify", !empty($post->admin_notify)); + module::set_var("registration", "subject_prefix", $post->subject_prefix); + + message::success(t("Registration defaults have been updated.")); + + url::redirect("admin/register"); + } else { + list ($form, $errors) = $this->_get_form(); + $form = array_merge($form, $post->as_array()); + $errors = array_merge($errors, $post->errors()); + print $this->_get_admin_view($form, $errors); + } + } + + // We need this validation callback in order to have the optional fields copied to + // validation array. + public function passthru($field) { + return true; + } + + public function activate() { + access::verify_csrf(); + + $post = new Validation($_POST); + $post->add_rules("activate_users", "required"); + $post->add_rules("activate", "alpha_numeric"); + if ($post->validate()) { + $names = array(); + if (!empty($post->activate)) { + foreach ($post->activate as $id) { + $user = register::create_new_user($id); + $names[] = $user->name; + } + + message::success(t("Activated %users.", array("users" => implode(", ", $names)))); + } + + $count = ORM::factory("pending_user") + ->where("state", "!=", 2) + ->count_all(); + + if ($count == 0) { + site_status::clear("pending_user_registrations"); + } + url::redirect("admin/register"); + } + + list ($form, $errors) = $this->_get_form(); + $form = array_merge($form, $post->as_array()); + $errors = array_merge($errors, $post->errors()); + print $this->_get_admin_view($form, $errors); + } + + private function _get_admin_view($form, $errors) { + $v = new Admin_View("admin.html"); + $v->page_title = t("User registration"); + $v->content = new View("admin_register.html"); + $v->content->action = "admin/register/update"; + $v->content->policy_list = + array("admin_only" => t("Only site administrators can create new user accounts."), + "visitor" => + t("Visitors can create accounts and no administrator approval is required."), + "admin_approval" => + t("Visitors can create accounts but administrator approval is required.")); + $admin = identity::admin_user(); + $v->content->disable_email = + empty($admin->email) || $form["policy"] == "admin_only" ? "disabled" : ""; + if (empty($admin->email)) { + module::set_var("registration", "email_verification", false); + } + // below lines added Shad Laws, v2 + $v->content->disable_admin_notify = + empty($admin->email) || $form["policy"] !== "admin_approval" ? "disabled" : ""; + if (empty($admin->email)) { + module::set_var("registration", "admin_notify", false); + } + + $v->content->group_list = array(); + foreach (identity::groups() as $group) { + if ($group->id != identity::everybody()->id && + $group->id != identity::registered_users()->id) { + $v->content->group_list[$group->id] = $group->name; + } + } + $hidden = array("name" => "csrf", "value" => access::csrf_token()); + if (count($v->content->group_list)) { + $v->content->group_list = + array("" => t("Choose the default group")) + $v->content->group_list; + } else { + $hidden["group"] = ""; + } + $v->content->hidden = $hidden; + $v->content->pending = ORM::factory("pending_user")->find_all(); + $v->content->activate = "admin/register/activate"; + $v->content->form = $form; + $v->content->errors = $errors; + return $v; + } + + private function _get_form() { + $form = array("policy" => module::get_var("registration", "policy"), + "group" => module::get_var("registration", "default_group"), + "email_verification" => module::get_var("registration", "email_verification"), + // added Shad Laws, v2 + "subject_prefix" => module::get_var("registration", "subject_prefix"), + "admin_notify" => module::get_var("registration", "admin_notify")); + $errors = array_fill_keys(array_keys($form), ""); + + return array($form, $errors); + } +} \ No newline at end of file diff --git a/modules/.not-used/register/controllers/register.php b/modules/.not-used/register/controllers/register.php new file mode 100755 index 0000000..285e417 --- /dev/null +++ b/modules/.not-used/register/controllers/register.php @@ -0,0 +1,196 @@ +_get_form(); + } + + public function handler() { + access::verify_csrf(); + + $form = $this->_get_form(); + $valid = $form->validate(); + + $name = $form->register_user->inputs["name"]->value; + if (register::check_user_name($name)) { + $form->register_user->inputs["name"]->add_error("in_use", 1); + $valid = false; + } + if ($valid) { + $pending_user = register::create_pending_request($form); + $policy = module::get_var("registration", "policy"); + if ($policy == "visitor") { + if ($pending_user->state == 1) { + $user = register::create_new_user($pending_user->id); + Session::instance()->set("registration_first_usage"); + auth::login($user); + Session::instance()->set("registration_first_usage", true); + $pending_user->delete(); + } else { + $user = register::create_new_user($pending_user->id, true); + message::success(t("A confirmation email has been sent to your email address.")); + } + } else if ($pending_user->state == 1) { + site_status::warning( + t("There are pending user registration. Review now!", + // modified by Shad Laws, v2 + // array("url" => html::mark_clean(url::site("admin/register")))), + array("url" => html::mark_clean(url::site("admin/register")), "locale" => module::get_var("gallery", "default_locale"))), + "pending_user_registrations"); + message::success(t("Your registration request is awaiting administrator approval")); + // added by Shad Laws, v2 + if (module::get_var("registration", "admin_notify") == 1) { + register::send_admin_notify($pending_user); + } + } else { + register::send_confirmation($pending_user); + message::success(t("A confirmation email has been sent to your email address.")); + } + + json::reply(array("result" => "success")); + } else { + json::reply(array("result" => "error", "html" => (string)$form)); + } + } + + public function confirm($hash) { + $pending_user = ORM::factory("pending_user") + ->where("hash", "=", $hash) + ->where("state", "=", 0) + ->find(); + if ($pending_user->loaded()) { + // @todo add a request date to the pending user table and check that it hasn't expired + $policy = module::get_var("registration", "policy"); + $pending_user->state = 1; + $pending_user->save(); + if ($policy == "vistor") { + $user = register::create_new_user($pending_user->id); + message::success(t("Your registration request has been approved")); + auth::login($user); + Session::instance()->set("registration_first_usage", true); + $pending_user->delete(); + } else { + site_status::warning( + t("There are pending user registration. Review now!", + // modified by Shad Laws, v2 + // array("url" => html::mark_clean(url::site("admin/register")))), + array("url" => html::mark_clean(url::site("admin/register")), "locale" => module::get_var("gallery", "default_locale"))), + "pending_user_registrations"); + message::success(t("Your registration request is awaiting administrator approval")); + // added by Shad Laws, v2 + if (module::get_var("registration", "admin_notify") == 1) { + register::send_admin_notify($pending_user); + } + } + } else { + message::error(t("Your registration request is no longer valid, Please re-register.")); + } + url::redirect(item::root()->abs_url()); + } + + public function first($hash) { + $pending_user = ORM::factory("pending_user") + ->where("hash", "=", $hash) + ->where("state", "=", 2) + ->find(); + if ($pending_user->loaded()) { + // @todo add a request date to the pending user table and check that it hasn't expired + $user = identity::lookup_user_by_name($pending_user->name); + if (!empty($user)) { + auth::login($user); + Session::instance()->set("registration_first_usage", true); + $pending_user->delete(); + } + url::redirect(item::root()->abs_url()); + } else { + message::warning(t("Your account is ready to use so please login.")); + } + url::redirect(item::root()->abs_url()); + } + + public function welcome_message() { + $user = identity::active_user(); + $password = substr(md5(rand()), 0, 8); + $user->password = $password; + $user->save(); + + $v = new View("register_welcome_message.html"); + $v->user = $user; + $v->password = $password; + print $v; + } + + public function change_password($id, $password) { + $user = user::lookup($id); + print $this->_get_change_password_form($user, $password); + } + + private function _get_form() { + $minimum_length = module::get_var("user", "mininum_password_length", 5); + $form = new Forge("register/handler", "", "post", array("id" => "g-register-form")); + $group = $form->group("register_user")->label(t("Register user")); + $group->input("name")->label(t("Username"))->id("g-username") + ->rules("required|length[1,32]") + ->error_messages("in_use", t("There is already a user with that username")); + $group->input("full_name")->label(t("Full Name"))->id("g-fullname") + ->rules("length[0, 255]"); + $group->input("email")->label(t("Email"))->id("g-email") + ->rules("required|valid_email|length[1,255]"); + $group->input("email2")->label(t("Confirm email"))->id("g-email2") + ->matches($group->email); + // modified by Shad Laws, v2 + // $group->input("url")->label(t("URL"))->id("g-url") + $group->input("url")->label(t("URL")." (".t("optional").")")->id("g-url") + ->rules("valid_url"); + + module::event("register_add_form", $form); + module::event("captcha_protect_form", $form); + $group->submit("")->value(t("Register")); + return $form; + } + + /** + * Get the password change form. This code is copied from controllers/users.php. The + * difference is that as this is the first time logging on, the user might not have + * expected that they were going to have to enter the password displayed on the welcome + * page, and didn't make note of it. If we were using the standard change password dialog, the + * user would be screwed as there is no way to go back and get it. So with this dialog, + * we will provide the old password as a hidden field. + */ + private function _get_change_password_form($user, $password) { + $form = new Forge( + "users/change_password/$user->id", "", "post", array("id" => "g-change-password-user-form")); + $group = $form->group("change_password")->label(t("Change your password")); + $group->hidden("old_password")->value($password); + $group->password("password")->label(t("New password"))->id("g-password") + ->error_messages("min_length", t("Your new password is too short")); + $group->script("") + ->text( + '$("form").ready(function(){$(\'input[name="password"]\').user_password_strength();});'); + $group->password("password2")->label(t("Confirm new password"))->id("g-password2") + ->matches($group->password) + ->error_messages("matches", t("The passwords you entered do not match")); + + module::event("user_change_password_form", $user, $form); + $group->submit("")->value(t("Save")); + return $form; + } +} \ No newline at end of file diff --git a/modules/.not-used/register/css/register.css b/modules/.not-used/register/css/register.css new file mode 100755 index 0000000..adbac65 --- /dev/null +++ b/modules/.not-used/register/css/register.css @@ -0,0 +1 @@ +#g-register-form { width: 350px; } \ No newline at end of file diff --git a/modules/.not-used/register/helpers/register.php b/modules/.not-used/register/helpers/register.php new file mode 100755 index 0000000..1da80af --- /dev/null +++ b/modules/.not-used/register/helpers/register.php @@ -0,0 +1,138 @@ +where("name", "=", $user_name) + ->find(); + return $user->loaded(); + } + + static function send_user_created_confirmation($user, $requires_first=false) { + $message = new View("register_welcome.html"); + $message->user = $user; + $message->site_url = $requires_first ? url::abs_site("register/first/{$user->hash}") : + url::abs_site(""); + // added Shad Laws, v2 + $message->subject_prefix = module::get_var("registration", "subject_prefix"); + $message->locale = $user->locale; // as stored in pending_users table + $message->subject = t("Welcome", array("locale" => $message->locale)); + // modified Shad Laws, v2 + self::_sendemail($user->email, $message->subject_prefix.$message->subject, $message); + } + + static function send_confirmation($user) { + $message = new View("confirm_registration.html"); + $message->confirm_url = url::abs_site("register/confirm/{$user->hash}"); + $message->user = $user; + // added Shad Laws, v2 + $message->subject_prefix = module::get_var("registration", "subject_prefix"); + $message->locale = $user->locale; // as stored in pending_users table + $message->subject = t("User registration confirmation", array("locale" => $message->locale)); + // modified Shad Laws, v2 + self::_sendemail($user->email, $message->subject_prefix.$message->subject, $message); + } + + // function added Shad Laws, v2 + static function send_admin_notify($user) { + $message = new View("register_admin_notify.html"); + $message->admin_register_url = url::abs_site("admin/register"); + $message->user = $user; + $message->subject_prefix = module::get_var("registration", "subject_prefix"); + $message->locale = module::get_var("gallery", "default_locale"); // as Gallery default + $message->subject = t("New pending user registration", array("locale" => $message->locale)); + self::_sendemail(module::get_var("gallery", "email_reply_to"), $message->subject_prefix.$message->subject, $message); + } + + static function create_pending_request($form) { + $email_verification = module::get_var("registration", "email_verification"); + + $user = ORM::factory("pending_user"); + $user->name = $form->register_user->inputs["name"]->value; + $user->full_name = $form->register_user->inputs["full_name"]->value; + $user->email = $form->register_user->inputs["email"]->value; + $user->url = $form->register_user->inputs["url"]->value; + $user->request_date = time(); + // added by Shad Laws, v2 + $user->locale = locales::locale_from_http_request() ? locales::locale_from_http_request() : module::get_var("gallery", "default_locale"); // sets default locale based on browser + + if (!$email_verification) { + $user->state = 1; + } + $user->hash = md5(rand()); + $user->save(); + return $user; + } + + static function create_new_user($id) { + $user = ORM::factory("pending_user", $id); + + $password = md5(uniqid(mt_rand(), true)); + $new_user = identity::create_user($user->name, $user->full_name, $password, $user->email); + $new_user->url = $user->url; + $new_user->admin = false; + $new_user->guest = false; + $new_user->save(); + + $group_id = module::get_var("registration", "default_group"); + if ($group_id != null) { + $default_group = group::lookup($group_id); + if ($default_group != null) { + $default_group->add($new_user); + $default_group->save(); + } + } + + $user->hash = md5(uniqid(mt_rand(), true)); + $user->state = 2; + $user->save(); + self::send_user_created_confirmation($user, $password); + + return $new_user; + } + + private static function _sendemail($email, $subject, $message) { + Sendmail::factory() + ->to($email) + ->subject($subject) + ->header("Mime-Version", "1.0") + // modified by Shad Laws, v2 + ->header("Content-type", "text/html; charset=utf-8") + ->message($message->render()) + ->send(); + } +} diff --git a/modules/.not-used/register/helpers/register_event.php b/modules/.not-used/register/helpers/register_event.php new file mode 100755 index 0000000..16e874f --- /dev/null +++ b/modules/.not-used/register/helpers/register_event.php @@ -0,0 +1,38 @@ +get("settings_menu") + ->append( Menu::factory("link") + ->id("register_users") + ->label(t("User registration")) + ->url(url::site("admin/register"))); + } + + static function user_menu($menu, $theme) { + $user = identity::active_user(); + if ($user->guest) { + $menu->append(Menu::factory("dialog") + ->id("user_menu_register") + ->css_id("g-register-menu") + ->url(url::site("register")) + ->label(t("Register"))); + } + } +} diff --git a/modules/.not-used/register/helpers/register_installer.php b/modules/.not-used/register/helpers/register_installer.php new file mode 100755 index 0000000..674fce7 --- /dev/null +++ b/modules/.not-used/register/helpers/register_installer.php @@ -0,0 +1,70 @@ +query("CREATE TABLE IF NOT EXISTS {pending_users} ( + `id` int(9) NOT NULL auto_increment, + `name` varchar(32) NOT NULL, + `state` int(9) NOT NULL DEFAULT 0, + `full_name` varchar(255) NOT NULL, + `email` varchar(64) default NULL, + `hash` char(32) default NULL, + `url` varchar(255) default NULL, + `request_date` int(9) not NULL DEFAULT 0, + PRIMARY KEY (`id`), + UNIQUE KEY(`hash`, `state`), + UNIQUE KEY(`name`)) + DEFAULT CHARSET=utf8;"); + + module::set_var("registration", "policy", "admin_only"); + module::set_var("registration", "default_group", ""); + module::set_var("registration", "email_verification", false); + // added Shad Laws, v2 + module::set_var("registration", "admin_notify", false); + module::set_var("registration", "subject_prefix", ""); + $db->query("ALTER TABLE {pending_users} ADD `locale` varchar(32) default NULL;"); + // changed Shad Laws, v2 + module::set_version("register", 2); + } + + // function added Shad Laws, v2 + static function upgrade() { + if (module::get_version("register") < 1) { + module::install("register"); + } + if (is_null(module::get_var("registration", "admin_notify")) || + is_null(module::get_var("registration", "subject_prefix")) || + (module::get_version("register") < 2) ) { + + module::set_var("registration", "admin_notify", false); + module::set_var("registration", "subject_prefix", ""); + $db = Database::instance(); + $db->query("ALTER TABLE {pending_users} ADD `locale` varchar(32) default NULL;"); + } + module::set_version("register", 2); + } + + static function uninstall() { + Database::instance()->query("DROP TABLE IF EXISTS {pending_users};"); + // added Shad Laws, v2 + module::clear_all_vars("registration"); + } +} \ No newline at end of file diff --git a/modules/.not-used/register/helpers/register_theme.php b/modules/.not-used/register/helpers/register_theme.php new file mode 100755 index 0000000..197933d --- /dev/null +++ b/modules/.not-used/register/helpers/register_theme.php @@ -0,0 +1,33 @@ +get("registration_first_usage")) { + $session->delete("registration_first_usage"); + return new View("register_welcome_message_loader.html"); + } + } + // added Shad Laws, v2 + static function head($theme) { + return $theme->css("register.css"); + } + +} \ No newline at end of file diff --git a/modules/.not-used/register/models/pending_user.php b/modules/.not-used/register/models/pending_user.php new file mode 100755 index 0000000..888d5ae --- /dev/null +++ b/modules/.not-used/register/models/pending_user.php @@ -0,0 +1,21 @@ + + +
    +

    +
    + "post"), $hidden) ?> +
    + +
      + $text): ?> +
    • + + +
    • + +
    • + + +
    • +
    • + + +
    • +
    • + + +
    • +
    • + + + "group"), $group_list, $form["group"]) ?> + + + +
    • +
    • + "g-registration-admin", "name" => "save", "class" => "submit", "style" => "clear:both!important"), t("Update")) ?> +
    • +
    +
    + +
    + +
    + "post"), $hidden) ?> +
    + + + + + + + + + + + + + "> + + + + + + + + +
    + +
    + state != 2): ?> + id) ?> + +   + + state) ?>name) ?>full_name) ?>email) ?>request_date)) ?>
    + "g-registration-activate", "name" => "activate_users", "class" => "submit"), t("Activate selected")) ?> +
    + +
    + +
    diff --git a/modules/.not-used/register/views/confirm_registration.html.php b/modules/.not-used/register/views/confirm_registration.html.php new file mode 100755 index 0000000..80c6293 --- /dev/null +++ b/modules/.not-used/register/views/confirm_registration.html.php @@ -0,0 +1,18 @@ + + + + <?= ($subject_prefix.$subject) ?> + + +

    +

    + $user->full_name ? $user->full_name : $user->name, "locale" => $locale)) ?> +

    +

    + clicking this link. If you didn't request this password reset, it's ok to ignore this mail.", + array("site_url" => html::mark_clean(url::base(false, "http")), + "confirm_url" => $confirm_url, + "locale" => $locale)) ?> +

    + + diff --git a/modules/.not-used/register/views/register_admin_notify.html.php b/modules/.not-used/register/views/register_admin_notify.html.php new file mode 100755 index 0000000..39cd04d --- /dev/null +++ b/modules/.not-used/register/views/register_admin_notify.html.php @@ -0,0 +1,15 @@ + + + + <?= ($subject_prefix.$subject) ?> + + +

    +

    + You can access the site by clicking this link, after which you can review and approve this request.", + array("name" => $user->full_name ? $user->full_name : $user->name, + "locale" => $locale, + "site_url" => html::mark_clean($admin_register_url))) ?> +

    + + diff --git a/modules/.not-used/register/views/register_welcome.html.php b/modules/.not-used/register/views/register_welcome.html.php new file mode 100755 index 0000000..2d18385 --- /dev/null +++ b/modules/.not-used/register/views/register_welcome.html.php @@ -0,0 +1,17 @@ + + + + <?= ($subject_prefix.$subject) ?> + + +

    +

    + $user->full_name ? $user->full_name : $user->name, "locale" => $locale)) ?> +

    +

    + You can access the site by clicking this link and you will be prompted to set your password at this point.", + array("site_url" => html::mark_clean($site_url), + "locale" => $locale)) ?> +

    + + diff --git a/modules/.not-used/register/views/register_welcome_message.html.php b/modules/.not-used/register/views/register_welcome_message.html.php new file mode 100755 index 0000000..76c076c --- /dev/null +++ b/modules/.not-used/register/views/register_welcome_message.html.php @@ -0,0 +1,36 @@ + +
    +

    + +

    + +

    +

    + +

    +

    + +

    + %user_name account. We have generated a password for you (%password). You should change your password to something that you'll remember.", array("user_name" => $user->name, "password" => $password)) ?> +

    + +

    + id}/$password") ?>" + title="for_html_attr() ?>" + id="g-after-install-change-password-link" + class="g-button ui-state-default ui-corners-all"> + + + +

    + +

    + Gallery website has news and information about the Gallery project and community.", array("url" => "http://gallery.menalto.com")) ?> +

    + +

    + documentation site or you can ask for help in the forums!", array("codex_url" => "http://codex.gallery2.org/Main_Page", "forum_url" => "http://gallery.menalto.com/forum")) ?> +

    +
    diff --git a/modules/.not-used/register/views/register_welcome_message_loader.html.php b/modules/.not-used/register/views/register_welcome_message_loader.html.php new file mode 100755 index 0000000..ea3c550 --- /dev/null +++ b/modules/.not-used/register/views/register_welcome_message_loader.html.php @@ -0,0 +1,7 @@ + +for_html_attr() ?>" + href=""/> + diff --git a/modules/.not-used/tag_cloud_html5/controllers/admin_tag_cloud_html5.php b/modules/.not-used/tag_cloud_html5/controllers/admin_tag_cloud_html5.php new file mode 100755 index 0000000..98ffe6e --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/controllers/admin_tag_cloud_html5.php @@ -0,0 +1,252 @@ +_get_admin_form(); + $this->_print_screen($form); + } + + public function edit() { + access::verify_csrf(); + $cfg = $this->_get_config(); + $form = $this->_get_admin_form(); + if ($form->validate()) { + if ($form->general->reset_defaults->value) { + // reset all to defaults, redirect with message + module::install("tag_cloud_html5"); + message::success(t("Tag cloud options reset successfully")); + url::redirect("admin/tag_cloud_html5"); + } + // save the new inputs + module::set_var("tag_cloud_html5", "show_wholecloud_link", ($form->general->show_wholecloud_link->value == 1)); + module::set_var("tag_cloud_html5", "show_add_tag_form", ($form->general->show_add_tag_form->value == 1)); + module::set_var("tag_cloud_html5", "show_wholecloud_list", ($form->general->show_wholecloud_list->value == 1)); + foreach ($cfg['groups'] as $groupname => $grouptext) { + module::set_var("tag_cloud_html5", "maxtags".$groupname, $form->{"size".$groupname}->{"maxtags".$groupname}->value); + module::set_var("tag_cloud_html5", "width".$groupname, $form->{"size".$groupname}->{"width".$groupname}->value); + module::set_var("tag_cloud_html5", "height".$groupname, $form->{"size".$groupname}->{"height".$groupname}->value); + + $optionsarray = array(); + // group size + $optionsarray['shape'] = $form->{"size".$groupname}->{"shape".$groupname}->value; + $optionsarray['zoom'] = $form->{"size".$groupname}->{"zoom".$groupname}->value; + $optionsarray['stretchX'] = $form->{"size".$groupname}->{"stretchX".$groupname}->value; + $optionsarray['stretchY'] = $form->{"size".$groupname}->{"stretchY".$groupname}->value; + // group motion + $optionsarray['maxSpeed'] = $form->{"motion".$groupname}->{"maxSpeed".$groupname}->value; + $optionsarray['minSpeed'] = $form->{"motion".$groupname}->{"minSpeed".$groupname}->value; + $optionsarray['deadZone'] = $form->{"motion".$groupname}->{"deadZone".$groupname}->value; + $optionsarray['decel'] = $form->{"motion".$groupname}->{"decel".$groupname}->value; + $optionsarray['initial'] = array($form->{"motion".$groupname}->{"initialX".$groupname}->value, $form->{"motion".$groupname}->{"initialY".$groupname}->value); + $optionsarray['maxInputZone'] = $form->{"motion".$groupname}->{"maxInputZone".$groupname}->value; + // group select + $optionsarray['outlineMethod'] = $form->{"select".$groupname}->{"outlineMethod".$groupname}->value; + $optionsarray['outlineOffset'] = $form->{"select".$groupname}->{"outlineOffset".$groupname}->value; + $optionsarray['outlineColour'] = $form->{"select".$groupname}->{"outlineColour".$groupname}->value; + $optionsarray['frontSelect'] = ($form->{"select".$groupname}->{"frontSelect".$groupname}->value == 1); + // group appearance + $optionsarray['textHeight'] = $form->{"appearance".$groupname}->{"textHeight".$groupname}->value; + $optionsarray['textColour'] = $form->{"appearance".$groupname}->{"textColour".$groupname}->value; + $optionsarray['textFont'] = $form->{"appearance".$groupname}->{"textFont".$groupname}->value; + $optionsarray['depth'] = $form->{"appearance".$groupname}->{"depth".$groupname}->value; + // options that are not explicitly defined in admin menu + $optionsarray['wheelZoom'] = false; // otherwise scrolling through the page screws everything up (was a problem in v1) + $optionsarray['initialDecel'] = true; // this was an option in v4, but it's sorta useless - use minSpeed for a related but better effect + $optionsarray['physModel'] = true; // this is the big enhancement for v5, and is a major modification that I did to TagCanvas + switch ($optionsarray['shape']) { + case "hcylinder": + // keep it horizontal - lock x-axis rotation + $optionsarray['lock'] = "x"; + break; + case "vcylinder": + // keep it vertical - lock y-axis rotation + $optionsarray['lock'] = "y"; + break; + default: + // do not lock either axis + $optionsarray['lock'] = ""; + } + module::set_var("tag_cloud_html5", "options".$groupname, json_encode($optionsarray)); + } + // all done; redirect with message + message::success(t("Tag cloud options updated successfully")); + url::redirect("admin/tag_cloud_html5"); + } + // not valid - print screen from existing form + $this->_print_screen($form); + } + + private function _get_config() { + // these define the two variable name groups, along with their labels which are always shown with t() for i18n. + $cfg['groups'] = array("_sidebar"=>t("Sidebar"), "_wholecloud"=>t("Whole cloud")); + // this defines the separator that's used between the group name and the attribute, and is *not* put through t(). + $cfg['sep'] = " : "; + // this is used in the labels of the width/height parameters + $cfg['size'] = array("_sidebar"=>t("as fraction of sidebar width, e.g. 'g-block-content' class"), "_wholecloud"=>t("as fraction of browser window height")); + return $cfg; + } + + private function _print_screen($form) { + // this part is a bit of a hack, but Forge doesn't seem to allow set_attr() for groups. + $form = $form->render(); + $form = preg_replace("/
    /","
    ",$form,1); + $form = preg_replace("/
    /","
    ",$form,4); + $form = preg_replace("/
    /","
    ",$form,4); + + $view = new Admin_View("admin.html"); + $view->content = new View("admin_tag_cloud_html5.html"); + $view->content->form = $form; + print $view; + } + + private function _get_admin_form() { + $cfg = $this->_get_config(); + $sep = $cfg['sep']; + + // Make the main form. This form has *nine* groups: general, then size, motion, select, and appearance for _sidebar and _wholecloud. + $form = new Forge("admin/tag_cloud_html5/edit", "", "post", array("id" => "g-tag-cloud-html5-admin-form")); + + // group general + $group_general = $form->group("general")->label(t("General"))->set_attr("id","g-tag-cloud-html5-admin-form-general"); + $group_general->checkbox("reset_defaults") + ->label(t("Reset all to default values")) + ->checked(false); + $group_general->checkbox("show_wholecloud_link") + ->label(t("Show 'View whole cloud' link in sidebar")) + ->checked(module::get_var("tag_cloud_html5", "show_wholecloud_link", null)); + $group_general->checkbox("show_add_tag_form") + ->label(t("Show 'Add tag to album' form in sidebar (when permitted and applicable)")) + ->checked(module::get_var("tag_cloud_html5", "show_add_tag_form", null)); + $group_general->checkbox("show_wholecloud_list") + ->label(t("Show inline tag list under cloud on 'View whole cloud' page")." {hideTags}") + ->checked(module::get_var("tag_cloud_html5", "show_wholecloud_list", null)); + + foreach ($cfg['groups'] as $groupname => $grouptext) { + $maxtags = strval(module::get_var("tag_cloud_html5", "maxtags".$groupname, null)); + $width = strval(module::get_var("tag_cloud_html5", "width".$groupname, null)); + $height = strval(module::get_var("tag_cloud_html5", "height".$groupname, null)); + $options = json_decode(module::get_var("tag_cloud_html5", "options".$groupname, null),true); + + // group size/shape + ${"group_size".$groupname} = $form->group("size".$groupname)->label(t("Size and shape").$sep.$grouptext); + ${"group_size".$groupname}->input("maxtags".$groupname) + ->label(t("maximum tags shown")) + ->value($maxtags) + ->rules("required|numrange[0]"); + ${"group_size".$groupname}->input("width".$groupname) + ->label(t("width")." (".$cfg['size'][$groupname].")") + ->value($width) + ->rules("required|numrange[0]"); + ${"group_size".$groupname}->input("height".$groupname) + ->label(t("height")." (".$cfg['size'][$groupname].")") + ->value($height) + ->rules("required|numrange[0]"); + ${"group_size".$groupname}->dropdown("shape".$groupname) + ->label(t("shape of cloud")." {shape,lock}") + ->options(array("sphere"=>t("sphere"),"hcylinder"=>t("horizontal cylinder"),"vcylinder"=>t("vertical cylinder"))) + ->selected($options['shape']); + ${"group_size".$groupname}->input("zoom".$groupname) + ->label(t("zoom (<1.0 is zoom out, >1.0 is zoom in)")." {zoom}") + ->value($options['zoom']) + ->rules("required|numrange[0]"); + ${"group_size".$groupname}->input("stretchX".$groupname) + ->label(t("x-axis stretch factor (<1.0 squishes, >1.0 stretches)")." {stretchX}") + ->value($options['stretchX']) + ->rules("required|numrange[0]"); + ${"group_size".$groupname}->input("stretchY".$groupname) + ->label(t("y-axis stretch factor (<1.0 squishes, >1.0 stretches)")." {stretchY}") + ->value($options['stretchY']) + ->rules("required|numrange[0]"); + + // group motion + ${"group_motion".$groupname} = $form->group("motion".$groupname)->label(t("Motion").$sep.$grouptext); + ${"group_motion".$groupname}->input("maxSpeed".$groupname) + ->label(t("max speed (typically 0.01-0.20)")." {maxSpeed}") + ->value($options['maxSpeed']) + ->rules("required|numrange[0]"); + ${"group_motion".$groupname}->input("minSpeed".$groupname) + ->label(t("no mouseover speed (typically 0.00-0.01)")." {minSpeed}") + ->value($options['minSpeed']) + ->rules("required|numrange[0]"); + ${"group_motion".$groupname}->input("deadZone".$groupname) + ->label(t("dead zone size (0.0-1.0 - 0.0 is none and 1.0 is entire cloud)")." {deadZone}") + ->value($options['deadZone']) + ->rules("required|numrange[0,1]"); + ${"group_motion".$groupname}->input("decel".$groupname) + ->label(t("inertia (0.0-1.0 - 0.0 changes velocity instantly and 1.0 never changes)")." {decel}") + ->value($options['decel']) + ->rules("required|numrange[0,1]"); + ${"group_motion".$groupname}->input("initialX".$groupname) + ->label(t("initial horizontal speed (between +/-1.0, as fraction of max speed)")." {initial}") + ->value($options['initial'][0]) + ->rules("required|numrange[-1,1]"); + ${"group_motion".$groupname}->input("initialY".$groupname) + ->label(t("initial vertical speed (between +/-1.0, as fraction of max speed)")." {initial}") + ->value($options['initial'][1]) + ->rules("required|numrange[-1,1]"); + ${"group_motion".$groupname}->input("maxInputZone".$groupname) + ->label(t("mouseover region beyond cloud (as fraction of cloud - 0.0 is tight around cloud)")." {maxInputZone}") + ->value($options['maxInputZone']) + ->rules("required|numrange[0]"); + + // group select + ${"group_select".$groupname} = $form->group("select".$groupname)->label(t("Tag selection").$sep.$grouptext); + ${"group_select".$groupname}->dropdown("outlineMethod".$groupname) + ->label(t("change of display for selected tag")." {outlineMethod}") + ->options(array("colour"=>t("change text color"),"outline"=>t("add outline around text"),"block"=>t("add block behind text"))) + ->selected($options['outlineMethod']); + ${"group_select".$groupname}->input("outlineOffset".$groupname) + ->label(t("mouseover region around tag text (in pixels - 0 is tight around text)")." {outlineOffset}") + ->value($options['outlineOffset']) + ->rules("required|numrange[0]"); + ${"group_select".$groupname}->input("outlineColour".$groupname) + ->label(t("color used for change of display (as #hhhhhh)")." {outlineColour}") + ->value($options['outlineColour']) + ->rules('required|color'); + ${"group_select".$groupname}->checkbox("frontSelect".$groupname) + ->label(t("only allow tags in front to be selected")." {frontSelect}") + ->checked($options['frontSelect']); + + // group appearance + ${"group_appearance".$groupname} = $form->group("appearance".$groupname)->label(t("Appearance").$sep.$grouptext); + ${"group_appearance".$groupname}->input("textHeight".$groupname) + ->label(t("text height (in pixels)")." {textHeight}") + ->value($options['textHeight']) + ->rules("required|numrange[0]"); + ${"group_appearance".$groupname}->input("textColour".$groupname) + ->label(t("text color (as #hhhhhh, or empty to use theme color)")." {textColour}") + ->value($options['textColour']) + ->rules('color'); + ${"group_appearance".$groupname}->input("textFont".$groupname) + ->label(t("text font family (empty to use theme font family)")." {textFont}") + ->value($options['textFont']) + ->rules("length[0,60]"); + ${"group_appearance".$groupname}->input("depth".$groupname) + ->label(t("depth/perspective of cloud (0.0-1.0 - 0.0 is none and >0.9 gets strange)")." {depth}") + ->value($options['depth']) + ->rules("required|numrange[0,1]"); + } + $form->submit("")->value(t("Save")); + + return $form; + } + +} diff --git a/modules/.not-used/tag_cloud_html5/controllers/tag_cloud.php b/modules/.not-used/tag_cloud_html5/controllers/tag_cloud.php new file mode 100755 index 0000000..e12216b --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/controllers/tag_cloud.php @@ -0,0 +1,114 @@ +content = new View("tag_cloud_html5_page.html"); + $template->content->title = t("Tag cloud"); + $template->content->cloud = tag::cloud($maxtags); + $template->content->options = $options; + $template->content->width = $width; + $template->content->height = $height; + + // Display the page. + print $template; + } + + public function embed() { + /** + * This is used to embed the tag cloud in other things. New in version 7. + * + * It expects the url to be in the form: + * tag_cloud/embed/optionsbase/option1/value1/option2/value2/.../optionN/valueN + * Where: + * optionsbase = "sidebar" or "wholecloud" (takes settings from this config) + * optionX = option name (either "maxtags" or any of the TagCanvas parameters - no name verification performed!) + * valueX = value of option (no value verification performed here!) + * Here's how the tag cloud is built: + * 1. Load "maxtags" and "options" variables for optionbase (as defined in admin menu or admin/advanced variables) + * Note: width and height are ignored, and the add tag form, wholecloud link, and inline tags are not shown. + * 2. Use option/value pairs to override and/or append those loaded above. + * 3. Build tag cloud, using 100% of the size from its parent. + * Correspondingly, the optionsbase is required, but the options and values are not. + */ + + // Require view permission for the root album for security purposes. + $album = ORM::factory("item", 1); + access::required("view", $album); + + // get the function arguments + $args = func_get_args(); + + // get/check the number of arguments - must be odd + $countargs = count($args); + if ($countargs % 2 == 0) { + return; + } + + // get/check the first argument - must be sidebar or wholecloud + $optionsbase = $args[0]; + if (!(in_array($optionsbase, array("sidebar", "wholecloud")))) { + return; + } + + // get and override/append options/values + $maxtags = module::get_var("tag_cloud_html5", "maxtags_".$optionsbase, null); + $options = module::get_var("tag_cloud_html5", "options_".$optionsbase, null); + $options = json_decode($options, true); + for ($i = 0; $i < ($countargs-1)/2; $i++) { + $option = $args[2*$i+1]; + $value = $args[2*$i+2]; + if ($option == "maxtags") { + // assign to maxtags + $maxtags = $value; + } elseif (substr($option,-6) == 'Colour') { + // assign to options with a hash in front + $options[$option] = '#'.$value; + } else { + // assign to options + $options[$option] = $value; + } + } + $options = json_encode($options); + + // Set up and display the actual page. + $template = new View("tag_cloud_html5_embed.html"); + $template->cloud = tag::cloud($maxtags); + $template->options = $options; + + // Display the page. + print $template; + } +} \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/css/admin_tag_cloud_html5.css b/modules/.not-used/tag_cloud_html5/css/admin_tag_cloud_html5.css new file mode 100755 index 0000000..e87717f --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/css/admin_tag_cloud_html5.css @@ -0,0 +1,17 @@ +#g-content fieldset { + display: block; +} +#g-content fieldset.g-tag-cloud-html5-admin-form-top { + width: 80%; + clear: both; +} +#g-content fieldset.g-tag-cloud-html5-admin-form-left { + width: 45%; + float: left; + clear: left; + margin-right: 2% +} +#g-content fieldset.g-tag-cloud-html5-admin-form-right { + width: 45%; + clear: right; +} \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/css/tag_cloud_html5.css b/modules/.not-used/tag_cloud_html5/css/tag_cloud_html5.css new file mode 100755 index 0000000..bf20ce8 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/css/tag_cloud_html5.css @@ -0,0 +1,106 @@ +/* Tag cloud - sidebar ~~~~~~~~~~~~~~~~~~~~~~~ */ + +/* comment out this first block to make the inline tags appear if the cloud doesn't load */ +#g-tag-cloud-html5-tags { + display: none; +} + +#g-tag-cloud-html5-tags ul { + text-align: justify; +} + +#g-tag-cloud-html5-tags ul li { + display: inline; + text-align: justify; +} + +#g-tag-cloud-html5-tags ul li a { + text-decoration: none; +} + +#g-tag-cloud-html5-tags ul li span { + display: none; +} + +#g-tag-cloud-html5-page ul li a:hover { + text-decoration: underline; +} + +/* Tag cloud - whole cloud page ~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-tag-cloud-html5-page-canvas { + display: block; + margin: 0 auto; +} + +#g-tag-cloud-html5-page-tags ul { + font-size: 1.2em; + text-align: justify; +} + +#g-tag-cloud-html5-page-tags ul li { + display: inline; + line-height: 1.5em; + text-align: justify; +} + +#g-tag-cloud-html5-page-tags ul li a { + text-decoration: none; +} + +#g-tag-cloud-html5-page-tags ul li span { + display: none; +} + +#g-tag-cloud-html5-page-tags ul li.size0 a { + color: #9cf; + font-size: 70%; + font-weight: 100; +} + +#g-tag-cloud-html5-page-tags ul li.size1 a { + color: #9cf; + font-size: 80%; + font-weight: 100; +} + +#g-tag-cloud-html5-page-tags ul li.size2 a { + color: #69f; + font-size: 90%; + font-weight: 300; +} + +#g-tag-cloud-html5-page-tags ul li.size3 a { + color: #69c; + font-size: 100%; + font-weight: 500; +} + +#g-tag-cloud-html5-page-tags ul li.size4 a { + color: #369; + font-size: 110%; + font-weight: 700; +} + +#g-tag-cloud-html5-page-tags ul li.size5 a { + color: #0e2b52; + font-size: 120%; + font-weight: 900; +} + +#g-tag-cloud-html5-page-tags ul li.size6 a { + color: #0e2b52; + font-size: 130%; + font-weight: 900; +} + +#g-tag-cloud-html5-page-tags ul li.size7 a { + color: #0e2b52; + font-size: 140%; + font-weight: 900; +} + +#g-tag-cloud-html5-page-tags ul li a:hover { + color: #f30; + text-decoration: underline; +} diff --git a/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_block.php b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_block.php new file mode 100755 index 0000000..bc99af7 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_block.php @@ -0,0 +1,67 @@ + (t("Tag cloud")." HTML5")); + } + + static function get($block_id, $theme) { + $block = ""; + switch ($block_id) { + case "tag_cloud_html5_site": + // load settings + $options = module::get_var("tag_cloud_html5", "options_sidebar", null); + $maxtags = module::get_var("tag_cloud_html5", "maxtags_sidebar", null); + $showlink = module::get_var("tag_cloud_html5", "show_wholecloud_link", null); + $showaddtag = module::get_var("tag_cloud_html5", "show_add_tag_form", null); + $width = module::get_var("tag_cloud_html5", "width_sidebar", null); + $height = module::get_var("tag_cloud_html5", "height_sidebar", null); + + // make the block + $block = new Block(); + $block->css_id = "g-tag"; + $block->title = t("Tag cloud"); + $block->content = new View("tag_cloud_html5_block.html"); + $block->content->cloud = tag::cloud($maxtags); + $block->content->options = $options; + $block->content->width = $width; + $block->content->height = $height; + + // add the 'View whole cloud' link if needed + if ($showlink) { + $block->content->wholecloud_link = "".t("View whole cloud").""; + } else { + $block->content->wholecloud_link = ""; + } + + // add the 'Add tag' form if needed + if ($theme->item() && $theme->page_subtype() != "tag" && access::can("edit", $theme->item()) && $showaddtag) { + $controller = new Tags_Controller(); + $block->content->form = tag::get_add_form($theme->item()); + } else { + $block->content->form = ""; + } + + break; + } + return $block; + } +} diff --git a/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_event.php b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_event.php new file mode 100755 index 0000000..85443a2 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_event.php @@ -0,0 +1,28 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("tag_cloud_html5") + ->label(t("Tag cloud")." HTML5") + ->url(url::site("admin/tag_cloud_html5"))); + } +} diff --git a/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_installer.php b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_installer.php new file mode 100755 index 0000000..4b2914d --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_installer.php @@ -0,0 +1,177 @@ + 0.05, + "deadZone" => 0.25, + "initial" => array(0.8,-0.3), + "initialDecel" => true, + "zoom" => 1.25, + "depth" => 0.5, + "outlineMethod" => "colour", + "outlineOffset" => 8, + "outlineColour" => "#eeeeee", + "textColour" => "", + "textFont" => "", + "textHeight" => 12, + "frontSelect" => true, + "wheelZoom" => false, + "shape" => "sphere", + "lock" => "", + "stretchX" => 1.0, + "stretchY" => 1.0, + "decel" => 0.92, + "physModel" => true, + "maxInputZone" => 0.25, + "minSpeed" => 0.002 + ))); + + module::set_var("tag_cloud_html5", "options_wholecloud", json_encode(array( + "maxSpeed" => 0.05, + "deadZone" => 0.25, + "initial" => array(0.8,-0.3), + "initialDecel" => true, + "zoom" => 1.25, + "depth" => 0.5, + "outlineMethod" => "colour", + "outlineOffset" => 8, + "outlineColour" => "#eeeeee", + "textColour" => "", + "textFont" => "", + "textHeight" => 13, + "frontSelect" => true, + "wheelZoom" => false, + "shape" => "sphere", + "lock" => "", + "stretchX" => 1.0, + "stretchY" => 1.0, + "decel" => 0.92, + "physModel" => true, + "maxInputZone" => 0.15, + "minSpeed" => 0.002 + ))); + + module::set_version("tag_cloud_html5", 7); + } + + static function upgrade() { + if (is_null(module::get_var("tag_cloud_html5", "options_sidebar")) || + is_null(module::get_var("tag_cloud_html5", "options_wholecloud")) || + (module::get_version("tag_cloud_html5") < 1) ) { + + module::install("tag_cloud_html5"); + } + if (module::get_version("tag_cloud_html5") < 2) { + // added wheelZoom, which is not accessible from admin menu + $options = json_decode(module::get_var("tag_cloud_html5", "options_sidebar"),true); + $options["wheelZoom"] = false; + module::set_var("tag_cloud_html5", "options_sidebar", json_encode($options)); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_wholecloud"),true); + $options["wheelZoom"] = false; + module::set_var("tag_cloud_html5", "options_wholecloud", json_encode($options)); + } + if (module::get_version("tag_cloud_html5") < 3) { + // added deadZone, initial, and initialDecel + + module::set_var("tag_cloud_html5", "show_add_tag_form", true); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_sidebar"),true); + $options["deadZone"] = 0.25; + $options["initial"] = array(0.8,-0.3); + $options["initialDecel"] = true; + module::set_var("tag_cloud_html5", "options_sidebar", json_encode($options)); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_wholecloud"),true); + $options["deadZone"] = 0.25; + $options["initial"] = array(0.8,-0.3); + $options["initialDecel"] = true; + module::set_var("tag_cloud_html5", "options_wholecloud", json_encode($options)); + } + if (module::get_version("tag_cloud_html5") < 4) { + // added height_sidebar, then scaled back zoom and textHeight for consistency + module::set_var("tag_cloud_html5", "height_sidebar", 0.8); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_sidebar"),true); + $options["zoom"] = $options["zoom"] / 0.8; + $options["textHeight"] = $options["textHeight"] * 0.8; + module::set_var("tag_cloud_html5", "options_sidebar", json_encode($options)); + } + if (module::get_version("tag_cloud_html5") < 5) { + // added lots of options that are on admin menu + // added physModel, lock, and initialDecel as options not on admin menu + // (previously initialDecel was on menu, so reset here) + + module::set_var("tag_cloud_html5", "width_sidebar", 1.00); + module::set_var("tag_cloud_html5", "width_wholecloud", 0.95); + module::set_var("tag_cloud_html5", "height_wholecloud", 0.75); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_sidebar"),true); + $options["deadZone"] = $options["deadZone"]; + $options["shape"] = "sphere"; + $options["lock"] = ""; + $options["stretchX"] = 1.0; + $options["stretchY"] = 1.0; + $options["decel"] = 0.92; + $options["physModel"] = true; + $options["maxInputZone"] = 0.25; + $options["minSpeed"] = 0.002; + $options["initialDecel"] = true; + module::set_var("tag_cloud_html5", "options_sidebar", json_encode($options)); + + $options = json_decode(module::get_var("tag_cloud_html5", "options_wholecloud"),true); + $options["deadZone"] = $options["deadZone"]; + $options["shape"] = "sphere"; + $options["lock"] = ""; + $options["stretchX"] = 1.0; + $options["stretchY"] = 1.0; + $options["decel"] = 0.92; + $options["physModel"] = true; + $options["maxInputZone"] = 0.15; + $options["minSpeed"] = 0.002; + $options["initialDecel"] = true; + module::set_var("tag_cloud_html5", "options_wholecloud", json_encode($options)); + } + // note: there are no variable changes for v6 and v7 upgrades + module::set_version("tag_cloud_html5", 7); + } + + static function uninstall() { + module::clear_all_vars("tag_cloud_html5"); + } + +} diff --git a/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_theme.php b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_theme.php new file mode 100755 index 0000000..ce0b6d3 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/helpers/tag_cloud_html5_theme.php @@ -0,0 +1,25 @@ +script("jquery.tagcanvas.mod.min.js"); + $theme->css("tag_cloud_html5.css"); + } +} \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/js/excanvas.compiled.js b/modules/.not-used/tag_cloud_html5/js/excanvas.compiled.js new file mode 100755 index 0000000..a34ca1d --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/js/excanvas.compiled.js @@ -0,0 +1,35 @@ +// Copyright 2006 Google Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. +document.createElement("canvas").getContext||(function(){var s=Math,j=s.round,F=s.sin,G=s.cos,V=s.abs,W=s.sqrt,k=10,v=k/2;function X(){return this.context_||(this.context_=new H(this))}var L=Array.prototype.slice;function Y(b,a){var c=L.call(arguments,2);return function(){return b.apply(a,c.concat(L.call(arguments)))}}var M={init:function(b){if(/MSIE/.test(navigator.userAgent)&&!window.opera){var a=b||document;a.createElement("canvas");a.attachEvent("onreadystatechange",Y(this.init_,this,a))}},init_:function(b){b.namespaces.g_vml_|| +b.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML");b.namespaces.g_o_||b.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML");if(!b.styleSheets.ex_canvas_){var a=b.createStyleSheet();a.owningElement.id="ex_canvas_";a.cssText="canvas{display:inline-block;overflow:hidden;text-align:left;width:300px;height:150px}g_vml_\\:*{behavior:url(#default#VML)}g_o_\\:*{behavior:url(#default#VML)}"}var c=b.getElementsByTagName("canvas"),d=0;for(;d','","");this.element_.insertAdjacentHTML("BeforeEnd",t.join(""))};i.stroke=function(b){var a=[],c=P(b?this.fillStyle:this.strokeStyle),d=c.color,f=c.alpha*this.globalAlpha;a.push("g.x)g.x=e.x;if(h.y==null||e.yg.y)g.y=e.y}}a.push(' ">');if(b)if(typeof this.fillStyle=="object"){var m=this.fillStyle,r=0,n={x:0,y:0},o=0,q=1;if(m.type_=="gradient"){var t=m.x1_/this.arcScaleX_,E=m.y1_/this.arcScaleY_,p=this.getCoords_(m.x0_/this.arcScaleX_,m.y0_/this.arcScaleY_), +z=this.getCoords_(t,E);r=Math.atan2(z.x-p.x,z.y-p.y)*180/Math.PI;if(r<0)r+=360;if(r<1.0E-6)r=0}else{var p=this.getCoords_(m.x0_,m.y0_),w=g.x-h.x,x=g.y-h.y;n={x:(p.x-h.x)/w,y:(p.y-h.y)/x};w/=this.arcScaleX_*k;x/=this.arcScaleY_*k;var R=s.max(w,x);o=2*m.r0_/R;q=2*m.r1_/R-o}var u=m.colors_;u.sort(function(ba,ca){return ba.offset-ca.offset});var J=u.length,da=u[0].color,ea=u[J-1].color,fa=u[0].alpha*this.globalAlpha,ga=u[J-1].alpha*this.globalAlpha,S=[],l=0;for(;l')}else a.push('');else{var K=this.lineScale_*this.lineWidth;if(K<1)f*=K;a.push("')}a.push("");this.element_.insertAdjacentHTML("beforeEnd",a.join(""))};i.fill=function(){this.stroke(true)};i.closePath=function(){this.currentPath_.push({type:"close"})};i.getCoords_=function(b,a){var c=this.m_;return{x:k*(b*c[0][0]+a*c[1][0]+c[2][0])-v,y:k*(b*c[0][1]+a*c[1][1]+c[2][1])-v}};i.save=function(){var b={};O(this,b);this.aStack_.push(b);this.mStack_.push(this.m_);this.m_=y(I(),this.m_)};i.restore=function(){O(this.aStack_.pop(), +this);this.m_=this.mStack_.pop()};function ha(b){var a=0;for(;a<3;a++){var c=0;for(;c<2;c++)if(!isFinite(b[a][c])||isNaN(b[a][c]))return false}return true}function A(b,a,c){if(!!ha(a)){b.m_=a;if(c)b.lineScale_=W(V(a[0][0]*a[1][1]-a[0][1]*a[1][0]))}}i.translate=function(b,a){A(this,y([[1,0,0],[0,1,0],[b,a,1]],this.m_),false)};i.rotate=function(b){var a=G(b),c=F(b);A(this,y([[a,c,0],[-c,a,0],[0,0,1]],this.m_),false)};i.scale=function(b,a){this.arcScaleX_*=b;this.arcScaleY_*=a;A(this,y([[b,0,0],[0,a, +0],[0,0,1]],this.m_),true)};i.transform=function(b,a,c,d,f,h){A(this,y([[b,a,0],[c,d,0],[f,h,1]],this.m_),true)};i.setTransform=function(b,a,c,d,f,h){A(this,[[b,a,0],[c,d,0],[f,h,1]],true)};i.clip=function(){};i.arcTo=function(){};i.createPattern=function(){return new U};function D(b){this.type_=b;this.r1_=this.y1_=this.x1_=this.r0_=this.y0_=this.x0_=0;this.colors_=[]}D.prototype.addColorStop=function(b,a){a=P(a);this.colors_.push({offset:b,color:a.color,alpha:a.alpha})};function U(){}G_vmlCanvasManager= +M;CanvasRenderingContext2D=H;CanvasGradient=D;CanvasPattern=U})(); diff --git a/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.js b/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.js new file mode 100755 index 0000000..016a291 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.js @@ -0,0 +1,1014 @@ +/** + * Copyright (C) 2010-2012 Graham Breach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ +/** + * jQuery.tagcanvas 1.17.1 + * For more information, please contact + */ +/** + * Modified by Shad Laws 2012/06/08 -- all modified lines have "mod Shad Laws" comments + * - built a physics-based model for motion, which is activated with the physModel flag + * - included initialDecel, deadZone, maxInputZone, and physModel as options + * - set defaults of new options to mimic behavior without them (false, 0, 0, and false) + * - removed two unnecessary variable declarations caught by YUI Compressor + * - fixed initialization of a few variables (minSpeed, decel, yaw/pitch) + * - fixed problem with html margin-top changing coordinates in IE (but not Chrome or Firefox) + */ +(function($) { +// var i, j, abs = Math.abs, sin = Math.sin, cos = Math.cos, max = Math.max, min = Math.min, // mod Shad Laws +var i, j, abs = Math.abs, sin = Math.sin, cos = Math.cos, max = Math.max, min = Math.min, sqrt = Math.sqrt, // mod Shad Laws + hexlookup3 = {}, hexlookup2 = {}, hexlookup1 = { + 0:"0,", 1:"17,", 2:"34,", 3:"51,", 4:"68,", 5:"85,", + 6:"102,", 7:"119,", 8:"136,", 9:"153,", a:"170,", A:"170,", + b:"187,", B:"187,", c:"204,", C:"204,", d:"221,", D:"221,", + e:"238,", E:"238,", f:"255,", F:"255," +}, Oproto, Tproto, TCproto, doc = document, ocanvas, handlers = {}; +for(i = 0; i < 256; ++i) { + j = i.toString(16); + if(i < 16) + j = '0' + j; + hexlookup2[j] = hexlookup2[j.toUpperCase()] = i.toString() + ','; +} +function Defined(d) { + return typeof(d) != 'undefined'; +} +function Shuffle(a) { + var i = a.length-1, t, p; + while(i) { + p = ~~(Math.random()*i); + t = a[i]; + a[i] = a[p]; + a[p] = t; + --i; + } +} +function PointsOnSphere(n,xr,yr,zr) { + var i, y, r, phi, pts = [], inc = Math.PI * (3-Math.sqrt(5)), off = 2/n; + for(i = 0; i < n; ++i) { + y = i * off - 1 + (off / 2); + r = Math.sqrt(1 - y*y); + phi = i * inc; + pts.push([cos(phi) * r * xr, y * yr, sin(phi) * r * zr]); + } + return pts; +} +function Cylinder(n,o,xr,yr,zr,i,j,k,l) { + var phi, pts = [], inc = Math.PI * (3-Math.sqrt(5)), off = 2/n; + for(i = 0; i < n; ++i) { + j = i * off - 1 + (off / 2); + phi = i * inc; + k = cos(phi); + l = sin(phi); + pts.push(o ? [j * xr, k * yr, l * zr] : [k * xr, j * yr, l * zr]); + } + return pts; +} +function PointsOnCylinderV(n,xr,yr,zr) { return Cylinder(n, 0, xr, yr, zr) } +function PointsOnCylinderH(n,xr,yr,zr) { return Cylinder(n, 1, xr, yr, zr) } +function SetAlpha(c,a) { + var d = c, p1, p2, ae = (a*1).toPrecision(3) + ')'; + if(c[0] === '#') { + if(!hexlookup3[c]) + if(c.length === 4) + hexlookup3[c] = 'rgba(' + hexlookup1[c[1]] + hexlookup1[c[2]] + hexlookup1[c[3]]; + else + hexlookup3[c] = 'rgba(' + hexlookup2[c.substr(1,2)] + hexlookup2[c.substr(3,2)] + hexlookup2[c.substr(5,2)]; + d = hexlookup3[c] + ae; + } else if(c.substr(0,4) === 'rgb(' || c.substr(0,4) === 'hsl(') { + d = (c.replace('(','a(').replace(')', ',' + ae)); + } else if(c.substr(0,5) === 'rgba(' || c.substr(0,5) === 'hsla(') { + p1 = c.lastIndexOf(',') + 1, p2 = c.indexOf(')'); + a *= parseFloat(c.substring(p1,p2)); + d = c.substr(0,p1) + a.toPrecision(3) + ')'; + } + return d; +} +function NewCanvas(w,h) { + // if using excanvas, give up now + if(window.G_vmlCanvasManager) + return null; + var c = doc.createElement('canvas'); + c.width = w; + c.height = h; + return c; +} +// I think all browsers pass this test now... +function ShadowAlphaBroken() { + var cv = NewCanvas(3,3), c, i; + if(!cv) + return false; + c = cv.getContext('2d'); + c.strokeStyle = '#000'; + c.shadowColor = '#fff'; + c.shadowBlur = 3; + c.globalAlpha = 0; + c.strokeRect(2,2,2,2); + c.globalAlpha = 1; + i = c.getImageData(2,2,1,1); + cv = null; + return (i.data[0] > 0); +} +function FindGradientColour(t,p) { + var l = 1024, g = t.weightGradient, cv, c, i, gd, d; + if(t.gCanvas) { + c = t.gCanvas.getContext('2d'); + } else { + t.gCanvas = cv = NewCanvas(l,1); + if(!cv) + return null; + c = cv.getContext('2d'); + gd = c.createLinearGradient(0,0,l,0); + for(i in g) + gd.addColorStop(1-i, g[i]); + c.fillStyle = gd; + c.fillRect(0,0,l,1); + } + d = c.getImageData(~~((l-1)*p),0,1,1).data; + return 'rgba(' + d[0] + ',' + d[1] + ',' + d[2] + ',' + (d[3]/255) + ')'; +} +function TextSet(c,f,l,s,sc,sb,so) { + var xo = (sb || 0) + (so && so[0] < 0 ? abs(so[0]) : 0), + yo = (sb || 0) + (so && so[1] < 0 ? abs(so[1]) : 0); + c.font = f; + c.textBaseline = 'top'; + c.fillStyle = l; + sc && (c.shadowColor = sc); + sb && (c.shadowBlur = sb); + so && (c.shadowOffsetX = so[0], c.shadowOffsetY = so[1]); + c.fillText(s, xo, yo); +} +function TextToCanvas(s,f,ht,w,h,l,sc,sb,so,padx,pady) { + var cw = w + abs(so[0]) + sb + sb, ch = h + abs(so[1]) + sb + sb, cv, c; + cv = NewCanvas(cw+padx,ch+pady); + if(!cv) + return null; + c = cv.getContext('2d'); + TextSet(c,f,l,s,sc,sb,so); + return cv; +} +function AddShadowToImage(i,sc,sb,so) { + var cw = i.width + abs(so[0]) + sb + sb, ch = i.height + abs(so[1]) + sb + sb, cv, c, + xo = (sb || 0) + (so && so[0] < 0 ? abs(so[0]) : 0), + yo = (sb || 0) + (so && so[1] < 0 ? abs(so[1]) : 0); + cv = NewCanvas(cw,ch); + if(!cv) + return null; + c = cv.getContext('2d'); + sc && (c.shadowColor = sc); + sb && (c.shadowBlur = sb); + so && (c.shadowOffsetX = so[0], c.shadowOffsetY = so[1]); + c.drawImage(i, xo, yo); + return cv; +} +function FindTextBoundingBox(s,f,ht) { + var w = parseInt(s.length * ht), h = parseInt(ht * 2), cv = NewCanvas(w,h), c, idata, w1, h1, x, y, i, ex; + if(!cv) + return null; + c = cv.getContext('2d'); + c.fillStyle = '#000'; + c.fillRect(0,0,w,h); + TextSet(c,ht + 'px ' + f,'#fff',s) + + idata = c.getImageData(0,0,w,h); + w1 = idata.width; h1 = idata.height; + ex = { + min: { x: w1, y: h1 }, + max: { x: -1, y: -1 } + }; + for(y = 0; y < h1; ++y) { + for(x = 0; x < w1; ++x) { + i = (y * w1 + x) * 4; + if(idata.data[i+1] > 0) { + if(x < ex.min.x) ex.min.x = x; + if(x > ex.max.x) ex.max.x = x; + if(y < ex.min.y) ex.min.y = y; + if(y > ex.max.y) ex.max.y = y; + } + } + } + // device pixels might not be css pixels + if(w1 != w) { + ex.min.x *= (w / w1); + ex.max.x *= (w / w1); + } + if(h1 != h) { + ex.min.y *= (w / h1); + ex.max.y *= (w / h1); + } + + cv = null; + return ex; +} +function FixFont(f) { + return "'" + f.replace(/(\'|\")/g,'').replace(/\s*,\s*/g, "', '") + "'"; +} +function AddHandler(h,f,e) { + e = e || doc; + if(e.addEventListener) + e.addEventListener(h,f,false); + else + e.attachEvent('on' + h, f); +} +function AddImage(i,o,t,tc) { + var tl = tc.taglist, s = tc.imageScale; + if(s && !(o.width && o.height)) { + // images are not yet rendered, wait for window onload + AddHandler('load', function() { AddImage(i,o,t,tc); }, window); + return; + } + if(!i.complete) { + // image not loaded, wait for image onload + AddHandler('load',function() { AddImage(i,o,t,tc); }, i); + return; + } + + // Yes, this does look like nonsense, but it makes sure that both the + // width and height are actually set and not just calculated. This is + // required to keep proportional sizes when the images are hidden, so + // the images can be used again for another cloud. + o.width = o.width; + o.height = o.height; + + if(s) { + i.width = o.width * s; + i.height = o.height * s; + } + t.w = i.width; + t.h = i.height; + tl.push(t); +} +function GetProperty(e,p) { + var dv = doc.defaultView, pc = p.replace(/\-([a-z])/g,function(a){return a.charAt(1).toUpperCase()}); + return (dv && dv.getComputedStyle && dv.getComputedStyle(e,null).getPropertyValue(p)) || + (e.currentStyle && e.currentStyle[pc]); +} +function FindWeight(t,a) { + var w = 1, p; + if(t.weightFrom) { + w = 1 * (a.getAttribute(t.weightFrom) || t.textHeight); + } else if(p = GetProperty(a,'font-size')) { + w = (p.indexOf('px') > -1 && p.replace('px','') * 1) || + (p.indexOf('pt') > -1 && p.replace('pt','') * 1.25) || + p * 3.3; + } else { + t.weight = false; + } + return w; +} +function MouseOut(e) { + MouseMove(e); + var cv = e.target || e.fromElement.parentNode, tc = TagCanvas.tc[cv.id]; + tc && (tc.mx = tc.my = -1); +} +function MouseMove(e) { + var i, tc, dd = doc.documentElement, o; + for(i in TagCanvas.tc) { + tc = TagCanvas.tc[i]; + if(tc.tttimer) { + clearTimeout(tc.tttimer); + tc.tttimer = null; + } + o = $(tc.canvas).offset(); + // if(e.pageX) { // mod Shad Laws + if(e.offsetX) { // mod Shad Laws + // this works for IE + tc.mx = e.offsetX; // mod Shad Laws + tc.my = e.offsetY; // mod Shad Laws + } else if(e.pageX) { // mod Shad Laws + // this doesn't work for IE --> e.pageY = -parseInt($("html").css("margin-left"), 10) for the top row! + tc.mx = e.pageX - o.left; + tc.my = e.pageY - o.top; + } else { + tc.mx = e.clientX + (dd.scrollLeft || doc.body.scrollLeft) - o.left; + tc.my = e.clientY + (dd.scrollTop || doc.body.scrollTop) - o.top; + } + } +} +function MouseClick(e) { + var t = TagCanvas, cb = doc.addEventListener ? 0 : 1, + tg = e.target && Defined(e.target.id) ? e.target.id : e.srcElement.parentNode.id; + if(tg && e.button == cb && t.tc[tg]) { + MouseMove(e); + t.tc[tg].Clicked(e); + } +} +function MouseWheel(e) { + var t = TagCanvas, + tg = e.target && Defined(e.target.id) ? e.target.id : e.srcElement.parentNode.id; + if(tg && t.tc[tg]) { + e.cancelBubble = true; + e.returnValue = false; + e.preventDefault && e.preventDefault(); + t.tc[tg].Wheel((e.wheelDelta || e.detail) > 0); + } +} +function DrawCanvas() { + var t = TagCanvas.tc, i; + for(i in t) + t[i].Draw(); +} +function RotX(p1,t) { + var s = sin(t), c = cos(t); + return {x:p1.x, y:(p1.y * c) + (p1.z * s), z:(p1.y * -s) + (p1.z * c)}; +} +function RotY(p1,t) { + var s = sin(t), c = cos(t); + return {x:(p1.x * c) + (p1.z * -s), y:p1.y, z:(p1.x * s) + (p1.z * c)}; +} +function Project(tc,p1,w,h,sx,sy) { + var yn, xn, zn, m = tc.z1 / (tc.z1 + tc.z2 + p1.z); + yn = p1.y * m * sy; + xn = p1.x * m * sx; + zn = tc.z2 + p1.z; + return {x:xn, y:yn, z:zn}; +} +/** + * @constructor + */ +function Outline(tc) { + this.ts = new Date().valueOf(); + this.tc = tc; + this.x = this.y = this.w = this.h = this.sc = 1; + this.z = 0; + this.Draw = tc.pulsateTo < 1 && tc.outlineMethod != 'colour' ? this.DrawPulsate : this.DrawSimple; + this.SetMethod(tc.outlineMethod); +} +Oproto = Outline.prototype; +Oproto.SetMethod = function(om) { + var methods = { + block: ['PreDraw','DrawBlock'], + colour: ['PreDraw','DrawColour'], + outline: ['PostDraw','DrawOutline'], + classic: ['LastDraw','DrawOutline'], + none: ['LastDraw'] + }, funcs = methods[om] || methods.outline; + if(om == 'none') { + this.Draw = function() { return 1; } + } else { + this.drawFunc = this[funcs[1]]; + } + this[funcs[0]] = this.Draw; +}; +Oproto.Update = function(x,y,w,h,sc,p,xo,yo) { + var o = this.tc.outlineOffset, o2 = 2 * o; + this.x = sc * x + xo - o; + this.y = sc * y + yo - o; + this.w = sc * w + o2; + this.h = sc * h + o2; + this.sc = sc; // used to determine frontmost + this.z = p.z; +}; +Oproto.DrawOutline = function(c,x,y,w,h,colour) { + c.strokeStyle = colour; + c.strokeRect(x,y,w,h); +}; +Oproto.DrawColour = function(c,x,y,w,h,colour,tag,x1,y1) { + return this[tag.image ? 'DrawColourImage' : 'DrawColourText'](c,x,y,w,h,colour,tag,x1,y1); +}; +Oproto.DrawColourText = function(c,x,y,w,h,colour,tag,x1,y1) { + var normal = tag.colour; + tag.colour = colour; + tag.Draw(c,x1,y1); + tag.colour = normal; + return 1; +}; +Oproto.DrawColourImage = function(c,x,y,w,h,colour,tag,x1,y1) { + var ccanvas = c.canvas, fx = ~~max(x,0), fy = ~~max(y,0), + fw = min(ccanvas.width - fx, w) + .5|0, fh = min(ccanvas.height - fy,h) + .5|0, cc; + if(ocanvas) + ocanvas.width = fw, ocanvas.height = fh; + else + ocanvas = NewCanvas(fw, fh); + if(!ocanvas) + return this.SetMethod('outline'); // if using IE and images, give up! + cc = ocanvas.getContext('2d'); + + cc.drawImage(ccanvas,fx,fy,fw,fh,0,0,fw,fh); + c.clearRect(fx,fy,fw,fh); + tag.Draw(c,x1,y1); + c.setTransform(1,0,0,1,0,0); + c.save(); + c.beginPath(); + c.rect(fx,fy,fw,fh); + c.clip(); + c.globalCompositeOperation = 'source-in'; + c.fillStyle = colour; + c.fillRect(fx,fy,fw,fh); + c.restore(); + c.globalCompositeOperation = 'destination-over'; + c.drawImage(ocanvas,0,0,fw,fh,fx,fy,fw,fh); + c.globalCompositeOperation = 'source-over'; + return 1; +}; +Oproto.DrawBlock = function(c,x,y,w,h,colour) { + c.fillStyle = colour; + c.fillRect(x,y,w,h); +}; +Oproto.DrawSimple = function(c, tag, x1, y1) { + var t = this.tc; + c.setTransform(1,0,0,1,0,0); + c.strokeStyle = t.outlineColour; + c.lineWidth = t.outlineThickness; + c.shadowBlur = c.shadowOffsetX = c.shadowOffsetY = 0; + c.globalAlpha = 1; + return this.drawFunc(c,this.x,this.y,this.w,this.h,t.outlineColour,tag,x1,y1); +}; +Oproto.DrawPulsate = function(c, tag, x1, y1) { + var diff = new Date().valueOf() - this.ts, t = this.tc; + c.setTransform(1,0,0,1,0,0); + c.strokeStyle = t.outlineColour; + c.lineWidth = t.outlineThickness; + c.shadowBlur = c.shadowOffsetX = c.shadowOffsetY = 0; + c.globalAlpha = t.pulsateTo + ((1 - t.pulsateTo) * + (0.5 + (cos(2 * Math.PI * diff / (1000 * t.pulsateTime)) / 2))); + return this.drawFunc(c,this.x,this.y,this.w,this.h,t.outlineColour,tag,x1,y1); +}; +Oproto.Active = function(c,x,y) { + return (x >= this.x && y >= this.y && + x <= this.x + this.w && y <= this.y + this.h); +}; +Oproto.PreDraw = Oproto.PostDraw = Oproto.LastDraw = function() {}; +/** + * @constructor + */ +function Tag(tc,name,a,v,w,h,col,font) { + var c = tc.ctxt, i; + this.tc = tc; + this.image = name.src ? name : null; + this.name = name.src ? '' : name; + this.title = a.title || null; + this.a = a; + this.p3d = { x: v[0] * tc.radius * 1.1, y: v[1] * tc.radius * 1.1, z: v[2] * tc.radius * 1.1}; + this.x = this.y = 0; + this.w = w; + this.h = h; + this.colour = col || tc.textColour; + this.textFont = font || tc.textFont; + this.weight = this.sc = this.alpha = 1; + this.weighted = !tc.weight; + this.outline = new Outline(tc); + if(this.image) { + if(tc.txtOpt && tc.shadow) { + i = AddShadowToImage(this.image,tc.shadow,tc.shadowBlur,tc.shadowOffset); + if(i) { + this.image = i; + this.w = i.width; + this.h = i.height; + } + } + } else { + this.textHeight = tc.textHeight; + this.extents = FindTextBoundingBox(this.name, this.textFont, this.textHeight); + this.Measure(c,tc); + } + this.SetShadowColour = tc.shadowAlpha ? this.SetShadowColourAlpha : this.SetShadowColourFixed; + this.SetDraw(tc); +} +Tproto = Tag.prototype; +Tproto.SetDraw = function(t) { + this.Draw = this.image ? (t.ie > 7 ? this.DrawImageIE : this.DrawImage) : this.DrawText; + t.noSelect && (this.CheckActive = function() {}); +}; +Tproto.Measure = function(c,t) { + this.h = this.extents ? this.extents.max.y + this.extents.min.y : this.textHeight; + c.font = this.font = this.textHeight + 'px ' + this.textFont; + this.w = c.measureText(this.name).width; + if(t.txtOpt) { + var s = t.txtScale, th = s * this.textHeight, f = th + 'px ' + this.textFont, + soff = [s*t.shadowOffset[0],s*t.shadowOffset[1]], cw; + c.font = f; + cw = c.measureText(this.name).width; + this.image = TextToCanvas(this.name, f, th, cw, s * this.h, this.colour, + t.shadow, s * t.shadowBlur, soff, s, s); + if(this.image) { + this.w = this.image.width / s; + this.h = this.image.height / s; + } + this.SetDraw(t); + t.txtOpt = this.image; + } +}; +Tproto.SetWeight = function(w) { + if(!this.name.length) + return; + this.weight = w; + this.Weight(this.tc.ctxt, this.tc); + this.Measure(this.tc.ctxt, this.tc); +}; +Tproto.Weight = function(c,t) { + var w = this.weight, m = t.weightMode; + this.weighted = true; + if(m == 'colour' || m == 'both') + this.colour = FindGradientColour(t, (w - t.min_weight) / (t.max_weight-t.min_weight)); + if(m == 'size' || m == 'both') + this.textHeight = w * t.weightSize; + this.extents = FindTextBoundingBox(this.name, this.textFont, this.textHeight); +}; +Tproto.SetShadowColourFixed = function(c,s,a) { + c.shadowColor = s; +}; +Tproto.SetShadowColourAlpha = function(c,s,a) { + c.shadowColor = SetAlpha(s, a); +}; +Tproto.DrawText = function(c,xoff,yoff) { + var t = this.tc, x = this.x, y = this.y, w, h, s = this.sc; + c.globalAlpha = this.alpha; + c.setTransform(s,0,0,s,0,0); + c.fillStyle = this.colour; + t.shadow && this.SetShadowColour(c,t.shadow,this.alpha); + c.font = this.font; + w = this.w; + h = this.h; + x += (xoff / s) - (w / 2); + y += (yoff / s) - (h / 2); + c.fillText(this.name, x, y); +}; +Tproto.DrawImage = function(c,xoff,yoff) { + //var t = this.tc, x = this.x, y = this.y, s = this.sc, // mod Shad Laws + var x = this.x, y = this.y, s = this.sc, // mod Shad Laws + i = this.image, w = this.w, h = this.h, a = this.alpha, + shadow = this.shadow; + c.globalAlpha = a; + c.setTransform(s,0,0,s,0,0); + c.fillStyle = this.colour; + shadow && this.SetShadowColour(c,shadow,a); + x += (xoff / s) - (w / 2); + y += (yoff / s) - (h / 2); + c.drawImage(i, x, y, w, h); +}; +Tproto.DrawImageIE = function(c,xoff,yoff) { + var i = this.image, s = this.sc, + w = i.width = this.w*s, h = i.height = this.h * s, + x = (this.x*s) + xoff - (w/2), y = (this.y*s) + yoff - (h/2); + c.setTransform(1,0,0,1,0,0); + c.globalAlpha = this.alpha; + c.drawImage(i, x, y); +}; +Tproto.Calc = function(yaw,pitch) { + var pp = RotY(this.p3d,yaw), t = this.tc, mb = t.minBrightness, r = t.radius; + this.p3d = RotX(pp,pitch); + pp = Project(t, this.p3d, this.w, this.h, t.stretchX, t.stretchY); + this.x = pp.x; + this.y = pp.y; + this.sc = (t.z1 + t.z2 - pp.z) / t.z2; + this.alpha = max(mb,min(1,mb + 1 - ((pp.z - t.z2 + r) / (2 * r)))); +}; +Tproto.CheckActive = function(c,xoff,yoff) { + var t = this.tc, o = this.outline, + w = this.w, h = this.h, + x = this.x - w/2, y = this.y - h/2; + o.Update(x, y, w, h, this.sc, this.p3d, xoff, yoff); + return o.Active(c, t.mx, t.my) ? o : null; +}; +Tproto.Clicked = function(e) { + var a = this.a, t = a.target, h = a.href, evt; + if(t != '' && t != '_self') { + if(self.frames[t]) { + self.frames[t] = h; + } else{ + try { + if(top.frames[t]) { + top.frames[t] = h; + return; + } + } catch(err) { + // different domain/port/protocol? + } + window.open(h, t); + } + return; + } + if(doc.createEvent) { + evt = doc.createEvent('MouseEvents'); + evt.initMouseEvent('click', 1, 1, window, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, null); + if(!a.dispatchEvent(evt)) + return; + } else if(a.fireEvent) { + if(!a.fireEvent('onclick')) + return; + } + doc.location = h; +}; +/** + * @constructor + */ +function TagCanvas() { + var i, opts = { + mx: -1, my: -1, + z1: 20000, z2: 20000, z0: 0.0002, + freezeActive: false, + activeCursor: 'pointer', + pulsateTo: 1, + pulsateTime: 3, + reverse: false, + depth: 0.5, + maxSpeed: 0.05, + minSpeed: 0, + decel: 0.95, + interval: 20, + initial: null, + initialDecel: false, // mod Shad Laws + deadZone: 0, // mod Shad Laws + physModel: false, // mod Shad Laws + maxInputZone: 0, // mod Shad Laws + hideTags: true, + minBrightness: 0.1, + outlineColour: '#ffff99', + outlineThickness: 2, + outlineOffset: 5, + outlineMethod: 'outline', + textColour: '#ff99ff', + textHeight: 15, + textFont: 'Helvetica, Arial, sans-serif', + shadow: '#000', + shadowBlur: 0, + shadowOffset: [0,0], + zoom: 1, + weight: false, + weightMode: 'size', + weightFrom: null, + weightSize: 1, + weightGradient: {0:'#f00', 0.33:'#ff0', 0.66:'#0f0', 1:'#00f'}, + txtOpt: true, + txtScale: 2, + frontSelect: false, + wheelZoom: true, + zoomMin: 0.3, + zoomMax: 3, + zoomStep: 0.05, + shape: 'sphere', + lock: null, + tooltip: null, + tooltipDelay: 300, + tooltipClass: 'tctooltip', + radiusX: 1, + radiusY: 1, + radiusZ: 1, + stretchX: 1, + stretchY: 1, + shuffleTags: false, + noSelect: false, + noMouse: false, + imageScale: 1 + }; + for(i in opts) + this[i] = opts[i]; + this.max_weight = 0; + this.min_weight = 200; +} +TCproto = TagCanvas.prototype; +TCproto.Draw = function() { + var cv = this.canvas, cw = cv.width, ch = cv.height, max_sc = 0, yaw = this.yaw, pitch = this.pitch, + x1 = cw / 2, y1 = ch / 2, c = this.ctxt, active, a, i, aindex = -1, tl = this.taglist, l = tl.length, + frontsel = this.frontSelect; + //if(yaw == 0 && pitch == 0 && this.drawn) // mod Shad Laws + if(yaw == 0 && pitch == 0 && this.drawn && !this.zoneActive) // mod Shad Laws + return this.Animate(cw,ch); + c.setTransform(1,0,0,1,0,0); + this.active = null; + for(i = 0; i < l; ++i) + tl[i].Calc(yaw, pitch); + tl = tl.sort(function(a,b) {return a.sc-b.sc}); + + for(i = 0; i < l; ++i) { + a = tl[i].CheckActive(c, x1, y1); + a = this.mx >= 0 && this.my >= 0 && tl[i].CheckActive(c, x1, y1); + if(a && a.sc > max_sc && (!frontsel || a.z <= 0)) { + active = a; + active.index = aindex = i; + max_sc = a.sc; + } + } + this.active = active; + + if(!this.txtOpt && this.shadow) { + c.shadowBlur = this.shadowBlur; + c.shadowOffsetX = this.shadowOffset[0]; + c.shadowOffsetY = this.shadowOffset[1]; + } + c.clearRect(0,0,cw,ch); + for(i = 0; i < l; ++i) { + if(!(aindex == i && active.PreDraw(c, tl[i], x1, y1))) + tl[i].Draw(c, x1, y1); + aindex == i && active.PostDraw(c); + } + if(this.freezeActive && active) { + this.yaw = this.pitch = this.drawn = 0; + } else { + this.Animate(cw, ch); + this.drawn = (l == this.listLength); + } + active && active.LastDraw(c); + cv.style.cursor = active ? this.activeCursor : ''; + this.Tooltip(active,tl[aindex]); +}; +TCproto.TooltipNone = function() { }; +TCproto.TooltipNative = function(active,tag) { + this.canvas.title = active && tag.title ? tag.title : ''; +}; +TCproto.TooltipDiv = function(active,tag) { + //var tc = this, s = tc.ttdiv.style, cid = tc.canvas.id; // mod Shad Laws + var tc = this, s = tc.ttdiv.style; // mod Shad Laws + if(active && tag.title) { + tc.ttdiv.innerHTML = tag.title; + if(s.display == 'none' && ! tc.tttimer) { + tc.tttimer = setTimeout(function() { + var p = $(tc.canvas).offset(); + s.display = 'block'; + s.left = p.left + tc.mx + 'px'; + s.top = p.top + tc.my + 24 + 'px'; + tc.tttimer = null; + }, tc.tooltipDelay); + } + } else { + s.display = 'none'; + } +}; +TCproto.Animate = function(w,h) { // mod Shad Laws - original function afterward + var tc = this; // mod Shad Laws + if(tc.physModel) + /** + * Physics-based model -- mod Shad Laws + * State update equation + * (normalized inertia J=1 and time-step dt=1, forward Euler discretization) + * w1 = w - b*w + m*(u-f) + n*v + * where w1,w,u,f,v are vectors, b,m,n are scalars: + * w = rotational speed at t=k + * components wx, wy, magnitude w + * w1 = rotational speed at t=k+1 + * components wx1, wy1, magnitude w1 + * u-f = actual input from mouse position (-1 <= u-f <= 1) + * components ux, uy, magnitude u + * coulomb friction f (models "deadZone" effect) + * reversed/locked/saturated as defined (models "reverse", "lock", and "maxInputZone" effects) + * v = fictitious input (-1 <= v <= 1) + * components vx, vy, magnitude v + * directed as needed (models "minSpeed" effect) + * b = damping (models "decel" effect) + * m = maximum actual input (models "maxSpeed" effect) + * n = maximum fictitious input (models "minSpeed" effect) + */ + { + var x = tc.mx, y = tc.my, xmax = w-1, ymax = h-1, xstr = tc.stretchX, ystr = tc.stretchY; + var r = tc.reverse ? -1 : 1, l = tc.lock, usat = tc.maxInputZone, zt = tc.z0; + // calculate physical parameters (b,f,m,n) + var b = 1-tc.decel, f = tc.deadZone, m = tc.maxSpeed*b, n = tc.minSpeed*b; + // set rotational velocities, following previous convention where x-rotation is "pitch" and y-rotation is "yaw" + var wx = tc.pitch, wy = tc.yaw, w = sqrt(wx*wx + wy*wy), wx1, wy1, w1; + // calculate inputs + var ux, uy, u, vx, vy, v; + this.zoneActive = false; + if(x >= 0 && y >= 0 && x <= xmax && y <= ymax) + { + // the "max(xmax/ymax,1)" parts are needed to deal with non-square tag clouds correctly + ux = -r * (2 * y/ymax - 1) * max(ymax/xmax,1) / ystr; + uy = r * (2 * x/xmax - 1) * max(xmax/ymax,1) / xstr; + if(abs(ux) <= 1+usat && abs(uy) <= 1+usat) + { + ux = (l != 'y') ? ux : 0; + uy = (l != 'x') ? uy : 0; + u = sqrt(ux*ux + uy*uy); + if(u <= f || f >= 1-zt) // dead zone, zero input + { + this.initial = null; + this.zoneActive = true; + ux = 0, uy = 0, u = 0; + vx = 0, vy = 0, v = 0; + } + else if(u <= 1) // inside cloud, normal input + { + this.initial = null; + this.zoneActive = true; + ux = ux/u*(u-f)/(1-f), uy = uy/u*(u-f)/(1-f), u = (u-f)/(1-f); + vx = 0, vy = 0, v = 0; + } + else if(u <= 1+usat) // just outside cloud, saturated input + { + this.initial = null; + this.zoneActive = true; + ux = ux/u, uy = uy/u, u = 1; + vx = 0, vy = 0, v = 0; + } + } + } + if(!this.zoneActive) // outside cloud, fictitious input + { + ux = 0, uy = 0, u = 0; + if(w >= zt) + vx = wx/w, vy = wy/w, v = 1; + else + { + v = 2*Math.PI*Math.random(); + if(l == 'x') + vx = 0, vy = v= 0 && y >= 0 && x < w && y < h) + { + tc.zoneActive = true; // mod Shad Laws + //s = tc.maxSpeed, r = tc.reverse ? -1 : 1; // mod Shad Laws + s = tc.maxSpeed, r = tc.reverse ? -1 : 1, dz = tc.deadZone; // mod Shad Laws + if(l != 'x') + //this.yaw = r * ((s * 2 * x / w) - s); // mod Shad Laws + this.yaw = r * s / max(1-dz,0.000001) * ( max(2*x/w-1-dz,0) + min(2*x/w-1+dz,0) ); // mod Shad Laws + if(l != 'y') + //this.pitch = r * -((s * 2 * y / h) - s); // mod Shad Laws + this.pitch = -r * s / max(1-dz,0.000001) * ( max(2*y/h-1-dz,0) + min(2*y/h-1+dz,0) ); // mod Shad Laws + this.initial = null; + } + //else if(!tc.initial) // mod Shad Laws + else if(!tc.initial || tc.initialDecel) // mod Shad Laws + { + s = tc.minSpeed, ay = abs(tc.yaw), ap = abs(tc.pitch); + if(l != 'x' && ay > s) + this.yaw = ay > tc.z0 ? tc.yaw * tc.decel : 0; + if(l != 'y' && ap > s) + this.pitch = ap > tc.z0 ? tc.pitch * tc.decel : 0; + } + } +}; +TCproto.Zoom = function(r) { + this.z2 = this.z1 * (1/r); + this.drawn = 0; +}; +TCproto.Clicked = function(e) { + var t = this.taglist, a = this.active; + try { + if(a && t[a.index]) + t[a.index].Clicked(e); + } catch(ex) { + } +}; +TCproto.Wheel = function(i) { + var z = this.zoom + this.zoomStep * (i ? 1 : -1); + this.zoom = min(this.zoomMax,max(this.zoomMin,z)); + this.Zoom(this.zoom); +}; + +TagCanvas.tc = {}; + +jQuery.fn.tagcanvas = function(options,lctr) { + var links, ctr = lctr ? jQuery('#'+lctr) : this; + if(doc.all && !lctr) return false; // IE must have external list + links = ctr.find('a'); + if(Defined(window.G_vmlCanvasManager)) { + this.each(function() { $(this)[0] = window.G_vmlCanvasManager.initElement($(this)[0]); }); + options.ie = parseFloat(navigator.appVersion.split('MSIE')[1]); + } + + if(!links.length || !this[0].getContext || !this[0].getContext('2d').fillText) + return false; + + this.each(function() { + var i, vl, im, ii, tag, jqt, w, weights = [], + pfuncs = { + sphere:PointsOnSphere, + vcylinder:PointsOnCylinderV, + hcylinder:PointsOnCylinderH + }; + + // if using internal links, get only the links for this canvas + lctr || (links = $(this).find('a')); + + jqt = new TagCanvas; + for(i in options) + jqt[i] = options[i]; + + jqt.z1 = (19800 / (Math.exp(jqt.depth) * (1-1/Math.E))) + + 20000 - 19800 / (1-(1/Math.E)); + jqt.z2 = jqt.z1 * (1/jqt.zoom); + + jqt.radius = (this.height > this.width ? this.width : this.height) + * 0.33 * (jqt.z2 + jqt.z1) / (jqt.z1); + //jqt.yaw = jqt.initial ? jqt.initial[0] * jqt.maxSpeed : 0; // mod Shad Laws + //jqt.pitch = jqt.initial ? jqt.initial[1] * jqt.maxSpeed : 0; // mod Shad Laws + jqt.yaw = jqt.initial && (jqt.lock != 'x') ? jqt.initial[0] * jqt.maxSpeed : 0; + jqt.pitch = jqt.initial && (jqt.lock != 'y') ? jqt.initial[1] * jqt.maxSpeed : 0; + jqt.canvas = $(this)[0]; + jqt.ctxt = jqt.canvas.getContext('2d'); + jqt.textFont = jqt.textFont && FixFont(jqt.textFont); + jqt.deadZone *= 1; // mod Shad Laws + jqt.minSpeed *= 1; // mod Shad Laws + jqt.decel *= 1; // mod Shad Laws + jqt.maxInputZone *= 1; // mod Shad Laws + jqt.pulsateTo *= 1; + jqt.textHeight *= 1; + jqt.minBrightness *= 1; + jqt.ctxt.textBaseline = 'top'; + if(jqt.shadowBlur || jqt.shadowOffset[0] || jqt.shadowOffset[1]) { + // let the browser translate "red" into "#ff0000" + jqt.ctxt.shadowColor = jqt.shadow; + jqt.shadow = jqt.ctxt.shadowColor; + jqt.shadowAlpha = ShadowAlphaBroken(); + } else { + delete jqt.shadow; + } + jqt.taglist = []; + + jqt.shape = pfuncs[jqt.shape] || pfuncs.sphere; + vl = jqt.shape(links.length, jqt.radiusX, jqt.radiusY, jqt.radiusZ); + jqt.shuffleTags && Shuffle(vl); + jqt.listLength = links.length; + for(i = 0; i < links.length; ++i) { + im = links[i].getElementsByTagName('img'); + if(im.length) { + ii = new Image; + ii.src = im[0].src; + tag = new Tag(jqt,ii, links[i], vl[i], 1, 1); + AddImage(ii,im[0],tag,jqt); + } else { + jqt.taglist.push(new Tag(jqt,links[i].innerText || links[i].textContent, links[i], + vl[i], 2, jqt.textHeight + 2, jqt.textColour || GetProperty(links[i],'color'), + jqt.textFont || FixFont(GetProperty(links[i],'font-family')))); + } + if(jqt.weight) { + w = FindWeight(jqt,links[i]); + if(w > jqt.max_weight) jqt.max_weight = w; + if(w < jqt.min_weight) jqt.min_weight = w; + weights.push(w); + } + } + if(jqt.weight = (jqt.max_weight > jqt.min_weight)) { + for(i = 0; i < jqt.taglist.length; ++i) { + jqt.taglist[i].SetWeight(weights[i]); + } + } + + TagCanvas.tc[$(this)[0].id] = jqt; + jqt.Tooltip = (jqt.tooltip == 'native' ? jqt.TooltipNative : (jqt.tooltip ? jqt.TooltipDiv : jqt.TooltipNone)); + if(jqt.tooltip) { + if(jqt.tooltip == 'native') { + jqt.Tooltip = jqt.TooltipNative; + } else { + jqt.Tooltip = jqt.TooltipDiv; + if(!jqt.ttdiv) { + jqt.ttdiv = doc.createElement('div'); + jqt.ttdiv.className = jqt.tooltipClass; + jqt.ttdiv.style.position = 'absolute'; + jqt.ttdiv.style.zIndex = jqt.canvas.style.zIndex + 1; + AddHandler('mouseover',function(e){e.target.style.display='none';},jqt.ttdiv); + doc.body.appendChild(jqt.ttdiv); + } + } + } else { + jqt.Tooltip = jqt.TooltipNone; + } + if(!jqt.noMouse && !handlers[$(this)[0].id]) { + // for some reason, using bind with mouseup isn't working in IE + AddHandler('mousemove', MouseMove, this); + AddHandler('mouseout', MouseOut, this); + AddHandler('mouseup', MouseClick, this); + if(jqt.wheelZoom) { + AddHandler('mousewheel', MouseWheel, this); + AddHandler('DOMMouseScroll', MouseWheel, this); + } + handlers[$(this)[0].id] = 1; + } + if(lctr && jqt.hideTags) { + if(TagCanvas.loaded) + $(ctr).hide(); + else + AddHandler('load', function() { $(ctr).hide() }, window); + } + options.interval = options.interval || jqt.interval; + }); + return !!(TagCanvas.started || (TagCanvas.started = setInterval(DrawCanvas, options.interval))); +}; +// set a flag for when the window has loaded +AddHandler('load',function(){TagCanvas.loaded=1;},window); +})(jQuery); diff --git a/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.min.js b/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.min.js new file mode 100755 index 0000000..b4f0191 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/js/jquery.tagcanvas.mod.min.js @@ -0,0 +1,30 @@ +/** + * Copyright (C) 2010-2012 Graham Breach + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program. If not, see . + */ +/** + * jQuery.tagcanvas 1.17.1 + * For more information, please contact + */ +/** + * Modified by Shad Laws 2012/06/08 -- all modified lines have "mod Shad Laws" comments + * - built a physics-based model for motion, which is activated with the physModel flag + * - included initialDecel, deadZone, maxInputZone, and physModel as options + * - set defaults of new options to mimic behavior without them (false, 0, 0, and false) + * - removed two unnecessary variable declarations caught by YUI Compressor + * - fixed initialization of a few variables (minSpeed, decel, yaw/pitch) + * - fixed problem with html margin-top changing coordinates in IE (but not Chrome or Firefox) + */ +(function(I){var S,R,G=Math.abs,r=Math.sin,h=Math.cos,z=Math.max,W=Math.min,M=Math.sqrt,B={},C={},D={0:"0,",1:"17,",2:"34,",3:"51,",4:"68,",5:"85,",6:"102,",7:"119,",8:"136,",9:"153,",a:"170,",A:"170,",b:"187,",B:"187,",c:"204,",C:"204,",d:"221,",D:"221,",e:"238,",E:"238,",f:"255,",F:"255,"},e,J,d,l=document,y,c={};for(S=0;S<256;++S){R=S.toString(16);if(S<16){R="0"+R}C[R]=C[R.toUpperCase()]=S.toString()+","}function O(i){return typeof(i)!="undefined"}function H(j){var Z=j.length-1,Y,aa;while(Z){aa=~~(Math.random()*Z);Y=j[Z];j[Z]=j[aa];j[aa]=Y;--Z}}function n(Z,ab,ag,ad){var ac,af,j,ae,ah=[],aa=Math.PI*(3-Math.sqrt(5)),Y=2/Z;for(ac=0;ac0)}function X(af,j){var Y=1024,ab=af.weightGradient,aa,ad,Z,ae,ac;if(af.gCanvas){ad=af.gCanvas.getContext("2d")}else{af.gCanvas=aa=g(Y,1);if(!aa){return null}ad=aa.getContext("2d");ae=ad.createLinearGradient(0,0,Y,0);for(Z in ab){ae.addColorStop(1-Z,ab[Z])}ad.fillStyle=ae;ad.fillRect(0,0,Y,1)}ac=ad.getImageData(~~((Y-1)*j),0,1,1).data;return"rgba("+ac[0]+","+ac[1]+","+ac[2]+","+(ac[3]/255)+")"}function u(ab,aa,Y,ae,ac,ad,j){var Z=(ad||0)+(j&&j[0]<0?G(j[0]):0),i=(ad||0)+(j&&j[1]<0?G(j[1]):0);ab.font=aa;ab.textBaseline="top";ab.fillStyle=Y;ac&&(ab.shadowColor=ac);ad&&(ab.shadowBlur=ad);j&&(ab.shadowOffsetX=j[0],ab.shadowOffsetY=j[1]);ab.fillText(ae,Z,i)}function m(ak,ac,ag,ai,ab,Y,ae,af,j,aj,ah){var Z=ai+G(j[0])+af+af,i=ab+G(j[1])+af+af,aa,ad;aa=g(Z+aj,i+ah);if(!aa){return null}ad=aa.getContext("2d");u(ad,ac,Y,ak,ae,af,j);return aa}function Q(ac,af,ag,Z){var aa=ac.width+G(Z[0])+ag+ag,j=ac.height+G(Z[1])+ag+ag,ad,ae,ab=(ag||0)+(Z&&Z[0]<0?G(Z[0]):0),Y=(ag||0)+(Z&&Z[1]<0?G(Z[1]):0);ad=g(aa,j);if(!ad){return null}ae=ad.getContext("2d");af&&(ae.shadowColor=af);ag&&(ae.shadowBlur=ag);Z&&(ae.shadowOffsetX=Z[0],ae.shadowOffsetY=Z[1]);ae.drawImage(ac,ab,Y);return ad}function K(ak,ac,ai){var aj=parseInt(ak.length*ai),ab=parseInt(ai*2),Z=g(aj,ab),af,j,aa,ae,ah,ag,Y,ad;if(!Z){return null}af=Z.getContext("2d");af.fillStyle="#000";af.fillRect(0,0,aj,ab);u(af,ai+"px "+ac,"#fff",ak);j=af.getImageData(0,0,aj,ab);aa=j.width;ae=j.height;ad={min:{x:aa,y:ae},max:{x:-1,y:-1}};for(ag=0;ag0){if(ahad.max.x){ad.max.x=ah}if(agad.max.y){ad.max.y=ag}}}}if(aa!=aj){ad.min.x*=(aj/aa);ad.max.x*=(aj/aa)}if(ae!=ab){ad.min.y*=(aj/ae);ad.max.y*=(aj/ae)}Z=null;return ad}function t(i){return"'"+i.replace(/(\'|\")/g,"").replace(/\s*,\s*/g,"', '")+"'"}function A(i,j,Y){Y=Y||l;if(Y.addEventListener){Y.addEventListener(i,j,false)}else{Y.attachEvent("on"+i,j)}}function P(aa,ac,Z,j){var Y=j.taglist,ab=j.imageScale;if(ab&&!(ac.width&&ac.height)){A("load",function(){P(aa,ac,Z,j)},window);return}if(!aa.complete){A("load",function(){P(aa,ac,Z,j)},aa);return}ac.width=ac.width;ac.height=ac.height;if(ab){aa.width=ac.width*ab;aa.height=ac.height*ab}Z.w=aa.width;Z.h=aa.height;Y.push(Z)}function N(Z,Y){var j=l.defaultView,i=Y.replace(/\-([a-z])/g,function(aa){return aa.charAt(1).toUpperCase()});return(j&&j.getComputedStyle&&j.getComputedStyle(Z,null).getPropertyValue(Y))||(Z.currentStyle&&Z.currentStyle[i])}function x(Y,j){var i=1,Z;if(Y.weightFrom){i=1*(j.getAttribute(Y.weightFrom)||Y.textHeight)}else{if(Z=N(j,"font-size")){i=(Z.indexOf("px")>-1&&Z.replace("px","")*1)||(Z.indexOf("pt")>-1&&Z.replace("pt","")*1.25)||Z*3.3}else{Y.weight=false}}return i}function k(Y){L(Y);var j=Y.target||Y.fromElement.parentNode,i=s.tc[j.id];i&&(i.mx=i.my=-1)}function L(aa){var Z,Y,j=l.documentElement,ab;for(Z in s.tc){Y=s.tc[Z];if(Y.tttimer){clearTimeout(Y.tttimer);Y.tttimer=null}ab=I(Y.canvas).offset();if(aa.offsetX){Y.mx=aa.offsetX;Y.my=aa.offsetY}else{if(aa.pageX){Y.mx=aa.pageX-ab.left;Y.my=aa.pageY-ab.top}else{Y.mx=aa.clientX+(j.scrollLeft||l.body.scrollLeft)-ab.left;Y.my=aa.clientY+(j.scrollTop||l.body.scrollTop)-ab.top}}}}function q(Z){var j=s,i=l.addEventListener?0:1,Y=Z.target&&O(Z.target.id)?Z.target.id:Z.srcElement.parentNode.id;if(Y&&Z.button==i&&j.tc[Y]){L(Z);j.tc[Y].Clicked(Z)}}function U(Y){var i=s,j=Y.target&&O(Y.target.id)?Y.target.id:Y.srcElement.parentNode.id;if(j&&i.tc[j]){Y.cancelBubble=true;Y.returnValue=false;Y.preventDefault&&Y.preventDefault();i.tc[j].Wheel((Y.wheelDelta||Y.detail)>0)}}function o(){var Y=s.tc,j;for(j in Y){Y[j].Draw()}}function b(Y,i){var j=r(i),Z=h(i);return{x:Y.x,y:(Y.y*Z)+(Y.z*j),z:(Y.y*-j)+(Y.z*Z)}}function a(Y,i){var j=r(i),Z=h(i);return{x:(Y.x*Z)+(Y.z*-j),y:Y.y,z:(Y.x*j)+(Y.z*Z)}}function T(Y,af,ae,aa,ad,ab){var i,Z,ac,j=Y.z1/(Y.z1+Y.z2+af.z);i=af.y*j*ab;Z=af.x*j*ad;ac=Y.z2+af.z;return{x:Z,y:i,z:ac}}function f(i){this.ts=new Date().valueOf();this.tc=i;this.x=this.y=this.w=this.h=this.sc=1;this.z=0;this.Draw=i.pulsateTo<1&&i.outlineMethod!="colour"?this.DrawPulsate:this.DrawSimple;this.SetMethod(i.outlineMethod)}e=f.prototype;e.SetMethod=function(Y){var j={block:["PreDraw","DrawBlock"],colour:["PreDraw","DrawColour"],outline:["PostDraw","DrawOutline"],classic:["LastDraw","DrawOutline"],none:["LastDraw"]},i=j[Y]||j.outline;if(Y=="none"){this.Draw=function(){return 1}}else{this.drawFunc=this[i[1]]}this[i[0]]=this.Draw};e.Update=function(ae,ad,af,ab,ac,j,aa,i){var Y=this.tc.outlineOffset,Z=2*Y;this.x=ac*ae+aa-Y;this.y=ac*ad+i-Y;this.w=ac*af+Z;this.h=ac*ab+Z;this.sc=ac;this.z=j.z};e.DrawOutline=function(ab,i,aa,j,Y,Z){ab.strokeStyle=Z;ab.strokeRect(i,aa,j,Y)};e.DrawColour=function(Z,ac,aa,ad,Y,i,ae,j,ab){return this[ae.image?"DrawColourImage":"DrawColourText"](Z,ac,aa,ad,Y,i,ae,j,ab)};e.DrawColourText=function(aa,ad,ab,ae,Y,i,af,j,ac){var Z=af.colour;af.colour=i;af.Draw(aa,j,ac);af.colour=Z;return 1};e.DrawColourImage=function(ad,ag,ae,ah,ac,i,ak,j,af){var ai=ad.canvas,aa=~~z(ag,0),Z=~~z(ae,0),ab=W(ai.width-aa,ah)+0.5|0,aj=W(ai.height-Z,ac)+0.5|0,Y;if(y){y.width=ab,y.height=aj}else{y=g(ab,aj)}if(!y){return this.SetMethod("outline")}Y=y.getContext("2d");Y.drawImage(ai,aa,Z,ab,aj,0,0,ab,aj);ad.clearRect(aa,Z,ab,aj);ak.Draw(ad,j,af);ad.setTransform(1,0,0,1,0,0);ad.save();ad.beginPath();ad.rect(aa,Z,ab,aj);ad.clip();ad.globalCompositeOperation="source-in";ad.fillStyle=i;ad.fillRect(aa,Z,ab,aj);ad.restore();ad.globalCompositeOperation="destination-over";ad.drawImage(y,0,0,ab,aj,aa,Z,ab,aj);ad.globalCompositeOperation="source-over";return 1};e.DrawBlock=function(ab,i,aa,j,Y,Z){ab.fillStyle=Z;ab.fillRect(i,aa,j,Y)};e.DrawSimple=function(aa,i,j,Z){var Y=this.tc;aa.setTransform(1,0,0,1,0,0);aa.strokeStyle=Y.outlineColour;aa.lineWidth=Y.outlineThickness;aa.shadowBlur=aa.shadowOffsetX=aa.shadowOffsetY=0;aa.globalAlpha=1;return this.drawFunc(aa,this.x,this.y,this.w,this.h,Y.outlineColour,i,j,Z)};e.DrawPulsate=function(ab,i,j,Z){var aa=new Date().valueOf()-this.ts,Y=this.tc;ab.setTransform(1,0,0,1,0,0);ab.strokeStyle=Y.outlineColour;ab.lineWidth=Y.outlineThickness;ab.shadowBlur=ab.shadowOffsetX=ab.shadowOffsetY=0;ab.globalAlpha=Y.pulsateTo+((1-Y.pulsateTo)*(0.5+(h(2*Math.PI*aa/(1000*Y.pulsateTime))/2)));return this.drawFunc(ab,this.x,this.y,this.w,this.h,Y.outlineColour,i,j,Z)};e.Active=function(Y,i,j){return(i>=this.x&&j>=this.y&&i<=this.x+this.w&&j<=this.y+this.h)};e.PreDraw=e.PostDraw=e.LastDraw=function(){};function E(aa,j,ae,ag,af,ac,Y,Z){var ad=aa.ctxt,ab;this.tc=aa;this.image=j.src?j:null;this.name=j.src?"":j;this.title=ae.title||null;this.a=ae;this.p3d={x:ag[0]*aa.radius*1.1,y:ag[1]*aa.radius*1.1,z:ag[2]*aa.radius*1.1};this.x=this.y=0;this.w=af;this.h=ac;this.colour=Y||aa.textColour;this.textFont=Z||aa.textFont;this.weight=this.sc=this.alpha=1;this.weighted=!aa.weight;this.outline=new f(aa);if(this.image){if(aa.txtOpt&&aa.shadow){ab=Q(this.image,aa.shadow,aa.shadowBlur,aa.shadowOffset);if(ab){this.image=ab;this.w=ab.width;this.h=ab.height}}}else{this.textHeight=aa.textHeight;this.extents=K(this.name,this.textFont,this.textHeight);this.Measure(ad,aa)}this.SetShadowColour=aa.shadowAlpha?this.SetShadowColourAlpha:this.SetShadowColourFixed;this.SetDraw(aa)}J=E.prototype;J.SetDraw=function(i){this.Draw=this.image?(i.ie>7?this.DrawImageIE:this.DrawImage):this.DrawText;i.noSelect&&(this.CheckActive=function(){})};J.Measure=function(ac,j){this.h=this.extents?this.extents.max.y+this.extents.min.y:this.textHeight;ac.font=this.font=this.textHeight+"px "+this.textFont;this.w=ac.measureText(this.name).width;if(j.txtOpt){var Z=j.txtScale,aa=Z*this.textHeight,ab=aa+"px "+this.textFont,Y=[Z*j.shadowOffset[0],Z*j.shadowOffset[1]],i;ac.font=ab;i=ac.measureText(this.name).width;this.image=m(this.name,ab,aa,i,Z*this.h,this.colour,j.shadow,Z*j.shadowBlur,Y,Z,Z);if(this.image){this.w=this.image.width/Z;this.h=this.image.height/Z}this.SetDraw(j);j.txtOpt=this.image}};J.SetWeight=function(i){if(!this.name.length){return}this.weight=i;this.Weight(this.tc.ctxt,this.tc);this.Measure(this.tc.ctxt,this.tc)};J.Weight=function(Z,Y){var j=this.weight,i=Y.weightMode;this.weighted=true;if(i=="colour"||i=="both"){this.colour=X(Y,(j-Y.min_weight)/(Y.max_weight-Y.min_weight))}if(i=="size"||i=="both"){this.textHeight=j*Y.weightSize}this.extents=K(this.name,this.textFont,this.textHeight)};J.SetShadowColourFixed=function(Y,j,i){Y.shadowColor=j};J.SetShadowColourAlpha=function(Y,j,i){Y.shadowColor=p(j,i)};J.DrawText=function(Y,ac,j){var ad=this.tc,aa=this.x,Z=this.y,ab,i,ae=this.sc;Y.globalAlpha=this.alpha;Y.setTransform(ae,0,0,ae,0,0);Y.fillStyle=this.colour;ad.shadow&&this.SetShadowColour(Y,ad.shadow,this.alpha);Y.font=this.font;ab=this.w;i=this.h;aa+=(ac/ae)-(ab/2);Z+=(j/ae)-(i/2);Y.fillText(this.name,aa,Z)};J.DrawImage=function(aa,ag,Z){var ad=this.x,ab=this.y,ah=this.sc,j=this.image,ae=this.w,Y=this.h,ac=this.alpha,af=this.shadow;aa.globalAlpha=ac;aa.setTransform(ah,0,0,ah,0,0);aa.fillStyle=this.colour;af&&this.SetShadowColour(aa,af,ac);ad+=(ag/ah)-(ae/2);ab+=(Z/ah)-(Y/2);aa.drawImage(j,ad,ab,ae,Y)};J.DrawImageIE=function(aa,ae,Z){var j=this.image,af=this.sc,ad=j.width=this.w*af,Y=j.height=this.h*af,ac=(this.x*af)+ae-(ad/2),ab=(this.y*af)+Z-(Y/2);aa.setTransform(1,0,0,1,0,0);aa.globalAlpha=this.alpha;aa.drawImage(j,ac,ab)};J.Calc=function(aa,Z){var i=a(this.p3d,aa),j=this.tc,ab=j.minBrightness,Y=j.radius;this.p3d=b(i,Z);i=T(j,this.p3d,this.w,this.h,j.stretchX,j.stretchY);this.x=i.x;this.y=i.y;this.sc=(j.z1+j.z2-i.z)/j.z2;this.alpha=z(ab,W(1,ab+1-((i.z-j.z2+Y)/(2*Y))))};J.CheckActive=function(Z,ad,Y){var ae=this.tc,i=this.outline,ac=this.w,j=this.h,ab=this.x-ac/2,aa=this.y-j/2;i.Update(ab,aa,ac,j,this.sc,this.p3d,ad,Y);return i.Active(Z,ae.mx,ae.my)?i:null};J.Clicked=function(ab){var j=this.a,Y=j.target,Z=j.href,i;if(Y!=""&&Y!="_self"){if(self.frames[Y]){self.frames[Y]=Z}else{try{if(top.frames[Y]){top.frames[Y]=Z;return}}catch(aa){}window.open(Z,Y)}return}if(l.createEvent){i=l.createEvent("MouseEvents");i.initMouseEvent("click",1,1,window,0,0,0,0,0,0,0,0,0,0,null);if(!j.dispatchEvent(i)){return}}else{if(j.fireEvent){if(!j.fireEvent("onclick")){return}}}l.location=Z};function s(){var j,Y={mx:-1,my:-1,z1:20000,z2:20000,z0:0.0002,freezeActive:false,activeCursor:"pointer",pulsateTo:1,pulsateTime:3,reverse:false,depth:0.5,maxSpeed:0.05,minSpeed:0,decel:0.95,interval:20,initial:null,initialDecel:false,deadZone:0,physModel:false,maxInputZone:0,hideTags:true,minBrightness:0.1,outlineColour:"#ffff99",outlineThickness:2,outlineOffset:5,outlineMethod:"outline",textColour:"#ff99ff",textHeight:15,textFont:"Helvetica, Arial, sans-serif",shadow:"#000",shadowBlur:0,shadowOffset:[0,0],zoom:1,weight:false,weightMode:"size",weightFrom:null,weightSize:1,weightGradient:{0:"#f00",0.33:"#ff0",0.66:"#0f0",1:"#00f"},txtOpt:true,txtScale:2,frontSelect:false,wheelZoom:true,zoomMin:0.3,zoomMax:3,zoomStep:0.05,shape:"sphere",lock:null,tooltip:null,tooltipDelay:300,tooltipClass:"tctooltip",radiusX:1,radiusY:1,radiusZ:1,stretchX:1,stretchY:1,shuffleTags:false,noSelect:false,noMouse:false,imageScale:1};for(j in Y){this[j]=Y[j]}this.max_weight=0;this.min_weight=200}d=s.prototype;d.Draw=function(){var ah=this.canvas,af=ah.width,Y=ah.height,j=0,ae=this.yaw,Z=this.pitch,aa=af/2,ak=Y/2,ai=this.ctxt,ac,aj,ag,ad=-1,am=this.taglist,ab=am.length,al=this.frontSelect;if(ae==0&&Z==0&&this.drawn&&!this.zoneActive){return this.Animate(af,Y)}ai.setTransform(1,0,0,1,0,0);this.active=null;for(ag=0;ag=0&&this.my>=0&&am[ag].CheckActive(ai,aa,ak);if(aj&&aj.sc>j&&(!al||aj.z<=0)){ac=aj;ac.index=ad=ag;j=aj.sc}}this.active=ac;if(!this.txtOpt&&this.shadow){ai.shadowBlur=this.shadowBlur;ai.shadowOffsetX=this.shadowOffset[0];ai.shadowOffsetY=this.shadowOffset[1]}ai.clearRect(0,0,af,Y);for(ag=0;ag=0&&aa>=0&&ac<=aq&&aa<=ax){Y=-aj*(2*aa/ax-1)*z(ax/aq,1)/av;j=aj*(2*ac/aq-1)*z(aq/ax,1)/ai;if(G(Y)<=1+al&&G(j)<=1+al){Y=(au!="y")?Y:0;j=(au!="x")?j:0;ag=M(Y*Y+j*j);if(ag<=az||az>=1-i){this.initial=null;this.zoneActive=true;Y=0,j=0,ag=0;am=0,ak=0,af=0}else{if(ag<=1){this.initial=null;this.zoneActive=true;Y=Y/ag*(ag-az)/(1-az),j=j/ag*(ag-az)/(1-az),ag=(ag-az)/(1-az);am=0,ak=0,af=0}else{if(ag<=1+al){this.initial=null;this.zoneActive=true;Y=Y/ag,j=j/ag,ag=1;am=0,ak=0,af=0}}}}}if(!this.zoneActive){Y=0,j=0,ag=0;if(ae>=i){am=aC/ae,ak=aB/ae,af=1}else{af=2*Math.PI*Math.random();if(au=="x"){am=0,ak=af=0&&aa>=0&&acah){this.yaw=ab>Z.z0?Z.yaw*Z.decel:0}if(au!="y"&&an>ah){this.pitch=an>Z.z0?Z.pitch*Z.decel:0}}}}};d.Zoom=function(i){this.z2=this.z1*(1/i);this.drawn=0};d.Clicked=function(Z){var Y=this.taglist,i=this.active;try{if(i&&Y[i.index]){Y[i.index].Clicked(Z)}}catch(j){}};d.Wheel=function(j){var Y=this.zoom+this.zoomStep*(j?1:-1);this.zoom=W(this.zoomMax,z(this.zoomMin,Y));this.Zoom(this.zoom)};s.tc={};jQuery.fn.tagcanvas=function(Y,j){var i,Z=j?jQuery("#"+j):this;if(l.all&&!j){return false}i=Z.find("a");if(O(window.G_vmlCanvasManager)){this.each(function(){I(this)[0]=window.G_vmlCanvasManager.initElement(I(this)[0])});Y.ie=parseFloat(navigator.appVersion.split("MSIE")[1])}if(!i.length||!this[0].getContext||!this[0].getContext("2d").fillText){return false}this.each(function(){var ac,aa,ae,ah,ai,ad,ag,af=[],ab={sphere:n,vcylinder:w,hcylinder:F};j||(i=I(this).find("a"));ad=new s;for(ac in Y){ad[ac]=Y[ac]}ad.z1=(19800/(Math.exp(ad.depth)*(1-1/Math.E)))+20000-19800/(1-(1/Math.E));ad.z2=ad.z1*(1/ad.zoom);ad.radius=(this.height>this.width?this.width:this.height)*0.33*(ad.z2+ad.z1)/(ad.z1);ad.yaw=ad.initial&&(ad.lock!="x")?ad.initial[0]*ad.maxSpeed:0;ad.pitch=ad.initial&&(ad.lock!="y")?ad.initial[1]*ad.maxSpeed:0;ad.canvas=I(this)[0];ad.ctxt=ad.canvas.getContext("2d");ad.textFont=ad.textFont&&t(ad.textFont);ad.deadZone*=1;ad.minSpeed*=1;ad.decel*=1;ad.maxInputZone*=1;ad.pulsateTo*=1;ad.textHeight*=1;ad.minBrightness*=1;ad.ctxt.textBaseline="top";if(ad.shadowBlur||ad.shadowOffset[0]||ad.shadowOffset[1]){ad.ctxt.shadowColor=ad.shadow;ad.shadow=ad.ctxt.shadowColor;ad.shadowAlpha=v()}else{delete ad.shadow}ad.taglist=[];ad.shape=ab[ad.shape]||ab.sphere;aa=ad.shape(i.length,ad.radiusX,ad.radiusY,ad.radiusZ);ad.shuffleTags&&H(aa);ad.listLength=i.length;for(ac=0;acad.max_weight){ad.max_weight=ag}if(agad.min_weight)){for(ac=0;acvalue)) { + if (!is_null($min) && ($this->value < $min)) { + // below min + $this->errors['numrange'] = true; + $this->error_messages['numrange'] = t('Value is below minimum of').' '.$min; + } elseif (!is_null($max) && ($this->value > $max)) { + // above max + $this->errors['numrange'] = true; + $this->error_messages['numrange'] = t('Value is above maximum of').' '.$max;; + } + } else { + // not numeric + $this->errors['numrange'] = true; + $this->error_messages['numrange'] = t('Value is not numeric'); + } + } + + /** + * Custom validation rule: color + * returns no error if string is formatted as #hhhhhh OR if string is empty + * to exclude the empty case, add "required" as another rule + */ + protected function rule_color() { + if (preg_match("/^#[0-9A-Fa-f]{6}$|^$/", $this->value) == 0) { + $this->errors['color'] = true; + $this->error_messages['color'] = t('Color is not in #hhhhhh format'); + } + } +} \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/module.info b/modules/.not-used/tag_cloud_html5/module.info new file mode 100755 index 0000000..e158d15 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/module.info @@ -0,0 +1,7 @@ +name = "Tag Cloud HTML5" +description = "HTML5-compliant tag cloud. Functions as non-Flash replacements for both 'tag_cloud' and 'tag_cloud_page' modules, with some extra features added." +version = 7 +author_name = "Shad Laws" +author_url = "" +info_url = "http://codex.gallery2.org/Gallery3:Modules:tag_cloud_html5" +discuss_url = "http://gallery.menalto.com/node/106774" \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/views/admin_tag_cloud_html5.html.php b/modules/.not-used/tag_cloud_html5/views/admin_tag_cloud_html5.html.php new file mode 100755 index 0000000..026624a --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/views/admin_tag_cloud_html5.html.php @@ -0,0 +1,29 @@ + + +
    +

    + +

    +

    +
    + TagCanvas: ".t("a non-flash, HTML5-compliant jQuery plugin.") ?>
    + excanvas: ".t("maintains canvas compatibility with pre-9.0 Internet Explorer, and does not load if not needed.") ?>
    + + +

    +

    +
    +
    +
    +
    + +

    +

    +
    +
    + +

    + +
    diff --git a/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_block.html.php b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_block.html.php new file mode 100755 index 0000000..80360fe --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_block.html.php @@ -0,0 +1,40 @@ + + + +
    + + + +
    +
    + +
    + + diff --git a/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_embed.html.php b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_embed.html.php new file mode 100755 index 0000000..99e5af4 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_embed.html.php @@ -0,0 +1,59 @@ + + + +
    + + + +
    + \ No newline at end of file diff --git a/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_page.html.php b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_page.html.php new file mode 100755 index 0000000..2b6fa62 --- /dev/null +++ b/modules/.not-used/tag_cloud_html5/views/tag_cloud_html5_page.html.php @@ -0,0 +1,40 @@ + + + +
    +
    + dynamic_top() ?> +
    +

    +
    +
    + + + +
    +
    + +
    +dynamic_bottom() ?> \ No newline at end of file diff --git a/modules/.not-used/user_albums/helpers/user_albums_event.php b/modules/.not-used/user_albums/helpers/user_albums_event.php new file mode 100755 index 0000000..1abb3df --- /dev/null +++ b/modules/.not-used/user_albums/helpers/user_albums_event.php @@ -0,0 +1,53 @@ +name}"; + $group = identity::lookup_group_by_name($group_name); + if (!$group) { + $group = identity::create_group($group_name); + identity::add_user_to_group($user, $group); + } + + // Create an album for the user, if it doesn't exist + $album = ORM::factory("item") + ->where("parent_id", "=", item::root()->id) + ->where("name", "=", $user->name) + ->find(); + if (!$album->loaded()) { + $album->type = "album"; + $album->name = $user->name; + $album->title = "{$user->name}'s album"; + $album->parent_id = item::root()->id; + $album->sort_column = "weight"; + $album->sort_order = "asc"; + $album->save(); + + access::allow($group, "view", item::root()); + access::allow($group, "view_full", $album); + access::allow($group, "edit", $album); + access::allow($group, "add", $album); + } + } +} diff --git a/modules/.not-used/user_albums/module.info b/modules/.not-used/user_albums/module.info new file mode 100755 index 0000000..548ea98 --- /dev/null +++ b/modules/.not-used/user_albums/module.info @@ -0,0 +1,7 @@ +name = "User Albums" +description = "Create a personal album for new users" +version = 1 +author_name = "" +author_url = "" +info_url = "http://codex.gallery2.org/Gallery3:Modules:user_albums" +discuss_url = "http://gallery.menalto.com/forum_module_user_albums" diff --git a/modules/albumtree/helpers/albumtree_block.php b/modules/albumtree/helpers/albumtree_block.php new file mode 100755 index 0000000..3ae36fb --- /dev/null +++ b/modules/albumtree/helpers/albumtree_block.php @@ -0,0 +1,38 @@ + t("Album tree")); + } + + static function get($block_id) { + $block = new Block(); + switch ($block_id) { + case "albumtree": + $style = module::get_var("albumtree", "style", "select"); + $block->css_id = "g-albumtree"; + $block->title = t("Album Tree"); + $block->content = new View("albumtree_block_{$style}.html"); + $block->content->root = item::root(); + break; + } + return $block; + } +} \ No newline at end of file diff --git a/modules/albumtree/helpers/albumtree_installer.php b/modules/albumtree/helpers/albumtree_installer.php new file mode 100755 index 0000000..17ff86f --- /dev/null +++ b/modules/albumtree/helpers/albumtree_installer.php @@ -0,0 +1,33 @@ +mYc?Kr_IsGe7zvW*%XUnbb L&G+VrGgt!vQpOa` literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/join.gif b/modules/albumtree/images/join.gif new file mode 100755 index 0000000000000000000000000000000000000000..993ce38aa143566daf7088f7078dda1b046ef635 GIT binary patch literal 1621 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z+uF|$|0knz;LjcLs-iuqhR6Tb{1);IV%E`j&?KiX6c-`sN~ir?_9;hS*YUK MuIA6h!NFh+0FEsh5&!@I literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/join_rtl.gif b/modules/albumtree/images/join_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..d1ab22637e6807252daf82ca553e0b720c294674 GIT binary patch literal 1619 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z+u3^$|2)nz;LjcLs-iuqhR6Tc2-5Nk{bn&oSG$AQ`Tf`TBo6=p literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/nolines_minus.gif b/modules/albumtree/images/nolines_minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..4dcc830f2aaf278cfc44631a57a42a5a7e9fa68a GIT binary patch literal 1627 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z+u6_$|2*iVZp&>4q>gB83ql9+xeyCcoZ%wxVDIMr)|+-P&(Qxr5?u98K~mc SFDSVx=H#ZO-Ytxb4AuZvI30Tc literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/nolines_plus.gif b/modules/albumtree/images/nolines_plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..7fb90a60def0503e79569f579598a74f6f4cc550 GIT binary patch literal 1630 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z+uh6$|2*iVZp&>4q>gB83ql9+xeyCcoYH^T)RbCW3FfjDjn@*Gw(WMA*6Vs WQJu4@<-~@ir>7evtMPC!SOWmMw;xUb literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/plus.gif b/modules/albumtree/images/plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..818aadb15cb395206cb498ffb2a4ad14815c7739 GIT binary patch literal 1636 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z~RWi$|0knz;LjcLs-iuqhR6Tc19(yDLXbO9`0h+jdEFGsC=xG%~?!Fb3?Lc ck9x4$ofmq9-Js5e=5gvvzqs8ZeVt@1^~kFB4+>q literal 0 HcmV?d00001 diff --git a/modules/albumtree/images/plusbottom.gif b/modules/albumtree/images/plusbottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..2cf8909fce7fa48e1bdcdd7d1ac8fcb38d728967 GIT binary patch literal 1634 zcmZ?wbhEHb6k-r!_|C)t1g~Ge22rD6Gz3Oo2q^w!VSK^N#GnK6Iw()H1L@HmG4c|^ zsE?r`z+un8$|0knz;LjcLs-iuqhR6Tc19(yDLXbO9`0h+jdEFGsC=xG%~?!Fb3?Lc ak9x4$ofmq9-Js5e`=2B=4EHw85tR@0jTC9h5!Hn literal 0 HcmV?d00001 diff --git a/modules/albumtree/module.info b/modules/albumtree/module.info new file mode 100755 index 0000000..b14d448 --- /dev/null +++ b/modules/albumtree/module.info @@ -0,0 +1,7 @@ +name = "Album Tree" +description = "Provides a block in the sidebar with quick links to all other albums." +version = 3 +author_name = "" +author_url = "" +info_url = "http://codex.gallery2.org/Gallery3:Modules:albumtree" +discuss_url = "http://gallery.menalto.com/forum_module_albumtree" diff --git a/modules/albumtree/views/albumtree_block_dtree.html.php b/modules/albumtree/views/albumtree_block_dtree.html.php new file mode 100755 index 0000000..30ec6ae --- /dev/null +++ b/modules/albumtree/views/albumtree_block_dtree.html.php @@ -0,0 +1,413 @@ + + + + +
    +
    + +
    +
    diff --git a/modules/albumtree/views/albumtree_block_list.html.php b/modules/albumtree/views/albumtree_block_list.html.php new file mode 100755 index 0000000..08ab3f0 --- /dev/null +++ b/modules/albumtree/views/albumtree_block_list.html.php @@ -0,0 +1,30 @@ + + + +
      + +
    • + title) ?> +
    • +viewable()->children(null, null, array(array("type", "=", "album"))) as $child){ + makelist($child,$level+1); + } +} +makelist($root,0); +?> +
    + + diff --git a/modules/albumtree/views/albumtree_block_select.html.php b/modules/albumtree/views/albumtree_block_select.html.php new file mode 100755 index 0000000..afe1c7f --- /dev/null +++ b/modules/albumtree/views/albumtree_block_select.html.php @@ -0,0 +1,16 @@ + + diff --git a/modules/arrow_nav/helpers/arrow_nav_theme.php b/modules/arrow_nav/helpers/arrow_nav_theme.php new file mode 100755 index 0000000..930a27c --- /dev/null +++ b/modules/arrow_nav/helpers/arrow_nav_theme.php @@ -0,0 +1,24 @@ +script("arrow_nav.js"); + } +} diff --git a/modules/arrow_nav/js/arrow_nav.js b/modules/arrow_nav/js/arrow_nav.js new file mode 100755 index 0000000..5a6eeae --- /dev/null +++ b/modules/arrow_nav/js/arrow_nav.js @@ -0,0 +1,74 @@ +(function ($) { + 'use strict'; + + var slideshowOpen = false, + direction = 'ltr', + keyPrevious = 37, + keyNext = 39, + keyDelete = 119, + url; + + $(document).ready(function() { + direction = $(document.body).css("direction"); + + if (direction === 'rtl') { + keyPrevious = 39; + keyNext = 37; + } + + if (typeof cooliris !== 'undefined') { + if ('embed' in cooliris) { + var show = cooliris.embed.show; + + cooliris.embed.show = function() { + slideshowOpen = true; + show.apply(this, arguments); + }; + } + } + }); + + $(document).keydown(function(e) { + + // do not interfere with browser defaults like history navigation etc. + if (e.altKey || e.shiftKey || e.ctrlKey || e.metaKey) { return; } + + // do nothing if event happens inside form elements + if (e.target.form && e.target.form.nodeType && e.target.form.nodeType === 1) { return; } + + // do not interfere with slideshow control + if (slideshowOpen) { + // check if it's still there + slideshowOpen = false; + + $(document).find('object').each(function(){ + if (/cooliris/.test(this.data)) { + slideshowOpen = true; + return; + } + }); + + if (slideshowOpen) { return; } + } + + switch (e.keyCode) { + case keyPrevious: + url = $('.g-paginator .g-first a').eq(0).attr("href"); + break; + + case keyNext: + url = $('.g-paginator .g-text-right a').eq(0).attr("href"); + break; + + case keyDelete: + $('a.g-dialog-link.g-quick-delete').click(); + return false; + } + + if (url !== undefined) { + window.location = url; + return false; + } + }); + +})(jQuery); diff --git a/modules/arrow_nav/module.info b/modules/arrow_nav/module.info new file mode 100755 index 0000000..1fe4a50 --- /dev/null +++ b/modules/arrow_nav/module.info @@ -0,0 +1,7 @@ +name = "Arrow Navigation" +description = "Use the left/right arrow keys to go to the previous/next page" +version = 4 +author_name = "" +author_url = "" +info_url = "http://codex.galleryproject.org/Gallery3:Modules:arrow_nav" +discuss_url = "" diff --git a/modules/batchtag/controllers/batchtag.php b/modules/batchtag/controllers/batchtag.php new file mode 100755 index 0000000..b36d0e6 --- /dev/null +++ b/modules/batchtag/controllers/batchtag.php @@ -0,0 +1,117 @@ +post('name')}&item_id={$input->post('item_id')}&tag_subitems={$input->post('tag_subitems')}&csrf={$input->post('csrf')}")); + + } + + public function tagitems2() { + // Tag all non-album items in the current album with the specified tags. + + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + $input = Input::instance(); + + // Variables + if (($input->get("batchtag_max") == false) || ($input->get("batchtag_max") == "0")) { + $batchtag_max = "50"; + } else { + $batchtag_max = $input->get("batchtag_max"); + } + if ($input->get("batchtag_items_processed") == false) { + $batchtag_items_processed = "0"; + } else { + $batchtag_items_processed = $input->get("batchtag_items_processed"); + } + + // Figure out if the contents of sub-albums should also be tagged + $str_tag_subitems = $input->get("tag_subitems"); + + $children = ""; + if ($str_tag_subitems == false) { + // Generate an array of all non-album items in the current album. + $children = ORM::factory("item") + ->where("parent_id", "=", $input->get("item_id")) + ->where("type", "!=", "album") + ->find_all(); + } else { + // Generate an array of all non-album items in the current album + // and any sub albums. + $item = ORM::factory("item", $input->get("item_id")); + $children = $item->descendants(); + } + + // Loop through each item in the album and make sure the user has + // access to view and edit it. + $children_count = "0"; + $tag_count = "0"; + + //echo Kohana::debug($children); + + echo ''; + + foreach ($children as $child) { + + if ($tag_count < $batchtag_max) { + + if ($children_count >= $batchtag_items_processed) { + if (access::can("view", $child) && access::can("edit", $child) && !$child->is_album()) { + + // Assuming the user can view/edit the current item, loop + // through each tag that was submitted and apply it to + // the current item. + foreach (explode(",", $input->get("name")) as $tag_name) { + $tag_name = trim($tag_name); + if ($tag_name) { + tag::add($child, $tag_name); + } + // $tag_count should be inside the foreach loop as it is depending on the number of time tag:add is run + $tag_count++; + } + } + echo '' . "\n"; + $children_count++; + $batchtag_max_new = $tag_count; + echo ''; + } else { $children_count++; } + + } else { break; } + + } + + if ($tag_count < $batchtag_max) { + // Redirect back to the album. + $item = ORM::factory("item", $input->get("item_id")); + url::redirect(url::abs_site("{$item->type}s/{$item->id}")); + //echo url::abs_site("{$item->type}s/{$item->id}"); + } else { + url::redirect(url::abs_site("batchtag/tagitems2?name={$input->get('name')}&item_id={$input->get('item_id')}&tag_subitems={$input->get('tag_subitems')}&batchtag_items_processed=$children_count&batchtag_max=$batchtag_max&csrf={$input->get('csrf')}")); + //echo url::abs_site("batchtag/tagitems2?name={$input->get('name')}&item_id={$input->get('item_id')}&tag_subitems={$input->get('tag_subitems')}&batchtag_items_processed=$children_count&batchtag_max=$batchtag_max&csrf={$input->get('csrf')}"); + } + } +} diff --git a/modules/batchtag/helpers/batchtag_block.php b/modules/batchtag/helpers/batchtag_block.php new file mode 100755 index 0000000..1bad96c --- /dev/null +++ b/modules/batchtag/helpers/batchtag_block.php @@ -0,0 +1,61 @@ + t("Batch Tag")); + } + + static function get($block_id, $theme) { + $block = ""; + + // Only display on album pages that the user can edit. + $item = $theme->item(); + if (!$item || !$item->is_album() || !access::can("edit", $item)) { + return; + } + + switch ($block_id) { + case "batch_tag": + // Make a new sidebar block. + $block = new Block(); + $block->css_id = "g-batch-tag"; + $block->title = t("Batch Tag"); + $block->content = new View("batchtag_block.html"); + + // Make a new form to place in the sidebar block. + $form = new Forge("batchtag/tagitems", "", "post", + array("id" => "g-batch-tag-form")); + $label = t("Tag everything in this album:"); + $group = $form->group("add_tag")->label("Add Tag"); + $group->input("name")->label($label)->rules("required|length[1,64]"); + $group->checkbox("tag_subitems") + ->label(t("Include sub-albums?")) + ->value(true) + ->checked(false); + + $group->hidden("item_id")->value($item->id); + $group->submit("")->value(t("Add Tag")); + $block->content->batch_tag_form = $form; + + break; + } + return $block; + } +} diff --git a/modules/batchtag/helpers/batchtag_event.php b/modules/batchtag/helpers/batchtag_event.php new file mode 100755 index 0000000..b1f887b --- /dev/null +++ b/modules/batchtag/helpers/batchtag_event.php @@ -0,0 +1,40 @@ +module == "tag") { + $data->messages["warn"][] = t("The BatchTag module requires the Tags module."); + } + } + + static function module_change($changes) { + // See if the Tags module is installed, + // tell the user to install it if it isn't. + if (!module::is_active("tag") || in_array("tag", $changes->deactivate)) { + site_status::warning( + t("The BatchTag module requires the Tags module. " . + "Activate the Tags module now", + array("url" => url::site("admin/modules"))), + "batchtag_needs_tag"); + } else { + site_status::clear("batchtag_needs_tag"); + } + } +} diff --git a/modules/batchtag/helpers/batchtag_installer.php b/modules/batchtag/helpers/batchtag_installer.php new file mode 100755 index 0000000..a8b30fd --- /dev/null +++ b/modules/batchtag/helpers/batchtag_installer.php @@ -0,0 +1,41 @@ + + + diff --git a/modules/captionator/controllers/captionator.php b/modules/captionator/controllers/captionator.php new file mode 100755 index 0000000..9a89599 --- /dev/null +++ b/modules/captionator/controllers/captionator.php @@ -0,0 +1,84 @@ +abs_url()); + } + + $v = new Theme_View("page.html", "collection", "captionator"); + $v->content = new View("captionator_dialog.html"); + $v->content->album = $album; + $v->content->enable_tags = module::is_active("tag"); + if ($v->content->enable_tags) { + $v->content->tags = array(); + foreach ($album->viewable()->children() as $child) { + $item = ORM::factory("item", $child->id); + $tag_names = array(); + foreach (tag::item_tags($item) as $tag) { + $tag_names[] = $tag->name; + } + $v->content->tags[$child->id] = implode(", ", $tag_names); + } + } + print $v; + } + + function save($album_id) { + access::verify_csrf(); + + $album = ORM::factory("item", $album_id); + access::required("edit", $album); + + if (Input::instance()->post("save")) { + $titles = Input::instance()->post("title"); + $descriptions = Input::instance()->post("description"); + $filenames = Input::instance()->post("filename"); + $internetaddresses = Input::instance()->post("internetaddress"); + $tags = Input::instance()->post("tags"); + $enable_tags = module::is_active("tag"); + foreach (array_keys($titles) as $id) { + $item = ORM::factory("item", $id); + if ($item->loaded() && access::can("edit", $item)) { + $item->title = $titles[$id]; + $item->description = $descriptions[$id]; + $item->name = $filenames[$id]; + $item->slug = $internetaddresses[$id]; + $item->save(); + if ($enable_tags) { + tag::clear_all($item); + foreach (explode(",", $tags[$id]) as $tag_name) { + if ($tag_name) { + tag::add($item, trim($tag_name)); + } + } + tag::compact(); + } + } + } + message::success(t("Captions saved")); + } + url::redirect($album->abs_url()); + } +} diff --git a/modules/captionator/helpers/captionator_event.php b/modules/captionator/helpers/captionator_event.php new file mode 100755 index 0000000..09268ac --- /dev/null +++ b/modules/captionator/helpers/captionator_event.php @@ -0,0 +1,33 @@ +item(); + + if ($item && $item->is_album() && access::can("edit", $item)) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("captionator") + ->label(t("Caption album")) + ->css_id("g-menu-captionator-link") + ->url(url::site("captionator/dialog/{$item->id}"))); + } + } +} diff --git a/modules/captionator/module.info b/modules/captionator/module.info new file mode 100755 index 0000000..5edf301 --- /dev/null +++ b/modules/captionator/module.info @@ -0,0 +1,7 @@ +name = "Captionator" +description = "Caption all photos, movies and albums in an album at once." +version = 1 +author_name = "" +author_url = "" +info_url = "http://codex.gallery2.org/Gallery3:Modules:captionator" +discuss_url = "http://gallery.menalto.com/forum_module_captionator" diff --git a/modules/captionator/views/captionator_dialog.html.php b/modules/captionator/views/captionator_dialog.html.php new file mode 100755 index 0000000..2b2f0e2 --- /dev/null +++ b/modules/captionator/views/captionator_dialog.html.php @@ -0,0 +1,68 @@ + +
    + +
    id}") ?>" method="post" id="g-captionator-form"> + +
    + + %album_title", array("album_title" => $album->title)) ?> + + + viewable()->children() as $child): ?> + + + + + +
    + thumb_img(array(), 140, true) ?> + +
      +
    • + + +
    • +
    • + + +
    • + +
    • + + +
    • + +
    • + + +
    • +
    • + + +
    • +
    +
    + +
    +
    + "/> + "/> +
    +
    +
    diff --git a/modules/custom_menus/controllers/admin_custom_menus.php b/modules/custom_menus/controllers/admin_custom_menus.php new file mode 100755 index 0000000..6bd5993 --- /dev/null +++ b/modules/custom_menus/controllers/admin_custom_menus.php @@ -0,0 +1,254 @@ +page_title = t("Manage menus"); + $view->content = new View("admin_custom_menus.html"); + $view->content->menu_list = $this->get_html_list(0); + print $view; + } + + public function form_create($id) { + // Display the create new menu form. + print $this->get_new_menu_form($id); + } + + public function form_edit($id) { + // Display the edit menu form. + print $this->get_edit_menu_form($id); + } + + static function get_new_menu_form($id) { + // Generate the create new menu form. + $form = new Forge("admin/custom_menus/create/$id", "", "post", array("id" => "g-create-menu-form")); + $group = $form->group("create_menu") + ->label(t("Add new menu")); + $group->input("menu_title") + ->label(t("Title")); + $group->input("menu_url") + ->label(t("URL (Leave blank if this menu will have sub-menus)")); + $group->submit("")->value(t("Create menu")); + return $form; + } + + static function get_edit_menu_form($id) { + // Generate the edit menu form. + $existing_menu = ORM::factory("custom_menu", $id); + $form = new Forge("admin/custom_menus/edit/$id", "", "post", array("id" => "g-edit-menu-form")); + $group = $form->group("edit_menu") + ->label(t("Edit menu")); + $group->input("menu_title") + ->label(t("Title")) + ->value($existing_menu->title); + $group->input("menu_url") + ->label(t("URL (Leave blank if this menu will have sub-menus)")) + ->value($existing_menu->url); + $group->submit("")->value(t("Save changes")); + return $form; + } + + public function create($id) { + // Save a new menu to the database. + + access::verify_csrf(); + + // Save form variables to the database. + $new_menu = ORM::factory("custom_menu"); + $new_menu->title = Input::instance()->post("menu_title"); + $new_menu->url = Input::instance()->post("menu_url"); + $new_menu->parent_id = $id; + + // Set menu's location to the last position. + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $id) + ->order_by("order_by", "DESC") + ->find_all(1); + if (count($existing_menu) > 0) { + $int_position = $existing_menu[0]->order_by; + $int_position++; + $new_menu->order_by = $int_position; + } else { + $new_menu->order_by = 0; + } + + // Save new menu to the database. + $new_menu->save(); + message::success(t("Menu %menu_name created", array("menu_name" => $new_menu->title))); + log::success("custom_menus", t("Menu %menu_name created", array("menu_name" => $new_menu->title))); + json::reply(array("result" => "success")); + } + + public function edit($id) { + // Save a new menu to the database. + + access::verify_csrf(); + + // Load the existing menu and save changes. + $existing_menu = ORM::factory("custom_menu", $id); + if ($existing_menu->loaded()) { + $existing_menu->title = Input::instance()->post("menu_title"); + $existing_menu->url = Input::instance()->post("menu_url"); + $existing_menu->save(); + message::success(t("Menu %menu_name saved", array("menu_name" => $existing_menu->title))); + log::success("custom_menus", t("Menu %menu_name saved", array("menu_name" => $existing_menu->title))); + json::reply(array("result" => "success")); + } else { + message::error(t("Unable to load menu %menu_id", array("menu_id" => $id))); + log::success("custom_menus", t("Unable to load menu %menu_id", array("menu_id" => $id))); + json::reply(array("result" => "success")); + } + } + + function get_html_list($parent_id) { + // Generate an HTML list of existing menu items. + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $parent_id) + ->order_by("order_by", "ASC") + ->find_all(); + $str_html = ""; + if (count($existing_menu) > 0) { + $str_html = "\n"; + } + return $str_html; + } + + public function form_delete($id) { + // Display a form asking the user if they want to delete a menu. + $one_menu = ORM::factory("custom_menu", $id); + if ($one_menu->loaded()) { + print $this->get_delete_form($one_menu); + } + } + + public function delete($id) { + // Delete the specified menu. + + access::verify_csrf(); + + // Make sure $id belongs to an actual menu. + $one_menu = ORM::factory("custom_menu", $id); + if (!$one_menu->loaded()) { + throw new Kohana_404_Exception(); + } + + // If the form validates, delete the specified menu. + $form = $this->get_delete_form($one_menu); + if ($form->validate()) { + $name = $one_menu->title; + $this->delete_sub_menus($one_menu->id); + $one_menu->delete(); + message::success(t("Deleted menu %menu_name", array("menu_name" => $name))); + log::success("custom_menus", t("Deleted menu %menu_name", array("menu_name" => $name))); + json::reply(array("result" => "success", "location" => url::site("admin/custom_menus"))); + } else { + print $form; + } + } + + function delete_sub_menus($parent_id) { + // Delete all sub menus associated with $parent_id. + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $parent_id) + ->order_by("title", "ASC") + ->find_all(); + foreach ($existing_menu as $one_menu) { + $this->delete_sub_menus($one_menu->id); + $one_menu->delete(); + } + } + + static function get_delete_form($one_menu) { + // Generate a new form asking the user if they want to delete a menu. + $form = new Forge("admin/custom_menus/delete/$one_menu->id", "", "post", array("id" => "g-delete-menu-form")); + $group = $form->group("delete_menu") + ->label(t("Really delete menu %menu_name & sub-menus?", array("menu_name" => $one_menu->title))); + $group->submit("")->value(t("Delete Menu")); + return $form; + } + + public function move_menu_up($id) { + // Move the specified menu item up one position. + $one_menu = ORM::factory("custom_menu", $id); + if ($one_menu->loaded()) { + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $one_menu->parent_id) + ->where("order_by", "<", $one_menu->order_by) + ->order_by("order_by", "DESC") + ->find_all(1); + if (count($existing_menu) > 0) { + $second_menu = ORM::factory("custom_menu", $existing_menu[0]->id); + $temp_position = $one_menu->order_by; + $one_menu->order_by = $second_menu->order_by; + $second_menu->order_by = $temp_position; + $one_menu->save(); + $second_menu->save(); + message::success(t("Menu %menu_title moved up", array("menu_title" => $one_menu->title))); + log::success("custom_menus", t("Menu %menu_title moved up", array("menu_title" => $one_menu->title))); + } + } + url::redirect("admin/custom_menus"); + } + + public function move_menu_down($id) { + // Move the specified menu item down one position. + $one_menu = ORM::factory("custom_menu", $id); + if ($one_menu->loaded()) { + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $one_menu->parent_id) + ->where("order_by", ">", $one_menu->order_by) + ->order_by("order_by", "ASC") + ->find_all(1); + if (count($existing_menu) > 0) { + $second_menu = ORM::factory("custom_menu", $existing_menu[0]->id); + $temp_position = $one_menu->order_by; + $one_menu->order_by = $second_menu->order_by; + $second_menu->order_by = $temp_position; + $one_menu->save(); + $second_menu->save(); + message::success(t("Menu %menu_title moved down", array("menu_title" => $one_menu->title))); + log::success("custom_menus", t("Menu %menu_title moved down", array("menu_title" => $one_menu->title))); + } + } + url::redirect("admin/custom_menus"); + } +} diff --git a/modules/custom_menus/helpers/custom_menus_event.php b/modules/custom_menus/helpers/custom_menus_event.php new file mode 100755 index 0000000..1c2bd39 --- /dev/null +++ b/modules/custom_menus/helpers/custom_menus_event.php @@ -0,0 +1,75 @@ +get("content_menu") + ->append(Menu::factory("link") + ->id("custom_menus") + ->label(t("Custom Menus Manager")) + ->url(url::site("admin/custom_menus"))); + } + + static function site_menu($menu, $theme) { + // Add user definied menu and sub-menu items to the site menu. + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", "0") + ->order_by("order_by", "DESC") + ->find_all(); + if (count($existing_menu) > 0) { + foreach ($existing_menu as $one_menu) { + if ($one_menu->url == "") { + $menu->add_after("home", $new_menu = Menu::factory("submenu") + ->id("custom_menus-" . $one_menu->id) + ->label(t($one_menu->title))); + custom_menus_event::add_sub_menus($one_menu->id, $new_menu); + } else { + $menu->add_after("home", Menu::factory("link") + ->id("custom_menus-" . $one_menu->id) + ->label(t($one_menu->title)) + ->url($one_menu->url)); + } + } + } + } + + function add_sub_menus($parent_id, $parent_menu) { + // Populate the menu bar with any sub-menu items on the current menu ($parent_menu). + $existing_menu = ORM::factory("custom_menu") + ->where("parent_id", "=", $parent_id) + ->order_by("order_by", "ASC") + ->find_all(); + if (count($existing_menu) > 0) { + foreach ($existing_menu as $one_menu) { + if ($one_menu->url == "") { + $parent_menu->append($new_menu = Menu::factory("submenu") + ->id("custom_menus-" . $one_menu->id) + ->label(t($one_menu->title))); + custom_menus_event::add_sub_menus($one_menu->id, $new_menu); + } else { + $parent_menu->append(Menu::factory("link") + ->id("custom_menus-" . $one_menu->id) + ->label(t($one_menu->title)) + ->url($one_menu->url)); + } + } + } + } +} diff --git a/modules/custom_menus/helpers/custom_menus_installer.php b/modules/custom_menus/helpers/custom_menus_installer.php new file mode 100755 index 0000000..94b7d90 --- /dev/null +++ b/modules/custom_menus/helpers/custom_menus_installer.php @@ -0,0 +1,37 @@ +query("CREATE TABLE IF NOT EXISTS {custom_menus} ( + `id` int(9) NOT NULL auto_increment, + `title` varchar(255) default NULL, + `url` text default NULL, + `parent_id` int(9) NOT NULL default 0, + `order_by` int(9) NOT NULL default 0, + PRIMARY KEY (`id`), + UNIQUE KEY(`id`)) + DEFAULT CHARSET=utf8;"); + + // Set the module version number. + module::set_version("custom_menus", 1); + } +} diff --git a/modules/custom_menus/models/custom_menu.php b/modules/custom_menus/models/custom_menu.php new file mode 100755 index 0000000..e659cff --- /dev/null +++ b/modules/custom_menus/models/custom_menu.php @@ -0,0 +1,21 @@ + + diff --git a/modules/database_info/helpers/database_info_block.php b/modules/database_info/helpers/database_info_block.php new file mode 100755 index 0000000..7e3053f --- /dev/null +++ b/modules/database_info/helpers/database_info_block.php @@ -0,0 +1,36 @@ + t("Database info")); + } + + static function get($block_id) { + $block = new Block(); + switch ($block_id) { + case "database_info": + $block->css_id = "g-database-info"; + $block->title = t("Database information"); + $block->content = new View("admin_block_db.html"); + break; + } + return $block; + } +} diff --git a/modules/database_info/module.info b/modules/database_info/module.info new file mode 100755 index 0000000..500f7b8 --- /dev/null +++ b/modules/database_info/module.info @@ -0,0 +1,7 @@ +name = "Database Info" +description = "View information about your Gallery 3 database on the admin dashboard." +version = 1 +author_name = "rWatcher" +author_url = "http://codex.gallery2.org/User:RWatcher" +info_url = "https://gallery3-contrib.gitlab.io/#Documentation:27018364" +discuss_url = "https://gitlab.com/eric2001/database_info/-/issues" diff --git a/modules/database_info/views/admin_block_db.html.php b/modules/database_info/views/admin_block_db.html.php new file mode 100755 index 0000000..d199541 --- /dev/null +++ b/modules/database_info/views/admin_block_db.html.php @@ -0,0 +1,18 @@ + +query("SHOW TABLE STATUS"); + $database_size = 0; + foreach($tables as $table) { + $database_size += ($table->Data_length + $table->Index_length); + } + $database_size = $database_size / 1024 / 1024; +?> +
      +
    • + number_format($database_size, 2))) ?> +
    • +
    • + count($tables))) ?> +
    • +
    diff --git a/modules/delete_cache/helpers/delete_cache_task.php b/modules/delete_cache/helpers/delete_cache_task.php new file mode 100755 index 0000000..98b1226 --- /dev/null +++ b/modules/delete_cache/helpers/delete_cache_task.php @@ -0,0 +1,70 @@ +callback("delete_cache_task::delete_cache") + ->name(t("Delete cache")) + ->description(t("Truncate the cache table from the database.")) + ->severity(log::SUCCESS), + ); + } + + static function delete_cache($task) { + $start = microtime(true); + + $total = $task->get("total"); + if (empty($total)) { + $task->set("total", $total = db::build()->count_records("caches")); + $task->set("last_id", 0); + $task->set("completed", 0); + } + + $last_id = $task->get("last_id"); + $completed = $task->get("completed"); + + foreach (ORM::factory("cache") + ->where("id", ">", $last_id) + ->find_all(100) as $item) { + + $last_id = $item->id; + $completed++; + + if ($completed == $total || microtime(true) - $start > 1.5) { + break; + } + } + + $task->set("completed", $completed); + $task->set("last_id", $last_id); + + if ($total == $completed) { + $task->done = true; + $task->state = "success"; + $task->percent_complete = 100; + $db = Database::instance(); + $db->query("TRUNCATE TABLE {caches}"); + } else { + $task->percent_complete = round(100 * $completed / $total); + } + $task->status = t2("One row updated", "%count / %total rows truncated from the cache table", $completed, + array("total" => $total)); + } +} diff --git a/modules/delete_cache/module.info b/modules/delete_cache/module.info new file mode 100755 index 0000000..b3f00d7 --- /dev/null +++ b/modules/delete_cache/module.info @@ -0,0 +1,7 @@ +name = "Delete cache" +description = "Delete various caches in your gallery install database" +version = 1 +author_name = "floridave" +author_url = "" +info_url = "http://codex.gallery2.org/Gallery3:Modules:delete_cache" +discuss_url = "http://gallery.menalto.com/forum_module_delete_cache" diff --git a/modules/downloadfullsize/controllers/admin_downloadfullsize.php b/modules/downloadfullsize/controllers/admin_downloadfullsize.php new file mode 100755 index 0000000..f862ea4 --- /dev/null +++ b/modules/downloadfullsize/controllers/admin_downloadfullsize.php @@ -0,0 +1,93 @@ +content = new View("admin_downloadfullsize.html"); + $view->content->downloadlinks_form = $this->_get_admin_form(); + print $view; + } + + public function saveprefs() { + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + // Figure out which boxes where checked + $dlLinks_array = Input::instance()->post("DownloadLinkOptions"); + $fButton = false; + $download_original_button = false; + for ($i = 0; $i < count($dlLinks_array); $i++) { + if ($dlLinks_array[$i] == "fButton") { + $fButton = true; + } + } + + if (module::is_active("keeporiginal")) { + $keeporiginal_array = Input::instance()->post("DownloadOriginalOptions"); + for ($i = 0; $i < count($keeporiginal_array); $i++) { + if ($keeporiginal_array[$i] == "DownloadOriginalImage") { + $download_original_button = true; + } + } + module::set_var("downloadfullsize", "DownloadOriginalImage", $download_original_button); + } + + // Save Settings. + module::set_var("downloadfullsize", "fButton", $fButton); + message::success(t("Your Selection Has Been Saved.")); + + // Load Admin page. + $view = new Admin_View("admin.html"); + $view->content = new View("admin_downloadfullsize.html"); + $view->content->downloadlinks_form = $this->_get_admin_form(); + print $view; + + } + + private function _get_admin_form() { + // Make a new Form. + $form = new Forge("admin/downloadfullsize/saveprefs", "", "post", + array("id" => "g-download-fullsize-adminForm")); + + // Make an array for the different types of download links. + $linkOptions["fButton"] = array(t("Show Floppy Disk Picture Link"), module::get_var("downloadfullsize", "fButton")); + + // Setup a few checkboxes on the form. + $add_links = $form->group("DownloadLinks"); + $add_links->checklist("DownloadLinkOptions") + ->options($linkOptions); + + if (module::is_active("keeporiginal")) { + $KeepOriginalOptions["DownloadOriginalImage"] = array(t("Allow visitors to download the original image when available?"), module::get_var("downloadfullsize", "DownloadOriginalImage")); + $keeporiginal_group = $form->group("KeepOriginalPrefs") + ->label(t("KeepOriginal Preferences")); + $keeporiginal_group->checklist("DownloadOriginalOptions") + ->options($KeepOriginalOptions); + } + + // Add a save button to the form. + $form->submit("SaveLinks")->value(t("Save")); + + // Return the newly generated form. + return $form; + } +} \ No newline at end of file diff --git a/modules/downloadfullsize/controllers/downloadfullsize.php b/modules/downloadfullsize/controllers/downloadfullsize.php new file mode 100755 index 0000000..1f3b9a8 --- /dev/null +++ b/modules/downloadfullsize/controllers/downloadfullsize.php @@ -0,0 +1,37 @@ +is_photo() && module::get_var("downloadfullsize", "DownloadOriginalImage")) { + $original_image = VARPATH . "original/" . str_replace(VARPATH . "albums/", "", $item->file_path()); + if (file_exists($original_image)) { + download::force($original_image); + } else { + download::force($item->file_path()); + } + } else { + download::force($item->file_path()); + } + } +} diff --git a/modules/downloadfullsize/css/downloadfullsize_menu.css b/modules/downloadfullsize/css/downloadfullsize_menu.css new file mode 100755 index 0000000..a608a66 --- /dev/null +++ b/modules/downloadfullsize/css/downloadfullsize_menu.css @@ -0,0 +1,3 @@ +#g-view-menu #g-download-fullsize-link { + background-image: url('../images/ico-view-downloadfullsize.png'); +} diff --git a/modules/downloadfullsize/helpers/downloadfullsize_block.php b/modules/downloadfullsize/helpers/downloadfullsize_block.php new file mode 100755 index 0000000..2726107 --- /dev/null +++ b/modules/downloadfullsize/helpers/downloadfullsize_block.php @@ -0,0 +1,51 @@ + t("Download Item")); + } + + static function get($block_id, $theme) { + $item = $theme->item; + switch ($block_id) { + case "downloadfullsize": + + // If Item is movie then... + if ($item && $item->is_movie() && access::can("view_full", $item)) { + $block = new Block(); + $block->css_id = "g-download-fullsize"; + $block->title = t("Download Movie"); + $block->content = new View("downloadfullsize_block.html"); + return $block; + } + + // If Item is photo then... + if ($item && $item->is_photo() && access::can("view_full", $item)) { + $block = new Block(); + $block->css_id = "g-download-fullsize"; + $block->title = t("Download Photo"); + $block->content = new View("downloadfullsize_block.html"); + return $block; + } + } + return ""; + } + +} diff --git a/modules/downloadfullsize/helpers/downloadfullsize_event.php b/modules/downloadfullsize/helpers/downloadfullsize_event.php new file mode 100755 index 0000000..2871f9a --- /dev/null +++ b/modules/downloadfullsize/helpers/downloadfullsize_event.php @@ -0,0 +1,57 @@ +item)) { + if (module::get_var("downloadfullsize", "fButton")) { + $downloadLink = url::site("downloadfullsize/send/{$theme->item->id}"); + $menu + ->append(Menu::factory("link") + ->id("downloadfullsize") + ->label(t("Download Fullsize Image")) + ->url($downloadLink) + ->css_id("g-download-fullsize-link")); + } + } + } + + static function movie_menu($menu, $theme) { + if (access::can("view_full", $theme->item)) { + if (module::get_var("downloadfullsize", "fButton")) { + $downloadLink = url::site("downloadfullsize/send/{$theme->item->id}"); + $menu + ->append(Menu::factory("link") + ->id("downloadfullsize") + ->label(t("Download Video")) + ->url($downloadLink) + ->css_id("g-download-fullsize-link")); + } + } + } + + static function admin_menu($menu, $theme) { + $menu->get("settings_menu") + ->append(Menu::factory("link") + ->id("downloadfullsize") + ->label(t("Download Photo Links")) + ->url(url::site("admin/downloadfullsize"))); + } + +} diff --git a/modules/downloadfullsize/helpers/downloadfullsize_theme.php b/modules/downloadfullsize/helpers/downloadfullsize_theme.php new file mode 100755 index 0000000..45459a8 --- /dev/null +++ b/modules/downloadfullsize/helpers/downloadfullsize_theme.php @@ -0,0 +1,26 @@ +item && access::can("view_full", $theme->item)) { + return $theme->css("downloadfullsize_menu.css"); + } + } +} diff --git a/modules/downloadfullsize/images/ico-view-downloadfullsize.png b/modules/downloadfullsize/images/ico-view-downloadfullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..ce7804d2b8a25f1d32606ce151a35bfa0aea8b00 GIT binary patch literal 4125 zcmeHKX;c&E8V=~8NVWCob;I7?aVlNzF_|QUNK)dKAdO8hhFIyT=Uyhs0FfjUlA#GG z6rn00+SW?dY8SUktrbMJvIN-_!lIT%3_G%heF^*0302zObM86vqd(fich1Z=-@MQF zF3zKV_b%H9c5BOXESB1w>+gdqjDZn1OGF>wb91cL#cLax*>bu4h! zFBAW^{Dwea7J~V)z+aQ{FIn;}Os zk>bpxP?;2G;OPLj*a0qTsW(%|+4(dazG8vC7^Y%EkXEZDX&p(Z+6SUA7z~I^g{V{_ zjv#6Rl^CoeDmAZJT>R>TgJ>jbnF^DkO2Fb17NY?e3j}dH@T?YvYRKalAm+0$uZBU|!$_ zbuG{}F9zlXUQpLxi!Qt0+FC@3_p(~NX`MPA&Lt2Q5d=JuYh`^`-{7c~^`ckapzl{k zu{;mk*e>lK8k?D!88nZ{kEaa{k1M0o{Gxsu8Jid#pLF;C?m%Q}@4!f5dCU03rR)uib5~vQjYyrGntpq4us{?0;ph74>FIqzal#L8>cm6s9q6B4Go;+D4LO&SRnkazSAU!M^O_CNR|yX<+h_c@gFqY{8S{NYj&b=KF!Iv9-ChS*{qwC&TldHOP}0^l zSX$9^Gpnk-d&qjxV(x+Sre1Sec9B35ykXPZS5qrGd(DY?HShU`FI{2(uHu`p3wejn z=l+YhJ>bY!(PwX*kH25`xZz=SM{<5mb9?X0t2f9)&M`$nX$5sDdV`y%|J|RPZ)X}h zdd$}|Dm{>omMmN8!jrP$69>;^XXci4_m4zhDe%&qq`3KQ%rkTS!rxq{{{m) za^ZGHLD7Rpmy^r%c_pSEb5dquN4ME#$xE9Uyp%hJg!F>4nzkGIs+a!pDj&U=kz2eI zIlcPTe`n>Fp14|w3#`1nyrQC_va<5gqeoR$RgWJ(HX4o9)zvjMHMO<1b#-<1_4N%6 z4ULVBO-)Tto;+!8ZfDz7Yinz7Z|~^nFqur9ot<4>UEST?Jv}|Wy}f;Xef|CY z0|NttgM&juLuRviczAeZWMp)7bZl&Fe0+RjVq$V~a%yS{S0pV~Q4f<;m9PMst)SdnP z$DPF&anIdQjJI+KngFBa8cc_XX-?36Ugy>($w|%ql z0lhLij>9Xe6&~Bp +
    +

    + +
    diff --git a/modules/downloadfullsize/views/downloadfullsize_block.html.php b/modules/downloadfullsize/views/downloadfullsize_block.html.php new file mode 100755 index 0000000..9cec2a8 --- /dev/null +++ b/modules/downloadfullsize/views/downloadfullsize_block.html.php @@ -0,0 +1,18 @@ + + +item->is_photo()) { ?> + + + +item->is_movie()) { ?> + + + diff --git a/modules/dupcheck/controllers/dupcheck.php b/modules/dupcheck/controllers/dupcheck.php new file mode 100755 index 0000000..357a788 --- /dev/null +++ b/modules/dupcheck/controllers/dupcheck.php @@ -0,0 +1,103 @@ +get("page", 1); + if ($page < 1) { + url::redirect("dupcheck/dupes"); + } + + // First item to display. + $offset = ($page - 1) * $page_size; + + // Determine the total number of items, + // for page numbering purposes. + $count = db::build() + ->select("itemmd5") + ->select(array("C" => "count(\"*\")")) + ->from("fullsize_md5sums") + ->group_by("itemmd5") + ->having("C", ">", 1) + ->execute()->count(); +~ + // Figure out what the highest page number is. + $max_pages = ceil($count / $page_size); + + // Don't let the visitor go past the last page. + if ($max_pages && $page > $max_pages) { + url::redirect("dupcheck/dupes?page=$max_pages"); + } + + // Figure out which items to display on this page. + foreach( db::build() + ->select("item_id") + ->select(array("C" => "count(\"*\")")) + ->from("fullsize_md5sums") + ->group_by("itemmd5") + ->having("C", ">", 1) + ->execute() + as $row ) { + $dupes[] = $row->item_id; + } + + if(empty($dupes)){ + $count = 0; + $dupes[0] = 9999999; + } + + $items = ORM::factory("item") + ->where("id", "IN", $dupes) + ->order_by("created", "DESC") + ->find_all($page_size, $offset); + + // Set up the previous and next page buttons. + if ($page > 1) { + $previous_page = $page - 1; + $view->previous_page_link = url::site("dupcheck/dupes?page={$previous_page}"); + } + if ($page < $max_pages) { + $next_page = $page + 1; + $view->next_page_link = url::site("dupcheck/dupes?page={$next_page}"); + } + + // Set up and display the actual page. + $template = new Theme_View("page.html", "collection", "DuplicatePhotos"); + $template->page_title = t("Gallery :: Duplicate Photos"); + $template->set_global("page", $page); + $template->set_global("page_size", $page_size); + $template->set_global("max_pages", $max_pages); + $template->set_global("children", $items); + $template->set_global("children_count", $count); + $template->content = new View("dupespage.html"); + if($dupes[0] == 9999999){ + $template->content->title = t("No Duplicate Photos Found"); + } else { + $template->content->title = t("Duplicate Photos"); + } + print $template; + } + +} diff --git a/modules/dupcheck/helpers/dupcheck.php b/modules/dupcheck/helpers/dupcheck.php new file mode 100755 index 0000000..d302283 --- /dev/null +++ b/modules/dupcheck/helpers/dupcheck.php @@ -0,0 +1,88 @@ +select("items.id") + ->from("items") + ->join("fullsize_md5sums", "items.id", "fullsize_md5sums.item_id", "left") + ->where("type", "=", "photo") + ->and_open() + ->where("fullsize_md5sums.item_id", "IS", null) + ->close() + ->execute() + ->count(); + + $total_items = ORM::factory("item")->where("type", "=", "photo")->count_all(); + if (!$total_items) { + return array(0, 0, 0); + } + $percent = round(100 * (($total_items - $missing_md5s) / $total_items)); + return array($missing_md5s, $total_items, $percent); + } + + static function grabmd5($item) { + if($item->is_photo()){ + $file_md5 = md5_file($item->file_path()); + $dupcheck = ORM::factory("fullsize_md5sum") + ->where("itemmd5", "=", $file_md5) + ->find_all(); + if($dupcheck->count() > 0) { + if(isset($GLOBALS['ignoredupewarning'])){ + unset($GLOBALS['ignoredupewarning']); + } else { + message::warning(t("The image just uploaded: '".$item->title."' appears to be a duplicate! Click id?csrf=__CSRF__")."\">-here- to delete it.")); + } + } +// Error check for bad md5sum? + if(strlen($file_md5) != 32){ + message::warning(t("Image: ".$item->file_path()." has an MD5 Err. ($file_md5)")); + } + $record = ORM::factory("fullsize_md5sum"); + $record->item_id = $item->id; + $record->itemmd5 = $file_md5; + $record->save(); + } + } + + static function updatemd5($item) { + if($item->is_photo()){ + $file_md5 = md5_file($item->file_path()); +// Error check for bad md5sum? + if(strlen($file_md5) != 32){ + message::warning(t("Image: ".$item->file_path()." has an MD5 Err. ($file_md5)")); + } + $record = ORM::factory("fullsize_md5sum")->where("item_id", "=", $item->id)->find(); + $record->itemmd5 = $file_md5; + $record->save(); + } + } + + static function check_index() { + list ($remaining) = dupcheck::stats(); + if ($remaining) { + site_status::warning( + t('Your MD5 index needs to be updated. Fix this now', + array("url" => html::mark_clean(url::site("admin/maintenance/start/dupcheck_task::update_md5s?csrf=__CSRF__")))), + "md5_index_out_of_date"); + } + } +} diff --git a/modules/dupcheck/helpers/dupcheck_event.php b/modules/dupcheck/helpers/dupcheck_event.php new file mode 100755 index 0000000..c4afe74 --- /dev/null +++ b/modules/dupcheck/helpers/dupcheck_event.php @@ -0,0 +1,46 @@ +is_photo()){ + db::build() + ->delete("fullsize_md5sums") + ->where("item_id", "=", $item->id) + ->execute(); + } + } + + static function item_updated_data_file($item) { + dupcheck::updatemd5($item); + } + + static function admin_menu($menu, $theme) { + $menu->get("content_menu") + ->append(Menu::factory("link") + ->id("dupcheck") + ->label(t("Gallery Photo Duplicates")) + ->url(url::site("dupcheck/dupes"))); + } + +} diff --git a/modules/dupcheck/helpers/dupcheck_installer.php b/modules/dupcheck/helpers/dupcheck_installer.php new file mode 100755 index 0000000..cd25713 --- /dev/null +++ b/modules/dupcheck/helpers/dupcheck_installer.php @@ -0,0 +1,43 @@ +query("CREATE TABLE IF NOT EXISTS {fullsize_md5sums} ( + `id` int(9) NOT NULL auto_increment, + `item_id` int(9) NOT NULL, + `itemmd5` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + KEY(`item_id`, `id`)) + DEFAULT CHARSET=utf8;"); + + // Set the module version number. + module::set_version("dupcheck", 1); + } + + static function activate() { + dupcheck::check_index(); + } + + static function deactivate() { + site_status::clear("md5_index_out_of_date"); + } +} diff --git a/modules/dupcheck/helpers/dupcheck_task.php b/modules/dupcheck/helpers/dupcheck_task.php new file mode 100755 index 0000000..9903d4b --- /dev/null +++ b/modules/dupcheck/helpers/dupcheck_task.php @@ -0,0 +1,89 @@ +delete("fullsize_md5sums") + ->where("item_id", "NOT IN", + db::build()->select("id")->from("items")) + ->execute(); + +// hack to remove bad md5sums in DB for old or strange error + db::build() + ->delete("fullsize_md5sums") + ->where('length("itemmd5")',"!=","32") + ->execute(); +// hack done + + // Display an option on the maintenance screen for scanning existing photos + // for MD5SUMs (in case photos were uploaded before the module was active). + list ($remaining, $total, $percent) = dupcheck::stats(); + $percent = 100 - $percent; + if($percent < 1){ $percent = "less than 1"; } + return array(Task_Definition::factory() + ->callback("dupcheck_task::update_md5s") + ->name(t("Extract missing MD5SUMs")) + ->description($remaining + ? t2("1 photo needs to be scanned", + "%count (%percent%) of your photos need to be scanned", + $remaining, array("percent" => $percent)) + : t("All photo MD5sums are up-to-date")) + ->severity($remaining ? log::WARNING : log::SUCCESS)); + } + + static function update_md5s($task) { + $completed = $task->get("completed", 0); + $start = microtime(true); + foreach (ORM::factory("item") + ->join("fullsize_md5sums", "items.id", "fullsize_md5sums.item_id", "left") + ->where("type", "=", "photo") + ->and_open() + ->where("fullsize_md5sums.item_id", "IS", null) + ->close() + ->find_all(100) as $item) { + if(!isset($start)) { + $start = microtime(true); + } + + dupcheck::grabmd5($item); + $completed++; + + if (microtime(true) - $start > .75) { + break; + } + } + + list($remaining, $total, $percent) = dupcheck::stats(); + $task->set("completed", $completed); + if ($remaining == 0 || !($remaining + $completed)) { + $task->done = true; + $task->state = "success"; + site_status::clear("md5_index_out_of_date"); + $task->percent_complete = 100; + } else { + $task->percent_complete = round(100 * $completed / ($remaining + $completed)); + } + $task->status = t2("1 record updated, index is %percent% up-to-date", + "%count records updated, index is %percent% up-to-date", + $completed, array("percent" => $percent)); + } +} diff --git a/modules/dupcheck/models/fullsize_md5sum.php b/modules/dupcheck/models/fullsize_md5sum.php new file mode 100755 index 0000000..d0485c1 --- /dev/null +++ b/modules/dupcheck/models/fullsize_md5sum.php @@ -0,0 +1,21 @@ + | By J.E. Nash"; +version = 8 +author_name = "J.E. Nash" +author_url = "http://codex.gallery2.org/User:jnash" +info_url = "http://codex.gallery2.org/Gallery3:Modules:dupcheck" +discuss_url = "http://gallery.menalto.com/node/106123" diff --git a/modules/dupcheck/views/dupespage.html.php b/modules/dupcheck/views/dupespage.html.php new file mode 100755 index 0000000..ef0d033 --- /dev/null +++ b/modules/dupcheck/views/dupespage.html.php @@ -0,0 +1,54 @@ + +
    +
    + dynamic_top() ?> +
    +

    +
    + + +dynamic_bottom() ?> + +paginator() ?> diff --git a/modules/exif_gps/controllers/admin_exif_gps.php b/modules/exif_gps/controllers/admin_exif_gps.php new file mode 100755 index 0000000..d3b3872 --- /dev/null +++ b/modules/exif_gps/controllers/admin_exif_gps.php @@ -0,0 +1,158 @@ +content = new View("admin_exif_gps.html"); + $view->content->exifgps_form = $this->_get_admin_form(); + print $view; + } + + public function saveprefs() { + // Save user preferences to the database. + + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + // Make sure the user filled out the form properly. + $form = $this->_get_admin_form(); + if ($form->validate()) { + // Save settings to Gallery's database. + module::set_var("exif_gps", "provider", $form->Global->provider->value); + // switch (module::get_var("exif_gps", "provider")) { + // case "gmaps": + module::set_var("exif_gps", "googlemap_api_key", $form->Global->google_api_key->value); + module::set_var("exif_gps", "googlemap_max_autozoom", $form->Global->max_auto_zoom_level->value); + module::set_var("exif_gps", "markercluster_gridsize", $form->markercluster->markercluster_gridsize->value); + module::set_var("exif_gps", "markercluster_maxzoom", $form->markercluster->markercluster_maxzoom->value); + module::set_var("exif_gps", "sidebar_zoom", $form->Sidebar->sidebar_default_zoom->value); + module::set_var("exif_gps", "sidebar_mapformat", $form->Sidebar->sidebar_mapformat->value); + module::set_var("exif_gps", "sidebar_maptype", $form->Sidebar->sidebar_maptype->value); + module::set_var("exif_gps", "largemap_maptype", $form->LargeMap->largemap_maptype->value); + module::set_var("exif_gps", "toolbar_map_album", $form->Global->toolbar_map_album->value); + module::set_var("exif_gps", "toolbar_map_user", $form->Global->toolbar_map_user->value); + module::set_var("exif_gps", "restrict_maps", $form->Global->restrict_maps->value); + // break; + // case "osm": + // + // break; + // } + + // Display a success message and redirect back to the TagsMap admin page. + message::success(t("Your settings have been saved.")); + message::success($form->Global->provider->value); + url::redirect("admin/exif_gps"); + } + + // Else show the page with errors + $view = new Admin_View("admin.html"); + $view->content = new View("admin_exif_gps.html"); + $view->content->exifgps_form = $form; + print $view; + } + + private function _get_admin_form() { + // Make a new Form. + $form = new Forge("admin/exif_gps/saveprefs", "", "post", + array("id" => "g-exif-gps-adminForm")); + + // Create group for global settings, like the Maps API Key + $gps_global_group = $form->group("Global") + ->label(t("Global Settings")); + $gps_global_group->dropdown("provider") + ->label(t("Map Provider")) + ->options(array( + "gmaps" => "Google Maps", + "osm" => "OpenStreetMap" + )) + ->selected(module::get_var("exif_gps", "provider")); + + // switch (module::get_var("exif_gps", "provider")) { + // case "gmaps": + $gps_global_group->input("google_api_key") + ->label(t("Google APIs Console key (optional):")) + ->value(module::get_var("exif_gps", "googlemap_api_key")); + $gps_global_group->input("max_auto_zoom_level") + ->label(t("Maximum Auto-Zoom Level:")) + ->value(module::get_var("exif_gps", "googlemap_max_autozoom")); + $gps_global_group->checkbox("toolbar_map_album")->label(t("Show \"Map this album\" icon?")) + ->checked(module::get_var("exif_gps", "toolbar_map_album", false)); + $gps_global_group->checkbox("toolbar_map_user")->label(t("Show \"Map this user\" icon?")) + ->checked(module::get_var("exif_gps", "toolbar_map_user", false)); + $gps_global_group->checkbox("restrict_maps")->label(t("Restrict maps to registered users?")) + ->checked(module::get_var("exif_gps", "restrict_maps", false)); + + // Create a group for marker cluster settings + $gps_markercluster = $form->group("markercluster") + ->label(t("Marker Cluster Settings")); + $gps_markercluster->input("markercluster_gridsize") + ->label(t("Grid Size")) + ->value(module::get_var("exif_gps", "markercluster_gridsize")) + ->rules("required"); + $gps_markercluster->input("markercluster_maxzoom") + ->label(t("Max Zoom")) + ->value(module::get_var("exif_gps", "markercluster_maxzoom")) + ->rules("required"); + + // Create a group for sidebar settings + $gps_sidebar = $form->group("Sidebar") + ->label(t("Sidebar Settings")); + $gps_sidebar->input("sidebar_default_zoom") + ->label(t("Default Zoom Level")) + ->value(module::get_var("exif_gps", "sidebar_zoom")) + ->rules("required"); + $gps_sidebar->dropdown("sidebar_mapformat") + ->label(t("Map Interface")) + ->options(array(t("Static"), t("Interactive"))) + ->selected(module::get_var("exif_gps", "sidebar_mapformat")); + $gps_sidebar->dropdown("sidebar_maptype") + ->label(t("Default Map Type")) + ->options(array(t("Map"), t("Satellite"), + t("Hybrid"), t("Terrain"))) + ->selected(module::get_var("exif_gps", "sidebar_maptype")); + + // Create a group for map album/user settings + $gps_large_map_group = $form->group("LargeMap") + ->label(t("Map Album/User Settings")); + $gps_large_map_group->dropdown("largemap_maptype") + ->label(t("Default Map Type")) + ->options(array(t("Map"), t("Satellite"), + t("Hybrid"), t("Terrain"))) + ->selected(module::get_var("exif_gps", "largemap_maptype")); + // break; + // case "osm": + // $gps_large_map_group->dropdown("xxx") + // ->label(t("Map Style")) + // ->options(array( + // "OSM Bright" + // )) + // ->selected(module::get_var("exif_gps", "osm_map_style")); + // break; + // } + + // Add a save button to the form. + $form->submit("SaveSettings")->value(t("Save")); + + // Return the newly generated form. + return $form; + } +} diff --git a/modules/exif_gps/controllers/exif_gps.php b/modules/exif_gps/controllers/exif_gps.php new file mode 100755 index 0000000..d6ee35d --- /dev/null +++ b/modules/exif_gps/controllers/exif_gps.php @@ -0,0 +1,175 @@ +abs_url()); + } + + public function xml($query_type, $query_id, $offset) { + // Generate an xml output of the photos to be mapped. + // $query_type can be either "album" or "user", $query_id is the id# of the album or user to map. + + // If the user can't view maps, don't let them view the xml. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + throw new Kohana_404_Exception(); + } + + $items = ""; + if ($query_type == "user") { + $items = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $query_id) + ->viewable() + ->order_by("exif_coordinates.latitude", "ASC") + ->find_all(EXIF_GPS_Controller::$xml_records_limit, $offset); + } elseif ($query_type == "album") { + $items = ORM::factory("item", $query_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->order_by("exif_coordinates.latitude", "ASC") + ->descendants(EXIF_GPS_Controller::$xml_records_limit, $offset); + } + $map_provider_id = module::get_var("exif_gps", "provider"); + $v = new View("$map_provider_id/exif_gps_coordinates_xml.html"); + $v->items = $items; + header("Content-type: text/xml; charset=utf-8"); + print $v; + } + + public function geojson($query_type, $query_id, $offset) { + // Generate an xml output of the photos to be mapped. + // $query_type can be either "album" or "user", $query_id is the id# of the album or user to map. + + // If the user can't view maps, don't let them view the xml. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + throw new Kohana_404_Exception(); + } + + $items = ""; + if ($query_type == "user") { + $items = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $query_id) + ->viewable() + ->order_by("exif_coordinates.latitude", "ASC") + ->find_all(EXIF_GPS_Controller::$xml_records_limit, $offset); + } elseif ($query_type == "album") { + $items = ORM::factory("item", $query_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->order_by("exif_coordinates.latitude", "ASC") + ->descendants(EXIF_GPS_Controller::$xml_records_limit, $offset); + } + $map_provider_id = module::get_var("exif_gps", "provider"); + $v = new View("$map_provider_id/exif_gps_coordinates_geojson.html"); + $v->items = $items; + header("Content-type: application/json; charset=utf-8"); + print $v; + } + + public function map($map_type, $type_id) { + // Map all items in the specified album or user. + // Valid values for $map_type are "album" or "user", $type_id is either an + // album id# or a user id#. + + // If the user can't view maps, throw a 404 error. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + throw new Kohana_404_Exception(); + } + + // Figure out what to display for the page title and how many items to display. + $map_title = ""; + $items_count = 0; + if ($map_type == "album") { + $curr_album = ORM::factory("item")->where("id", "=", $type_id)->find_all(); + $map_title = $curr_album[0]->title; + $items_count = ORM::factory("item", $type_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + } elseif ($map_type == "user") { + $curr_user = ORM::factory("user")->where("id", "=", $type_id)->find_all(); + $map_title = $curr_user[0]->full_name . "'s " . t("Photos"); + $items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $type_id) + ->viewable() + ->count_all(); + } + + // Set up breadcrumbs. + $breadcrumbs = array(); + if ($map_type == "album") { + $counter = 0; + $breadcrumbs[] = Breadcrumb::instance(t("Map"), url::site("exif_gps/map/album/{$type_id}"))->set_last(); + $parent_item = ORM::factory("item", $type_id); + if (!$parent_item->loaded()) { + throw new Kohana_404_Exception(); + } + while ($parent_item->id != 1) { + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url()); + $parent_item = ORM::factory("item", $parent_item->parent_id); + } + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url())->set_first(); + $breadcrumbs = array_reverse($breadcrumbs, true); + } else { + $root = item::root(); + $breadcrumbs[] = Breadcrumb::instance($root->title, $root->url())->set_first(); + $breadcrumbs[] = Breadcrumb::instance(t("Photo Map"), url::site("exif_gps/map/{$map_type}/{$type_id}"))->set_last(); + } + + // Set up and display the actual page. + $template = new Theme_View("page.html", "other", "EXIF_GPS_MAP"); + $template->page_title = t("Gallery :: Map"); + $template->set_global(array("breadcrumbs" => $breadcrumbs)); + $map_provider_id = module::get_var("exif_gps", "provider"); + $template->content = new View("$map_provider_id/exif_gps_map.html"); + if ($map_title == "") { + $template->content->title = t("Map"); + } else { + $template->content->title = t("Map of") . " " . $map_title; + } + + // Figure out default map type. + $int_map_type = module::get_var("exif_gps", "largemap_maptype"); + if ($int_map_type == 0) $map_display_type = "ROADMAP"; + if ($int_map_type == 1) $map_display_type = "SATELLITE"; + if ($int_map_type == 2) $map_display_type = "HYBRID"; + if ($int_map_type == 3) $map_display_type = "TERRAIN"; + $template->content->map_type = $map_display_type; + + // These are used to set up the URL to the xml file. + $template->content->query_type = $map_type; + $template->content->query_id = $type_id; + $template->content->items_count = $items_count; + + // Load in module preferences. + $template->content->google_map_key = module::get_var("exif_gps", "googlemap_api_key"); + + // Display the page. + print $template; + } +} diff --git a/modules/exif_gps/css/exif_gps_menu.css b/modules/exif_gps/css/exif_gps_menu.css new file mode 100755 index 0000000..3f8afa2 --- /dev/null +++ b/modules/exif_gps/css/exif_gps_menu.css @@ -0,0 +1,6 @@ +#g-view-menu #g-exif-gps-album-link { + background-image: url('../images/ico-view-exif_gps_album.png'); +} +#g-view-menu #g-exif-gps-user-link { + background-image: url('../images/ico-view-exif_gps_user.png'); +} diff --git a/modules/exif_gps/helpers/exif_gps.php b/modules/exif_gps/helpers/exif_gps.php new file mode 100755 index 0000000..7ac1cc7 --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps.php @@ -0,0 +1,72 @@ +is_photo() && $item->mime_type == "image/jpeg") { + $data = array(); + require_once(MODPATH . "exif/lib/exif.php"); + $exif_raw = read_exif_data_raw($item->file_path(), false); + if (isset($exif_raw['ValidEXIFData'])) { + foreach(self::_keys() as $field => $exifvar) { + if (isset($exif_raw[$exifvar[0]][$exifvar[1]])) { + $value = $exif_raw[$exifvar[0]][$exifvar[1]]; + if (function_exists("mb_detect_encoding") && mb_detect_encoding($value) != "UTF-8") { + $value = utf8_encode($value); + } + $keys[$field] = Input::clean($value); + } + } + } + } + + // If coordinates were extracted, save them to the database. + if (isset($keys["Latitude"]) && isset($keys["Longitude"])) { + $record = ORM::factory("exif_coordinate"); + $record->item_id = $item->id; + $record->latitude = str_replace(",", ".", $keys["Latitude"]); + $record->longitude = str_replace(",", ".", $keys["Longitude"]); + // Represent N/S/E/W as postive and negative numbers + if (substr(strtoupper($keys["Latitude Reference"]), 0, 1) == "S") { + $record->latitude = "-" . $record->latitude; + } + if (substr(strtoupper($keys["Longitude Reference"]), 0, 1) == "W") { + $record->longitude = "-" . $record->longitude; + } + $record->save(); + } + } + + private static function _keys() { + // EXIF fields to extract. + if (!isset(self::$exif_keys)) { + self::$exif_keys = array( + "Latitude Reference" => array("GPS", "Latitude Reference", t("GPS: Latitude Reference"), ), + "Longitude Reference" => array("GPS", "Longitude Reference", t("GPS: Longitude Reference"),), + "Latitude" => array("GPS", "Latitude", t("GPS: Latitude"), ), + "Longitude" => array("GPS", "Longitude", t("GPS: Longitude"), ) + ); + } + return self::$exif_keys; + } +} diff --git a/modules/exif_gps/helpers/exif_gps_block.php b/modules/exif_gps/helpers/exif_gps_block.php new file mode 100755 index 0000000..c213655 --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps_block.php @@ -0,0 +1,163 @@ + t("EXIF GPS Location"), + "exif_gps_maps" => t("EXIF GPS Maps")); + } + + static function get($block_id, $theme) { + $block = ""; + + // Make sure the user can view maps before displaying any sidebars. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + return; + } + + switch ($block_id) { + case "exif_gps_maps": + // Display links to a map of the current album and + // a map of the current user. + if ($theme->item()) { + $album_id = ""; + $user_name = ""; + $item = $theme->item; + if ($item->is_album()) { + $album_id = $item->id; + } else { + $album_id = $item->parent_id; + } + $curr_user = ORM::factory("user")->where("id", "=", $item->owner_id)->find_all(); + if (count($curr_user) > 0) { + $user_name = $curr_user[0]->full_name; + } + + // Make sure there are actually map-able items to display. + $album_items_count = ORM::factory("item", $album_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + $user_items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $item->owner_id) + ->viewable() + ->count_all(1); + + if (($album_items_count > 0) || ($user_items_count > 0)) { + $block = new Block(); + $block->css_id = "g-exif-gps-maps"; + $block->title = t("Maps"); + $map_provider_id = module::get_var("exif_gps", "provider"); + $block->content = new View("$map_provider_id/exif_gps_maps_sidebar.html"); + $block->content->album_id = $album_id; + $block->content->user_id = $item->owner_id; + $block->content->user_name = $user_name; + $block->content->album_items = $album_items_count; + $block->content->user_items = $user_items_count; + } + } + break; + + case "exif_gps_location": + // Look for coordinates to display. + $latitude = ""; + $longitude = ""; + if ($theme->item()) { + // Check and see if the item has exif coordinates associated with it. + $record = ORM::factory("exif_coordinate")->where("item_id", "=", $theme->item->id)->find(); + if ($record->loaded()) { + $latitude = $record->latitude; + $longitude = $record->longitude; + } elseif (module::is_active("tagsmap") && module::is_active("tag")) { + // If there are no exif coordinates, check for tagsmap coordinates instead. + $tagsItem = ORM::factory("tag") + ->join("items_tags", "tags.id", "items_tags.tag_id") + ->where("items_tags.item_id", "=", $theme->item->id) + ->find_all(); + if (count($tagsItem) > 0) { + foreach ($tagsItem as $oneTag) { + $tagsGPS = ORM::factory("tags_gps")->where("tag_id", "=", $oneTag->id)->find(); + if ($tagsGPS->loaded()) { + $latitude = $tagsGPS->latitude; + $longitude = $tagsGPS->longitude; + break; + } + } + } + } + } elseif ( ($theme->tag()) && (module::is_active("tagsmap") && module::is_active("tag")) ) { + // If the current page belongs to a tag, check and see if the tag has GPS coordinates. + $tagsGPS = ORM::factory("tags_gps")->where("tag_id", "=", $theme->tag()->id)->find(); + if ($tagsGPS->loaded()) { + $latitude = $tagsGPS->latitude; + $longitude = $tagsGPS->longitude; + } + } + + // If coordinates were found, create the block. + if ($latitude != "" && $longitude != "") { + $block = new Block(); + $block->css_id = "g-exif-gps-location"; + $block->title = t("Location"); + $map_provider_id = module::get_var("exif_gps", "provider"); + if (module::get_var("exif_gps", "sidebar_mapformat") == 1) { + $block->content = new View("$map_provider_id/exif_gps_dynamic_sidebar.html"); + if (module::get_var("exif_gps", "sidebar_maptype") == 0) $block->content->sidebar_map_type = "ROADMAP"; + if (module::get_var("exif_gps", "sidebar_maptype") == 1) $block->content->sidebar_map_type = "SATELLITE"; + if (module::get_var("exif_gps", "sidebar_maptype") == 2) $block->content->sidebar_map_type = "HYBRID"; + if (module::get_var("exif_gps", "sidebar_maptype") == 3) $block->content->sidebar_map_type = "TERRAIN"; + $block->content->items_count = 1; + } else { + $block->content = new View("$map_provider_id/exif_gps_static_sidebar.html"); + if (module::get_var("exif_gps", "sidebar_maptype") == 0) $block->content->sidebar_map_type = "roadmap"; + if (module::get_var("exif_gps", "sidebar_maptype") == 1) $block->content->sidebar_map_type = "satellite"; + if (module::get_var("exif_gps", "sidebar_maptype") == 2) $block->content->sidebar_map_type = "hybrid"; + if (module::get_var("exif_gps", "sidebar_maptype") == 3) $block->content->sidebar_map_type = "terrain"; + } + $block->content->latitude = $latitude; + $block->content->longitude = $longitude; + } elseif (($theme->item()) && ($theme->item->is_album() && (module::get_var("exif_gps", "sidebar_mapformat") == 1))) { + // If coordinates were NOT found, and this is an album with a dynamic map, then map the contents of the album. + $items_count = ORM::factory("item", $theme->item->id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + if ($items_count > 0) { + $block = new Block(); + $block->css_id = "g-exif-gps-location"; + $block->title = t("Location"); + $map_provider_id = module::get_var("exif_gps", "provider"); + $block->content = new View("$map_provider_id/exif_gps_dynamic_sidebar.html"); + if (module::get_var("exif_gps", "sidebar_maptype") == 0) $block->content->sidebar_map_type = "ROADMAP"; + if (module::get_var("exif_gps", "sidebar_maptype") == 1) $block->content->sidebar_map_type = "SATELLITE"; + if (module::get_var("exif_gps", "sidebar_maptype") == 2) $block->content->sidebar_map_type = "HYBRID"; + if (module::get_var("exif_gps", "sidebar_maptype") == 3) $block->content->sidebar_map_type = "TERRAIN"; + $block->content->album_id = $theme->item->id; + $block->content->latitude = 0; + $block->content->longitude = 0; + $block->content->items_count = $items_count; + $block->content->google_map_key = module::get_var("exif_gps", "googlemap_api_key"); + } + } + break; + } + return $block; + } +} diff --git a/modules/exif_gps/helpers/exif_gps_event.php b/modules/exif_gps/helpers/exif_gps_event.php new file mode 100755 index 0000000..53b4433 --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps_event.php @@ -0,0 +1,269 @@ +module == "exif") { + $data->messages["warn"][] = t("The EXIF_GPS module requires the EXIF module."); + } + } + + static function module_change($changes) { + // If EXIF is deactivated, display a warning that it is required for this module to function properly. + if (!module::is_active("exif") || in_array("exif", $changes->deactivate)) { + site_status::warning( + t("The EXIF_GPS module requires the EXIF module. " . + "Activate the EXIF module now", + array("url" => html::mark_clean(url::site("admin/modules")))), + "exif_gps_needs_exif"); + } else { + site_status::clear("exif_gps_needs_exif"); + } + } + + static function item_created($item) { + // Whenever a new non-album item is created, check it for GPS coordinates. + if (!$item->is_album()) { + exif_gps::extract($item); + } + } + + static function item_deleted($item) { + // Whenever an item is deleted, delete any corresponding GPS coordinates. + db::build() + ->delete("exif_coordinates") + ->where("item_id", "=", $item->id) + ->execute(); + } + + static function item_edit_form($item, $form) { + // Allow users to set / edit the GPS coordinates associated with the current item. + $record = ORM::factory("exif_coordinate")->where("item_id", "=", $item->id)->find(); + $gpsdata = $form->edit_item->group("gps_data")->label("GPS Data"); + if ($record->loaded()) { + $gpsdata->input("latitude")->label(t("Latitude")) + ->value($record->latitude); + $gpsdata->input("longitude")->label(t("Longitude")) + ->value($record->longitude); + } else { + $gpsdata->input("latitude")->label(t("Latitude")); + $gpsdata->input("longitude")->label(t("Longitude")); + } + } + + static function item_edit_form_completed($item, $form) { + // Update the db records with the user-specified coordinates. + + // Require a set of coordinates (both latitude and longitude). + // If one or both fields are blank, completely delete any coordinates associated with this item. + if (($form->edit_item->gps_data->latitude->value == "") || ($form->edit_item->gps_data->longitude->value == "")) { + db::build() + ->delete("exif_coordinates") + ->where("item_id", "=", $item->id) + ->execute(); + } else { + $record = ORM::factory("exif_coordinate")->where("item_id", "=", $item->id)->find(); + if (!$record->loaded()) { + $record->item_id = $item->id; + } + $record->latitude = $form->edit_item->gps_data->latitude->value; + $record->longitude = $form->edit_item->gps_data->longitude->value; + $record->save(); + } + } + + static function admin_menu($menu, $theme) { + // Add a link to the EXIF_GPS admin page to the Settings menu. + $menu->get("settings_menu") + ->append(Menu::factory("link") + ->id("exif_gps") + ->label(t("EXIF_GPS Settings")) + ->url(url::site("admin/exif_gps"))); + } + + static function photo_menu($menu, $theme) { + // Adds album and user map icons to photo pages. + + // Do not display icons if the user can't view the page. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + return; + } + + $album_id = ""; + $item = $theme->item; + if ($item->is_album()) { + $album_id = $item->id; + } else { + $album_id = $item->parent_id; + } + $curr_user = ORM::factory("user")->where("id", "=", $item->owner_id)->find_all(); + $user_name = $curr_user[0]->full_name; + + // Make sure there are actually map-able items to display. + $album_items_count = ORM::factory("item", $album_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + $user_items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $item->owner_id) + ->viewable() + ->count_all(); + + if (($album_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_album") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_album") + ->label(t("Map this album")) + ->url(url::site("exif_gps/map/album/" . $album_id)) + ->css_id("g-exif-gps-album-link")); + } + if (($user_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_user") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_user") + ->label(t("Map ") . $user_name . t("'s photos")) + ->url(url::site("exif_gps/map/user/" . $item->owner_id)) + ->css_id("g-exif-gps-user-link")); + } + } + + static function movie_menu($menu, $theme) { + // Adds album and user map icons to movie pages. + + // Do not display icons if the user can't view the page. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + return; + } + + $album_id = ""; + $item = $theme->item; + if ($item->is_album()) { + $album_id = $item->id; + } else { + $album_id = $item->parent_id; + } + $curr_user = ORM::factory("user")->where("id", "=", $item->owner_id)->find_all(); + $user_name = $curr_user[0]->full_name; + + // Make sure there are actually map-able items to display. + $album_items_count = ORM::factory("item", $album_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + $user_items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $item->owner_id) + ->viewable() + ->count_all(); + + if (($album_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_album") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_album") + ->label(t("Map this album")) + ->url(url::site("exif_gps/map/album/" . $album_id)) + ->css_id("g-exif-gps-album-link")); + } + if (($user_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_user") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_user") + ->label(t("Map ") . $user_name . t("'s photos")) + ->url(url::site("exif_gps/map/user/" . $item->owner_id)) + ->css_id("g-exif-gps-user-link")); + } + } + + static function album_menu($menu, $theme) { + // Adds album and user map icons to album pages. + + // Do not display icons if the user can't view the page. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + return; + } + + $album_id = ""; + $item = $theme->item; + if ($item->is_album()) { + $album_id = $item->id; + } else { + $album_id = $item->parent_id; + } + $curr_user = ORM::factory("user")->where("id", "=", $item->owner_id)->find_all(); + $user_name = $curr_user[0]->full_name; + + // Make sure there are actually map-able items to display. + $album_items_count = ORM::factory("item", $album_id) + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->viewable() + ->descendants_count(); + $user_items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $item->owner_id) + ->viewable() + ->count_all(); + + if (($album_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_album") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_album") + ->label(t("Map this album")) + ->url(url::site("exif_gps/map/album/" . $album_id)) + ->css_id("g-exif-gps-album-link")); + } + if (($user_items_count > 0) && (module::get_var("exif_gps", "toolbar_map_user") == true)) { + $menu->append(Menu::factory("link") + ->id("exif_gps_user") + ->label(t("Map ") . $user_name . t("'s photos")) + ->url(url::site("exif_gps/map/user/" . $item->owner_id)) + ->css_id("g-exif-gps-user-link")); + } + } + + static function show_user_profile($data) { + // Display a map on the user profile pages. + + // Make sure the user can view maps before displaying one. + if ((module::get_var("exif_gps", "restrict_maps") == true) && (identity::active_user()->guest)) { + return; + } + + // If there's nothing to map, hide the map. + $items_count = ORM::factory("item") + ->join("exif_coordinates", "items.id", "exif_coordinates.item_id") + ->where("items.owner_id", "=", $data->user->id) + ->viewable() + ->count_all(); + if ($items_count == 0) { + return; + } + + $map_provider_id = module::get_var("exif_gps", "provider"); + + // Display the map block. + $v = new View("$map_provider_id/user_profile_exif_gps.html"); + $int_map_type = module::get_var("exif_gps", "largemap_maptype"); + if ($int_map_type == 0) $map_type = "ROADMAP"; + if ($int_map_type == 1) $map_type = "SATELLITE"; + if ($int_map_type == 2) $map_type = "HYBRID"; + if ($int_map_type == 3) $map_type = "TERRAIN"; + $v->map_type = $map_type; + $v->user_id = $data->user->id; + $v->items_count = $items_count; + $v->google_map_key = module::get_var("exif_gps", "googlemap_api_key"); + $data->content[] = (object) array("title" => t("Photo Map"), "view" => $v); + } +} diff --git a/modules/exif_gps/helpers/exif_gps_installer.php b/modules/exif_gps/helpers/exif_gps_installer.php new file mode 100755 index 0000000..4b876a9 --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps_installer.php @@ -0,0 +1,98 @@ +query("CREATE TABLE IF NOT EXISTS {exif_coordinates} ( + `id` int(9) NOT NULL auto_increment, + `item_id` int(9) NOT NULL, + `latitude` varchar(128) NOT NULL, + `longitude` varchar(128) NOT NULL, + PRIMARY KEY (`id`), + KEY(`item_id`, `id`)) + DEFAULT CHARSET=utf8;"); + + // If tagsmap is installed, copy the API key over. + if (module::is_active("tagsmap")) { + module::set_var("exif_gps", "googlemap_api_key", module::get_var("tagsmap", "googlemap_api_key")); + } else { + module::set_var("exif_gps", "googlemap_api_key", ""); + } + + // Set some default values. + module::set_var("exif_gps", "sidebar_zoom", "14"); + module::set_var("exif_gps", "sidebar_mapformat", "1"); + module::set_var("exif_gps", "sidebar_maptype", "1"); + module::set_var("exif_gps", "largemap_maptype", "2"); + module::set_var("exif_gps", "googlemap_max_autozoom", ""); + module::set_var("exif_gps", "toolbar_map_album", "0"); + module::set_var("exif_gps", "toolbar_map_user", "0"); + module::set_var("exif_gps", "markercluster_gridsize", "50"); + module::set_var("exif_gps", "markercluster_maxzoom", "15"); + module::set_var("exif_gps", "restrict_maps", "0"); + + // Set the module version number. + module::set_version("exif_gps", 3); + } + + static function upgrade($version) { + if ($version == 1) { + // If tagsmap is installed, copy the API key over. + if (module::is_active("tagsmap")) { + module::set_var("exif_gps", "googlemap_api_key", module::get_var("tagsmap", "googlemap_api_key")); + } else { + module::set_var("exif_gps", "googlemap_api_key", ""); + } + + // Set some default values. + module::set_var("exif_gps", "sidebar_zoom", "14"); + module::set_var("exif_gps", "sidebar_mapformat", "1"); + module::set_var("exif_gps", "sidebar_maptype", "1"); + module::set_var("exif_gps", "largemap_maptype", "2"); + module::set_version("exif_gps", 2); + } + if ($version == 2) { + module::set_var("exif_gps", "markercluster_gridsize", "50"); + module::set_var("exif_gps", "markercluster_maxzoom", "15"); + module::set_var("exif_gps", "restrict_maps", "0"); + module::set_version("exif_gps", 3); + } + } + + static function deactivate() { + site_status::clear("exif_gps_needs_exif"); + } + + static function can_activate() { + $messages = array(); + if (!module::is_active("exif")) { + $messages["warn"][] = t("The EXIF_GPS module requires the EXIF module."); + } + return $messages; + } + + static function uninstall() { + // Delete the GPS table before uninstalling. + $db = Database::instance(); + $db->query("DROP TABLE IF EXISTS {exif_coordinates};"); + module::delete("exif_gps"); + } +} diff --git a/modules/exif_gps/helpers/exif_gps_task.php b/modules/exif_gps/helpers/exif_gps_task.php new file mode 100755 index 0000000..fe23e6a --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps_task.php @@ -0,0 +1,87 @@ +delete("exif_coordinates") + ->where("item_id", "NOT IN", + db::build()->select("id")->from("items")) + ->execute(); + + // Display an option on the maintance screen for scanning existing photos + // for GPS data (in case photos were uploaded before the module was active). + return array(Task_Definition::factory() + ->callback("exif_gps_task::update_gps_index") + ->name(t("Extract Exif GPS data")) + ->description(t("Scan all photos for missing GPS data")) + ->severity(log::SUCCESS)); + } + + static function update_gps_index($task) { + $start = microtime(true); + + // Figure out the total number of photos in the database. + // If this is the first run, also set last_id and completed to 0. + $total = $task->get("total"); + if (empty($total)) { + $task->set("total", $total = count(ORM::factory("item")->where("type", "=", "photo")->find_all())); + $task->set("last_id", 0); + $task->set("completed", 0); + } + $last_id = $task->get("last_id"); + $completed = $task->get("completed"); + + // Generate an array of the next 100 photos to check. + + // Check each photo in the array to see if it already has exif gps data associated with it. + // If it doesn't, attempt to extract gps coordinates. + foreach (ORM::factory("item") + ->where("id", ">", $last_id) + ->where("type", "=", "photo") + ->order_by("id") + ->find_all(100) as $item) { + + $record = ORM::factory("exif_coordinate")->where("item_id", "=", $item->id)->find(); + if (!$record->loaded()) { + exif_gps::extract($item); + } + $last_id = $item->id; + $completed++; + + if ($completed == $total || microtime(true) - $start > 1.5) { + break; + } + } + + $task->set("completed", $completed); + $task->set("last_id", $last_id); + + if ($total == $completed) { + $task->done = true; + $task->state = "success"; + $task->percent_complete = 100; + } else { + $task->percent_complete = round(100 * $completed / $total); + } + $task->status = t2("One photo scanned", "%count / %total photos scanned", $completed, + array("total" => $total)); + } +} diff --git a/modules/exif_gps/helpers/exif_gps_theme.php b/modules/exif_gps/helpers/exif_gps_theme.php new file mode 100755 index 0000000..697d5a8 --- /dev/null +++ b/modules/exif_gps/helpers/exif_gps_theme.php @@ -0,0 +1,25 @@ +css("exif_gps_menu.css") . + $theme->script("markerclusterer_compiled.js"); + } +} diff --git a/modules/exif_gps/images/exif_gps-loading-map-large.gif b/modules/exif_gps/images/exif_gps-loading-map-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..a259e22f98737c00a56121fbd2eebba5e2d50556 GIT binary patch literal 2892 zcmd7U`#&4z9tUvkb}B(HTU#Qm)0QR@bgd$i>gCmg1Z|C0BB7_+5{X!AjNJ6LA`*Jl zNr<&YBoVctNQ7R{lEk{HlB;#CgT$?;HkAl^bg%O|XXnfxaGoEYU!Ldnyq@>#^L;L% zm=Hu@!g-suHg9a+w|DQ}q0#82e)Bu~L%~O)5A2T&-s$t%2P>AwHZOt?e3_V#k$B22 zi=TqqNc|rqCG9D{8sJdNepI<0*cc@E-0-}mBdS?fTRS(L z+a@3Wyr=cDnsmk`ey8eO`pJ0AkNR_C0hakJwQY9@t}3rt$n8czjgEOnD9{2R@)AY) zvE3#$h9`3dqwQJ{q#_-TG-pAwVPF;A6edS<^{^B@VU7{Gr26x|zvu70?KWAjNlAN_ zxVh=(Ywd*>>#tXQ?J8(E7B)csE`ZZWYY@V<3paLl=AyKRi-#VuJ1f&n4%@g#h`)*| z6K>&+{@dEH8q3^l+a1|pRux`zs*j@|+zfH9Kl@Di203ox!lS>bW5Bzhc* zqS_s|EaLtW;(W7P`G(UZ!%En!_eReb3e2<3gsQFOxSiQ^T;2yYg3i-ONi8w!i z_AuuV(TJoskSvfE6Pq-Eq+?%+LwF}B_b2+*!N%cF)@a*GzY$E(=)^yp0 zZ$z{^q~Po2d%W?mILNurf?ox!?g`w>sN3T6YASCxECn)>tQ`VuEbSdO0&WVRsXa-m` zF>e}bJkBBlp>%E_te-~?1(WeD7P?*dOVU2G*r-EFy7Z&TSb3CK4`;ZRwyKbk~o}ux1cR(}WM?Y^* z2)y+bJQ&^=u-!q3MhtE!gFwAJ3Hb zShw@}$Z4SyR;dcHU^`W8||6vem$(1^|3IE!X!gpYU($S;{Ylpdudi`@Zanx+`qk>w zE^Nv#hBe8K9*AIEPVQ(GwywK)mIz%HNOP2(;z`v4OO+9e2?XI0a}}Aoyg7gprVE=R zmmo`v6*!o4>9|s!Fm4oAvltjJVQGjxcKeZNwqgEQUL&<7S2u!z(PMN=QhAs@ z;5VL&JOxUyG9=*EO1+9>B5E zbz~oy+=W~Jz4gsS!Lgfj&g6tAm3{hn7(DXUOvYQZK!3t&S+%x;blgG@JsE9~nypSD zBcUP9L?Txh1KHQ@u68m#xrrlXA_SV3h_|3_AdV{Lk@A~AfEfd!z|cT)b*OT{E|50P zws(}XWKX!@IP21pWl+4f)P(o+;5#`iFAj2^&q*!)1Qd@P3~y=8z8n8^!MiNN`&8T5 z&%jUT##M;J_+_zwsN$u!jgi0B?l9nTrLm0HU$=UeT*rCX$b>_xZ*8;K-*xjn@znUx zgA`u*Xu$B7aL?mMHDAWu`$_mr^!gyPfScoYZ|EIgQxh*BOP-#a>0&JG^?x-R(w*C!rxAMC zJ~aC#1F}S1R*Z9~6Ew=!s%yOD8Zae+{c5CBZ!% zbe6Fc{7i~dM9;j%s|AY6Zb3Q3Pq^wz3z&kk)IqPQ!RR#^$CeH9!GH4t7QNfic84)b zyj<^t@br9b%-~5Y)>3)9j z=^rU4x%jb=Vbu1)KrG|MQ1zY{P2V^s&th%;`<;laETaYhoPmnbD~sFFVvC=`*(6g4 z*JU=x+Og>{ci31dZ)kjW<*4mHA+02~rYS0z%D^!|df}R9rbnud)IS cVuEA>uAf-H{QX(+C&vHb{}J{6zx#XpCopDIO8@`> literal 0 HcmV?d00001 diff --git a/modules/exif_gps/images/ico-view-exif_gps_album.png b/modules/exif_gps/images/ico-view-exif_gps_album.png new file mode 100755 index 0000000000000000000000000000000000000000..255d6496984034a4c5bd01dff66fc8f42ade367a GIT binary patch literal 4835 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.l&&a.setMap(d); +a=this.c.getZoom();if((b=this.k.I())&&a>b)for(a=0;b=this.a[a];a++)b.setMap(this.c);else if(this.a.length0&&a.e[0]0&&a.e[1] +
    +

    + +

    +
    + + +
    diff --git a/modules/exif_gps/views/osm/exif_gps_coordinates_geojson.html.php b/modules/exif_gps/views/osm/exif_gps_coordinates_geojson.html.php new file mode 100755 index 0000000..e90c770 --- /dev/null +++ b/modules/exif_gps/views/osm/exif_gps_coordinates_geojson.html.php @@ -0,0 +1,33 @@ + +[ +id); + $thumb_arr[$item->id] = $item->thumb_img(array("class" => "g-exif-gps-thumbnail")); + } + $item_coordinates_all = ORM::factory("exif_coordinate")->where("item_id", "IN", $items_id)->find_all(); + foreach ($item_coordinates_all as $zero_index => $item_coordinates) { + $thumb_html = base64_encode($thumb_arr[$item_coordinates->item_id]); + $separator = $zero_index == count($item_coordinates_all) - 1 ? "\n" : ",\n"; +?> + { + "type": "Feature", + "properties": { + "name": "name ?>", + "image_html_base64": "", + "url": "item_id"); ?>" + }, + "geometry": { + "type": "Point", + "coordinates": [ + "longitude; ?>", + "latitude; ?>" + ] + } + } + +] diff --git a/modules/exif_gps/views/osm/exif_gps_coordinates_xml.html.php b/modules/exif_gps/views/osm/exif_gps_coordinates_xml.html.php new file mode 100755 index 0000000..ebf8ad8 --- /dev/null +++ b/modules/exif_gps/views/osm/exif_gps_coordinates_xml.html.php @@ -0,0 +1,21 @@ + +\n"; ?> + +id); +$thumb_arr[$item->id] = $item->thumb_img(array("class" => "g-exif-gps-thumbnail")); +} +$item_coordinates_all = ORM::factory("exif_coordinate")->where("item_id", "IN", $items_id)->find_all(); +foreach ($item_coordinates_all as $item_coordinates) { +$str_thumb_html = str_replace("&", "&", $thumb_arr[$item_coordinates->item_id]); +$str_thumb_html = str_replace("\'", "'", $str_thumb_html); +$str_thumb_html = str_replace("<", "<", $str_thumb_html); +$str_thumb_html = str_replace(">", ">", $str_thumb_html); +$str_thumb_html = str_replace("\"", """, $str_thumb_html); +?> +item_id"); ?>" thumb="" /> + + diff --git a/modules/exif_gps/views/osm/exif_gps_dynamic_sidebar.html.php b/modules/exif_gps/views/osm/exif_gps_dynamic_sidebar.html.php new file mode 100755 index 0000000..9d3ce51 --- /dev/null +++ b/modules/exif_gps/views/osm/exif_gps_dynamic_sidebar.html.php @@ -0,0 +1,63 @@ + + +
    +
    +
    + + diff --git a/modules/exif_gps/views/osm/exif_gps_map.html.php b/modules/exif_gps/views/osm/exif_gps_map.html.php new file mode 100755 index 0000000..779da07 --- /dev/null +++ b/modules/exif_gps/views/osm/exif_gps_map.html.php @@ -0,0 +1,65 @@ + + +
    +
    + dynamic_top() ?> +
    +

    +
    +
    +
    +
    +
    + +dynamic_bottom() ?> diff --git a/modules/exif_gps/views/osm/exif_gps_maps_sidebar.html.php b/modules/exif_gps/views/osm/exif_gps_maps_sidebar.html.php new file mode 100755 index 0000000..be2498b --- /dev/null +++ b/modules/exif_gps/views/osm/exif_gps_maps_sidebar.html.php @@ -0,0 +1,9 @@ + +
      + 0)): ?> +
    • ">
    • + + 0)): ?> +
    • ">
    • + +
    diff --git a/modules/exif_gps/views/osm/user_profile_exif_gps.html.php b/modules/exif_gps/views/osm/user_profile_exif_gps.html.php new file mode 100755 index 0000000..10e9c37 --- /dev/null +++ b/modules/exif_gps/views/osm/user_profile_exif_gps.html.php @@ -0,0 +1,58 @@ + + +
    +
    +
    + diff --git a/modules/gallerystats/helpers/gallerystats_block.php b/modules/gallerystats/helpers/gallerystats_block.php new file mode 100755 index 0000000..e71e11e --- /dev/null +++ b/modules/gallerystats/helpers/gallerystats_block.php @@ -0,0 +1,46 @@ + t("Gallery Stats")); + } + + static function prepareBlockData($block) { + $block->content->album_count = ORM::factory("item")->where("type", "=", "album")->where("id", "<>", 1)->count_all(); + $block->content->photo_count = ORM::factory("item")->where("type", "=", "photo")->count_all(); + $block->content->view_count = Database::instance()->query("SELECT SUM({items}.view_count) as c FROM {items} WHERE type=\"photo\"")->current()->c; + } + + static function get($block_id, $theme) { + $block = ""; + switch ($block_id) { + case "gallerystats": + $block = new Block(); + + $block->css_id = "g-gallerystats"; + $block->title = t("Gallery Stats"); + $block->content = new View("gallerystats_block.html"); + self::prepareBlockData($block); + break; + } + return $block; + } +} \ No newline at end of file diff --git a/modules/gallerystats/helpers/gallerystats_installer.php b/modules/gallerystats/helpers/gallerystats_installer.php new file mode 100755 index 0000000..93fa1db --- /dev/null +++ b/modules/gallerystats/helpers/gallerystats_installer.php @@ -0,0 +1,24 @@ + + +
      +
    • + gallery::VERSION)) ?> +
    • +
    • + $album_count)) ?> +
    • +
    • + $photo_count)) ?> +
    • +
    • + $view_count)) ?> +
    • +
    diff --git a/modules/greydragon/changelog.txt b/modules/greydragon/changelog.txt new file mode 100755 index 0000000..ae8baf9 --- /dev/null +++ b/modules/greydragon/changelog.txt @@ -0,0 +1,11 @@ +GreyDragon Shared Module Changelog + +version 1.3: +- Added check to detect situation when CURL is not installed to disable Auto Update feature +- Improved CURL logic to properly handle redirects + +version 1.2: +- Fixed issue with some installations not taking relative path for CSS + +version 1.1: +- Initial release \ No newline at end of file diff --git a/modules/greydragon/css/gd_common.css b/modules/greydragon/css/gd_common.css new file mode 100755 index 0000000..32b780b --- /dev/null +++ b/modules/greydragon/css/gd_common.css @@ -0,0 +1,59 @@ +/** + * Gallery 3 Grey Dragon Common Module + * Copyright (C) 2012 Serguei Dosyukov + * + * CSS rules for admin section + */ + +body { min-width: 1200px; } + +#g-content { font-size: 1em; margin-bottom: 0; width: auto; padding-left: 1em; padding-right: 1em; } +#g-content ul { margin-bottom: 0; } + +#g-content h3 { color: #d54e21; border-bottom: #a2bdbf 1px solid; margin-top: 0.3em; margin-bottom: 0.3em; } +#g-content p { color: #333; } +#g-content table { margin-bottom: 0; } + +#g-content input { display: inline; float: left; margin-right: 0.8em; color: #555555; border: 1px solid #ccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } +#g-content textarea { height: 6em; color: #555555; border: 1px solid #ccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } +#g-content select { display: inline; float: left; margin-right: 0.8em; width: 50.6%; color: #555555; border: 1px solid #ccc; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; } + +#g-content input[type='checkbox'] { border: none; } +#g-content input[type='text'] { width: 50%; } + +#g-content input.submit { display: inline-block; min-width: 100px; padding: 4px 10px 4px; font-size: 13px; line-height: 18px; color:#333333; text-align: center; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); background-color: #fafafa; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-repeat: no-repeat; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); border: 1px solid #ccc; border-bottom-color: #bbb; -webkit-border-radius: 4px; -moz-border-radius: 4px; border-radius: 4px; -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05); -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2),0 1px 2px rgba(0, 0, 0, 0.05); cursor: pointer; *margin-left: .3em; } +#g-content input.submit:first-child { *margin-left: 0; } +#g-content input.submit:hover { color: #333333; text-decoration: none; background-color: #e6e6e6; background-position: 0 -15px; -webkit-transition: background-position 0.1s linear; -moz-transition: background-position 0.1s linear; -ms-transition: background-position 0.1s linear; -o-transition: background-position 0.1s linear; transition: background-position 0.1s linear; } + +#g-content input.g-error { padding-left: 30px; border: none; } +#g-content input.g-success { background-color: transparent; } +#g-content input.g-warning { background-color: transparent; border: none; } + +#g-content p.g-error { padding-left: 30px; border: none; margin-bottom: 0; background-image: none; } + +#gd-admin-header { padding: 7px 0; margin: 4px 0 0 0; background-color: #fbfbfb; background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); background-image:- ms-linear-gradient(top, #ffffff, #f5f5f5); background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); background-image: linear-gradient(top, #ffffff, #f5f5f5); background-repeat: repeat-x; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); border: 1px solid #ddd; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; display: inline-block; width: 100%; } +#gd-admin-header .divider{padding:0 5px;color:#999999;} +#gd-admin-header .active a{color:#333333;} + +#gd-admin-version, +#gd-admin-version-2 { margin-top: 4px; padding: 7px 14px; background-color: rgb(217, 237, 247); border: 1px solid #bce8f1; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; } + +#gd-admin-title { float: left; padding-left: 10px; color: #333v42; font-weight: bold; font-size: 1.4em; text-shadow: #deeefa 0 1px 0; display: inline-block; } +#gd-admin-hlinks { float: right; padding-right: 10px; } +#gd-admin-hlinks li { list-style-type: none; float: left; color: #618299; display: inline; text-shadow: 0 1px 0 #ffffff; } +#gd-admin-hlinks a { line-height: 1.6em; } +#gd-admin-hlinks a[disabled="disabled"], #gd-admin-hlinks a[disabled="disabled"]:hover { text-decoration: none; cursor: default; } + +#g-autoupdate-config { display: none; border: 1px solid #ddd; border-top: none; width: 45%; height: 2.5em; margin-left: 54%; -webkit-border-radius: 3px; -moz-border-radius: 3px; border-radius: 3px; -webkit-box-shadow: inset 0 1px 0 #ffffff; -moz-box-shadow: inset 0 1px 0 #ffffff; box-shadow: inset 0 1px 0 #ffffff; } +#g-autoupdate-config.visible { min-height: 30px; display: inline-block; } +#g-autoupdate-config ul { float: right; margin: 6px 10px;} +#g-autoupdate-config li { float: left; display: inline; line-height: 1.5em; } + +#g-admin-container { margin-top: 14px; font-size: 0.9em; line-height: 1.6em; } +#g-admin-container .column1 { float: left; width: 53%; min-width: 610px; } +#g-admin-container .column2 { float: right; width: 46%; min-width: 529px; } + +#g-admin-container fieldset { position: relative; border-top-left-radius: 0.4em; border-top-right-radius: 0.4em; overflow: hidden; } +#g-admin-container legend { position: absolute; left: 0; width: 100%; padding: 0.4em 0.8em; background: url(../images/blue-grad.png) #d5e6f2 repeat-x left top; border-bottom: #dfdfdf 1px solid; } +#g-admin-container fieldset ul { margin-top: 34px; } + diff --git a/modules/greydragon/images/blue-grad.png b/modules/greydragon/images/blue-grad.png new file mode 100755 index 0000000000000000000000000000000000000000..868a657cca2e16c23e59c0b5050d49c817c9cff3 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^tUxT!!3-oN{(RR0Qq09po*^6@9Je3(KLB!L1AIbU z-~agk4v4=0d;9I*n{R(#fBp0F%kNiT{=E47>-nc&&p!Tq`r*gp_un7A`}Xkd*9ULD z+f| zw`*NMi#Q8BB8wRqxP?HN@zUM8KR`jz64!_l=c3falFa-(g^SG zFdW$M@ZGxq^F7_T_dB#G32pRnQ45;b?KEYP(AEqWZL5pjjy*|2n + + + + +id == $downloadid): + $newversion = $json->version; + if ($json->version > $version): + return $json->version; + else: + return 0; + endif; + else: + return -1; + endif; + } catch (Exception $e) { + return -1; + } +} + +if ($is_module): + $admin_info = new ArrayObject(parse_ini_file(MODPATH . $name . "/module.info"), ArrayObject::ARRAY_AS_PROPS); + $version = number_format($admin_info->version / 10, 1, '.', ''); + $lastupdate = module::get_var($name, "last_update", time()); + $checkInDays = module::get_var($name, "auto_delay", 30); +else: + $admin_info = new ArrayObject(parse_ini_file(THEMEPATH . $name . "/theme.info"), ArrayObject::ARRAY_AS_PROPS); + $version = $admin_info->version; + $lastupdate = module::get_var("th_" . $name, "last_update", time()); + $checkInDays = module::get_var("th_" . $name, "auto_delay", 30); +endif; + +if (isCurlInstalled() && ($checkInDays > 0) && ((time() - $lastupdate) > ($checkInDays * 24 * 60 * 60))): // Check version every N days + $admin_info2 = new ArrayObject(parse_ini_file(MODPATH . "greydragon/module.info"), ArrayObject::ARRAY_AS_PROPS); + $version2 = number_format($admin_info2->version / 10, 1, '.', ''); + + $versionCheck = checkVersionInfo($downloadid, $version); + $versionCheck2 = checkVersionInfo(15, $version2); + + if (($versionCheck == 0) && ($versionCheck2 == 0)): + if ($is_module): + module::set_var($name, "last_update", time()); + else: + module::set_var("th_" . $name, "last_update", time()); + endif; + endif; +else: + $versionCheck = 0; + $versionCheck2 = 0; +endif; +?> + +
    +
    name) ?> -
    + +
    +
    +
    •   
    • +
    • +
    • + +
    •   |   
    • + +
    +
    + + +
    :
    + + +
    + + + +
    ' . t("here") . ' ' . t("for more info.") ?>
    + +
    + +
    + +
    +
    + +
    + + + +
    diff --git a/modules/image_fit/helpers/image_fit_theme.php b/modules/image_fit/helpers/image_fit_theme.php new file mode 100755 index 0000000..49e2c55 --- /dev/null +++ b/modules/image_fit/helpers/image_fit_theme.php @@ -0,0 +1,37 @@ +page_subtype == "photo") { + return $theme->script("jquery.imagefit.js"); + } + } + static function page_bottom($theme) { + $fit_code = " + + + "; + return $fit_code; + } +} diff --git a/modules/image_fit/js/jquery.imagefit.js b/modules/image_fit/js/jquery.imagefit.js new file mode 100755 index 0000000..bee06a1 --- /dev/null +++ b/modules/image_fit/js/jquery.imagefit.js @@ -0,0 +1,48 @@ +/* jquery.imagefit + * + * Version 0.2 by Oliver Boermans + * + * Extends jQuery + * + */ +(function($) { + $.fn.imagefit = function(options) { + var fit = { + all : function(imgs){ + imgs.each(function(){ + fit.one(this); + }) + }, + one : function(img){ + $(img) + .width('100%').each(function() + { + $(this).height(Math.round( + $(this).attr('startheight')*($(this).width()/$(this).attr('startwidth'))) + ); + }) + } + }; + + this.each(function(){ + var container = this; + + // store list of contained images (excluding those in tables) + var imgs = $('img', container).not($("table img")); + + // store initial dimensions on each image + imgs.each(function(){ + $(this).attr('startwidth', $(this).width()) + .attr('startheight', $(this).height()) + .css('max-width', $(this).attr('startwidth')+"px"); + + fit.one(this); + }); + // Re-adjust when window width is changed + $(window).bind('resize', function(){ + fit.all(imgs); + }); + }); + return this; + }; +})(jQuery); \ No newline at end of file diff --git a/modules/image_fit/module.info b/modules/image_fit/module.info new file mode 100755 index 0000000..1703d41 --- /dev/null +++ b/modules/image_fit/module.info @@ -0,0 +1,7 @@ +name = "Image fit" +description = "Fits the resized image to the available space. Scale down image if it is too big." +author_name = "floridave" +author_url = "http://codex.gallery2.org/User:Floridave" +info_url = "http://codex.gallery2.org/Gallery3:Modules:image_fit" +discuss_url = "http://gallery.menalto.com/forum_module_image_fit" +version = 1 diff --git a/modules/latestupdates/controllers/latestupdates.php b/modules/latestupdates/controllers/latestupdates.php new file mode 100755 index 0000000..fb9a8f2 --- /dev/null +++ b/modules/latestupdates/controllers/latestupdates.php @@ -0,0 +1,596 @@ +loaded()) { + throw new Kohana_404_Exception(); + } + + // Grab the first 10 items for the specified display type. + // Default to "popular" if display type is invalid. + $template = new View("latestupdates_user_profile_carousel.html"); + $template->items = latestupdates_Controller::items($str_display_type, $user_id, 10); + + // Figure out the text for the "View more" link. + if ($str_display_type == "recent") { + $template->str_view_more_title = t("View all recent uploads"); + } elseif ($str_display_type == "albums") { + $template->str_view_more_title = t("View all recent albums"); + } else { + $template->str_view_more_title = t("View more popular uploads"); + } + + // Set up a "View more" url. + $template->str_view_more_url = url::site("latestupdates/users/{$str_display_type}/{$user_id}"); + + // Display the page. + print $template; + + // Make item links in the carousel load as virtual albums for the view type instead of the regular album. + item::set_display_context_callback("latestupdates_Controller::get_display_context", + $str_display_type, $user_id); + return ; + } + + public function users($str_display_type, $user_id) { + // Generate a dynamic page with items uploaded by a specific user ($user_id). + + // Make sure user_id is valid. + $current_user = ORM::factory("user", $user_id); + if (!$current_user->loaded()) { + throw new Kohana_404_Exception(); + } + + // Figure out how many items to display on each page. + $page_size = module::get_var("gallery", "page_size", 9); + + // Figure out which page # the visitor is on and + // don't allow the visitor to go below page 1. + $page = Input::instance()->get("page", 1); + if ($page < 1) { + url::redirect("latestupdates/users/{$str_display_type}/{$user_id}"); + } + + // If this page was reached from a breadcrumb, figure out what page to load from the show id. + $show = Input::instance()->get("show"); + if ($show) { + $child = ORM::factory("item", $show); + $index = latestupdates_Controller::_get_position($child, $str_display_type, $user_id); + if ($index) { + $page = ceil($index / $page_size); + if ($page == 1) { + url::redirect("latestupdates/users/{$str_display_type}/{$user_id}"); + } else { + url::redirect("latestupdates/users/{$str_display_type}/{$user_id}?page=$page"); + } + } + } + + // First item to display. + $offset = ($page - 1) * $page_size; + + // Determine the total number of items, + // for page numbering purposes. + $count = latestupdates_Controller::items_count($str_display_type, $user_id); + + // Figure out what the highest page number is. + $max_pages = ceil($count / $page_size); + + // Don't let the visitor go past the last page. + if ($max_pages && $page > $max_pages) { + url::redirect("latestupdates/users/{$str_display_type}/{$user_id}?page=$max_pages"); + } + + // Figure out which items to display on this page. + $children = latestupdates_Controller::items($str_display_type, $user_id, $page_size, $offset); + + // Figure out the page title. + $str_page_title = ""; + if ($str_display_type == "recent") { + $str_page_title = t("Recent Uploads"); + } elseif ($str_display_type == "albums") { + $str_page_title = t("Recent Albums"); + } else { + $str_page_title = t("Most Viewed"); + } + + // Set up the previous and next page buttons. + if ($page > 1) { + $previous_page = $page - 1; + $view->previous_page_link = url::site("latestupdates/users/{$str_display_type}/{$user_id}?page={$previous_page}"); + } + if ($page < $max_pages) { + $next_page = $page + 1; + $view->next_page_link = url::site("latestupdates/users/{$str_display_type}/{$user_id}?page={$next_page}"); + } + + // Set up and display the actual page. + $root = item::root(); + $template = new Theme_View("page.html", "collection", "LatestUpdates"); + $template->page_title = t("Gallery :: Latest Updates"); + $template->set_global( + array("page" => $page, + "max_pages" => $max_pages, + "page_size" => $page_size, + "children" => $children, + "breadcrumbs" => array( + Breadcrumb::instance($root->title, $root->url())->set_first(), + Breadcrumb::instance(t("User profile: %name", array("name" => $current_user->display_name())), + url::site("user_profile/show/{$user_id}")), + Breadcrumb::instance($str_page_title, + url::site("latestupdates/users/{$str_display_type}/{$user_id}"))->set_last()), + "children_count" => $count)); + $template->content = new View("dynamic.html"); + $template->content->title = $str_page_title; + + // Display the page. + print $template; + + // Set up the callback so links within the photo page will lead to photos within the virtual album + // instead of the actual album. + item::set_display_context_callback("latestupdates_Controller::get_display_context", + $str_display_type, $user_id); + } + + public function albums($id) { + // Figure out how many items to display on each page. + $page_size = module::get_var("gallery", "page_size", 9); + + // Load the parent album. + $item = ORM::factory("item", $id); + + // Figure out which page # the visitor is on and + // don't allow the visitor to go below page 1. + $page = Input::instance()->get("page", 1); + if ($page < 1) { + url::redirect("latestupdates/albums/{$item->id}"); + } + + // If this page was reached from a breadcrumb, figure out what page to load from the show id. + $show = Input::instance()->get("show"); + if ($show) { + $child = ORM::factory("item", $show); + $index = latestupdates_Controller::_get_position($child, "descendants", $item->id); + if ($index) { + $page = ceil($index / $page_size); + if ($page == 1) { + url::redirect("latestupdates/albums/{$item->id}"); + } else { + url::redirect("latestupdates/albums/{$item->id}?page=$page"); + } + } + } + + // First item to display. + $offset = ($page - 1) * $page_size; + + // Determine the total number of items, + // for page numbering purposes. + $count = latestupdates_Controller::items_count("descendants", $item->id); + + // Figure out what the highest page number is. + $max_pages = ceil($count / $page_size); + + // Don't let the visitor go past the last page. + if ($max_pages && $page > $max_pages) { + url::redirect("latestupdates/albums/{$item->id}?page=$max_pages"); + } + + // Figure out which items to display on this page. + $children = latestupdates_Controller::items("descendants", $item->id, $page_size, $offset); + + // Set up the previous and next page buttons. + if ($page > 1) { + $previous_page = $page - 1; + $view->previous_page_link = url::site("latestupdates/albums/{$item->id}?page={$previous_page}"); + } + if ($page < $max_pages) { + $next_page = $page + 1; + $view->next_page_link = url::site("latestupdates/albums/{$item->id}?page={$next_page}"); + } + + // Set up breadcrumbs. + $breadcrumbs = array(); + $counter = 0; + $breadcrumbs[] = Breadcrumb::instance(t("Recent Uploads"), url::site("latestupdates/albums/{$item->id}"))->set_last(); + $parent_item = $item; + while ($parent_item->id != 1) { + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url()); + $parent_item = ORM::factory("item", $parent_item->parent_id); + } + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url())->set_first(); + $breadcrumbs = array_reverse($breadcrumbs, true); + + // Set up and display the actual page. + $root = item::root(); + $template = new Theme_View("page.html", "collection", "LatestUpdates"); + $template->page_title = t("Gallery :: Latest Updates"); + $template->set_global( + array("page" => $page, + "max_pages" => $max_pages, + "page_size" => $page_size, + "children" => $children, + "breadcrumbs" => $breadcrumbs, + "children_count" => $count)); + $template->content = new View("dynamic.html"); + $template->content->title = t("Recent Uploads"); + + // Display the page. + print $template; + + // Set up the callback so links within the photo page will lead to photos within the virtual album + // instead of the actual album. + item::set_display_context_callback("latestupdates_Controller::get_display_context", + "descendants", $item->id); + } + + public function updates() { + // Figure out how many items to display on each page. + $page_size = module::get_var("gallery", "page_size", 9); + + // Figure out which page # the visitor is on and + // don't allow the visitor to go below page 1. + $page = Input::instance()->get("page", 1); + if ($page < 1) { + url::redirect("latestupdates/updates"); + } + + // If this page was reached from a breadcrumb, figure out what page to load from the show id. + $show = Input::instance()->get("show"); + if ($show) { + $child = ORM::factory("item", $show); + $index = latestupdates_Controller::_get_position($child, "recent", 0); + if ($index) { + $page = ceil($index / $page_size); + if ($page == 1) { + url::redirect("latestupdates/updates"); + } else { + url::redirect("latestupdates/updates?page=$page"); + } + } + } + + // First item to display. + $offset = ($page - 1) * $page_size; + + // Determine the total number of items, + // for page numbering purposes. + $count = latestupdates_Controller::items_count("recent", 0); + + // Figure out what the highest page number is. + $max_pages = ceil($count / $page_size); + + // Don't let the visitor go past the last page. + if ($max_pages && $page > $max_pages) { + url::redirect("latestupdates/updates?page=$max_pages"); + } + + // Figure out which items to display on this page. + $items = latestupdates_Controller::items("recent", 0, $page_size, $offset); + + // Set up the previous and next page buttons. + if ($page > 1) { + $previous_page = $page - 1; + $view->previous_page_link = url::site("latestupdates/updates?page={$previous_page}"); + } + if ($page < $max_pages) { + $next_page = $page + 1; + $view->next_page_link = url::site("latestupdates/updates?page={$next_page}"); + } + + // Set up and display the actual page. + $root = item::root(); + $template = new Theme_View("page.html", "collection", "LatestUpdates"); + $template->page_title = t("Gallery :: Latest Updates"); + $template->set_global( + array("page" => $page, + "max_pages" => $max_pages, + "page_size" => $page_size, + "children" => $items, + "breadcrumbs" => array( + Breadcrumb::instance($root->title, $root->url())->set_first(), + Breadcrumb::instance(t("Recent Uploads"), + url::site("latestupdates/updates"))->set_last()), + "children_count" => $count)); + $template->content = new View("dynamic.html"); + $template->content->title = t("Recent Uploads"); + + // Display the page. + print $template; + + // Set up the callback so links within the photo page will lead to photos within the virtual album + // instead of the actual album. + item::set_display_context_callback("latestupdates_Controller::get_display_context", + "recent", 0); + } + + static function get_display_context($item, $str_display_type, $user_id) { + // Set up display elements on the photo page to link to the virtual album. + // Valid $str_display_type values are popular, recent, albums and descendants. + // $user_id can be set to "0" to search site wide. + // For "descendants", $user_id should be the album id #. + + // Figure out page title. + $str_page_title = ""; + if ($str_display_type == "recent") { + $str_page_title = t("Recent Uploads"); + } elseif ($str_display_type == "albums") { + $str_page_title = t("Recent Albums"); + } elseif ($str_display_type == "descendants") { + $str_page_title = t("Recent Uploads"); + } else { + $str_page_title = t("Most Viewed"); + } + + // Figure out item position. + $position = latestupdates_Controller::_get_position($item, $str_display_type, $user_id); + + // Figure out which items are the previous and next items with the virtual album. + if ($position > 1) { + list ($previous_item, $ignore, $next_item) = + latestupdates_Controller::items($str_display_type, $user_id, 3, $position - 2); + } else { + $previous_item = null; + list ($next_item) = latestupdates_Controller::items($str_display_type, $user_id, 1, $position); + } + + // Figure out total number of items (excluding albums). + $count = latestupdates_Controller::items_count($str_display_type, $user_id); + + // Set up breadcrumbs. + $root = item::root(); + $breadcrumbs = array(); + if ($user_id == 0) { + $breadcrumbs[0] = Breadcrumb::instance($root->title, $root->url())->set_first(); + $breadcrumbs[1] = Breadcrumb::instance($str_page_title, + url::site("latestupdates/updates?show={$item->id}")); + $breadcrumbs[2] = Breadcrumb::instance($item->title, $item->url())->set_last(); + } else { + if ($str_display_type == "descendants") { + $counter = 0; + $breadcrumbs[] = Breadcrumb::instance($item->title, $item->url())->set_last(); + $breadcrumbs[] = Breadcrumb::instance(t("Recent Uploads"), url::site("latestupdates/albums/{$user_id}?show={$item->id}")); + $parent_item = ORM::factory("item", $user_id); + while ($parent_item->id != 1) { + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url()); + $parent_item = ORM::factory("item", $parent_item->parent_id); + } + $breadcrumbs[] = Breadcrumb::instance($parent_item->title, $parent_item->url())->set_first(); + $breadcrumbs = array_reverse($breadcrumbs, true); + } else { + $current_user = ORM::factory("user", $user_id); + $breadcrumbs[0] = Breadcrumb::instance($root->title, $root->url())->set_first(); + $breadcrumbs[1] = Breadcrumb::instance(t("User profile: %name", array("name" => $current_user->display_name())), + url::site("user_profile/show/{$user_id}")); + $breadcrumbs[2] = Breadcrumb::instance($str_page_title, + url::site("latestupdates/users/{$str_display_type}/{$user_id}?show={$item->id}")); + $breadcrumbs[3] = Breadcrumb::instance($item->title, $item->url())->set_last(); + } + } + + // Return the display elements. + return array("position" => $position, + "previous_item" => $previous_item, + "next_item" => $next_item, + "sibling_count" => $count, + "siblings_callback" => array("latestupdates_Controller::items", array($str_display_type, $user_id)), + "breadcrumbs" => $breadcrumbs + ); + } + + static function items_count($str_display_type, $user_id) { + // Figure out the total number of items. + // Valid $str_display_type values are popular, recent, albums and descendants. + // $user_id can be set to "0" to search site wide. + // For "descendants", $user_id should be the album id #. + + // If $str_display_type is albums, then we only want albums. + // If it's not, then we want everything except albums. + if ($str_display_type == "albums") { + // This is only used for user profiles, so we always want + // results from a specific user. + $count = ORM::factory("item") + ->viewable() + ->where("type", "=", "album") + ->where("owner_id", "=", $user_id) + ->count_all(); + } else { + + // If $user_id is not 0 we only want results from a specific user, + // Or else we want results from any user. + if ($user_id == 0) { + $count = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->count_all(); + } else { + + // If type is descendants, then user_id is actually an item id#. + if ($str_display_type == "descendants") { + $item = ORM::factory("item", $user_id); + $count = $item + ->viewable() + ->where("type", "!=", "album") + ->order_by("created", "DESC") + ->descendants_count(); + } else { + $count = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->where("owner_id", "=", $user_id) + ->count_all(); + } + } + } + + return $count; + } + + static function items($str_display_type, $user_id, $limit=null, $offset=null) { + // Query the database for a list of items to display in the virtual album. + // Valid $str_display_type values are popular, recent, albums and descendants. + // $user_id can be set to "0" to search site wide. + // For "descendants", $user_id should be the album id #. + + // Figure out search parameters based on $str_display_type. + $str_where = array(); + $str_orderby_field = ""; + if ($str_display_type == "recent") { + $str_where = array(array("type", "!=", "album")); + $str_orderby_field = "created"; + } elseif ($str_display_type == "albums") { + $str_where = array(array("type", "=", "album")); + $str_orderby_field = "created"; + } else { + $str_where = array(array("type", "!=", "album")); + $str_orderby_field = "view_count"; + } + + // Search the database for matching items. + + // Searching for descendants of a parent album is significantly + // different from the other query types, so we're doing this one + // seperately. + if ($str_display_type == "descendants") { + $item = ORM::factory("item", $user_id); + return $item + ->viewable() + ->where("type", "!=", "album") + ->order_by("created", "DESC") + ->descendants($limit, $offset); + } + + // If $user_id is greater then 0, limit results + // to a specific user. + if ($user_id == 0) { + return ORM::factory("item") + ->viewable() + ->merge_where($str_where) + ->order_by($str_orderby_field, "DESC") + ->find_all($limit, $offset); + } else { + return ORM::factory("item") + ->viewable() + ->merge_where($str_where) + ->where("owner_id", "=", $user_id) + ->order_by($str_orderby_field, "DESC") + ->find_all($limit, $offset); + } + } + + private function _get_position($item, $str_display_type, $user_id) { + // Figure out the item's position within the virtual album. + // Valid $str_display_type values are popular, recent, albums and descendants. + // $user_id can be set to "0" to search site wide. + // For "descendants", $user_id should be the album id #. + + // Figure out search conditions. + $str_where = array(); + $str_orderby_field = ""; + if ($str_display_type == "recent") { + $str_where = array(array("type", "!=", "album")); + $str_orderby_field = "created"; + } elseif ($str_display_type == "albums") { + $str_where = array(array("type", "=", "album")); + $str_orderby_field = "created"; + } else { + $str_where = array(array("type", "!=", "album")); + $str_orderby_field = "view_count"; + } + + // Count the number of records that have a higher orderby_field value then + // the item we're looking for. + $position = 0; + if ($user_id == 0) { + $position = ORM::factory("item") + ->viewable() + ->merge_where($str_where) + ->where($str_orderby_field, ">", $item->$str_orderby_field) + ->order_by($str_orderby_field, "DESC") + ->count_all(); + } else { + if ($str_display_type == "descendants") { + $album_item = ORM::factory("item", $user_id); + $position = $album_item + ->viewable() + ->where("type", "!=", "album") + ->where("created", ">", $item->created) + ->order_by("created", "DESC") + ->descendants_count(); + } else { + $position = ORM::factory("item") + ->viewable() + ->where("owner_id", "=", $user_id) + ->merge_where($str_where) + ->where($str_orderby_field, ">", $item->$str_orderby_field) + ->order_by($str_orderby_field, "DESC") + ->count_all(); + } + } + + // Set up a db query for all records with the same orderby field value + // as the item we're looking for. + $items = ORM::factory("item"); + if ($user_id == 0) { + $items->viewable() + ->merge_where($str_where) + ->where($str_orderby_field, "=", $item->$str_orderby_field) + ->order_by($str_orderby_field, "DESC"); + } else { + if ($str_display_type == "descendants") { + $item_album = ORM::factory("item", $user_id); + $items = $item_album + ->viewable() + ->where("type", "!=", "album") + ->where("created", "=", $item->created) + ->order_by("created", "DESC"); + } else { + $items->viewable() + ->where("owner_id", "=", $user_id) + ->merge_where($str_where) + ->where($str_orderby_field, "=", $item->$str_orderby_field) + ->order_by($str_orderby_field, "DESC"); + } + } + + // Loop through each remaining match, increasing position by 1 each time + // until we find a match. + if ($str_display_type == "descendants") { + foreach ($items->descendants() as $row) { + $position++; + if ($row->id == $item->id) { + break; + } + } + } else { + foreach ($items->find_all() as $row) { + $position++; + if ($row->id == $item->id) { + break; + } + } + } + + // Return the result. + return $position; + } +} diff --git a/modules/latestupdates/css/latestupdates_jcarousel.css b/modules/latestupdates/css/latestupdates_jcarousel.css new file mode 100755 index 0000000..f123143 --- /dev/null +++ b/modules/latestupdates/css/latestupdates_jcarousel.css @@ -0,0 +1,95 @@ +#jCarouselLite .carousel { + padding: 10px 0 0 0; + margin: 0 0 20px 10px; + position: relative; +} + +#jCarouselLite .digg { + position: absolute; + left: 610px; + top: 110px; +} + +#jCarouselLite .main { + margin-left: 0px; +} + +#jCarouselLite .demo em { + color: #FF3300; + font-weight: bold; + font-size: 60%; + font-style: normal; +} + +#jCarouselLite .carousel a.prev, #jCarouselLite .carousel a.next { + display: block; + float: left; + width: 30px; + height: 90px; + text-decoration: none; + background: url("../images/imageNavLeft.gif") left 60px no-repeat; +} + +#jCarouselLite .carousel a.next { + background: url("../images/imageNavRight.gif") right 60px no-repeat; +} + +#jCarouselLite .carousel a.next:hover { + background-image: url("../images/imageNavRightHover.gif"); +} + +#jCarouselLite .carousel a.prev:hover { + background-image: url("../images/imageNavLeftHover.gif"); +} + +#jCarouselLite .carousel a:hover, #jCarouselLite .carousel a:active { + border: none; + outline: none; +} + +#jCarouselLite .carousel .jCarouselLite { + border: 1px solid black; + float: left; + background-color: #dfdfdf; + + /* Needed for rendering without flicker */ + position: relative; + visibility: hidden; + left: -5000px; +} + +#jCarouselLite .carousel ul { + margin: 0; +} + +#jCarouselLite .carousel li img, +#jCarouselLite .carousel li p { + background-color: #fff; + margin: 10px; +} + +#jCarouselLite .widget img { + cursor: pointer; +} + +#jCarouselLite .mid { + margin-left: 80px; + width: 400px; + height: 300px; +} + +#jCarouselLite .vertical { + margin-left: 90px; +} + +#jCarouselLite .vertical .jCarouselLite { /* so that in IE 6, the carousel div doesnt expand to fill the space */ + width: 90px; +} + +#jCarouselLite .imageSlider li img, +#jCarouselLite .imageSlider li p, +#jCarouselLite .imageSliderExt li img , +#jCarouselLite .imageSliderExt li p { + width: 400px; + height: 300px; +} diff --git a/modules/latestupdates/helpers/latestupdates_block.php b/modules/latestupdates/helpers/latestupdates_block.php new file mode 100755 index 0000000..b15b90f --- /dev/null +++ b/modules/latestupdates/helpers/latestupdates_block.php @@ -0,0 +1,52 @@ + t("Latest Updates")); + } + + static function get($block_id, $theme) { + $block = ""; + + switch ($block_id) { + case "latestupdates": + + // Make a new sidebar block. + $block = new Block(); + $block->css_id = "g-latest-updates"; + $block->title = t("Latest Updates"); + $block->content = new View("latestupdates_block.html"); + + if (!$theme->item()) { + $block->content->update_links = array( + "Entire Gallery" => url::site("latestupdates/updates")); + } else { + // Determine the ID# of the current album. + $albumID = $theme->item->is_album() ? $theme->item->id : $theme->item->parent_id; + $block->content->update_links = array( + "Entire Gallery" => url::site("latestupdates/updates"), + "This Album" => url::site("latestupdates/albums/$albumID") + ); + } + break; + } + return $block; + } +} diff --git a/modules/latestupdates/helpers/latestupdates_event.php b/modules/latestupdates/helpers/latestupdates_event.php new file mode 100755 index 0000000..3809933 --- /dev/null +++ b/modules/latestupdates/helpers/latestupdates_event.php @@ -0,0 +1,29 @@ +user_id = $data->user->id; + $data->content[] = (object) array("title" => t("Latest Updates"), "view" => $v); + } +} diff --git a/modules/latestupdates/helpers/latestupdates_theme.php b/modules/latestupdates/helpers/latestupdates_theme.php new file mode 100755 index 0000000..e6423a8 --- /dev/null +++ b/modules/latestupdates/helpers/latestupdates_theme.php @@ -0,0 +1,27 @@ +script("jcarousellite_1.0.1.js") . + $theme->css("latestupdates_jcarousel.css"); + } +} diff --git a/modules/latestupdates/images/imageNavLeft.gif b/modules/latestupdates/images/imageNavLeft.gif new file mode 100755 index 0000000000000000000000000000000000000000..9c0e5af39378e924aaa9b7f621c5b0fed3049725 GIT binary patch literal 538 zcmV+#0_FWjNk%w1VHW@w0M!5h^!4@4)Yh=HwSt(QC{9@F>+8|d(!$Bh)!N&<#>v{< z-mI;y5IRLsZ+O|++2!Ts&CSi$*4FIp?cw3!+}zx$sj2+^{m|Ij`T6xW2!?`~3Xz@$tyd&~Av2^78WA-{9io)^!E4Ose2_Pd`u2&Mx^C)zp z!V*nJE}LZ%kmng~(cbVlyx@4Sf1OTl&+q#+1|DBO89j!FhXDF)THsq&foxnm(kf2L=T?GqJG(sHr}(xF#VFFFd{n4YsMi#J&L{AUn!C zD-6P#%h3TY6foA-3BkhG+$IYS2sYy5F14ED=n2#c(aRSD&OYtRBFHKT#l?y~`8)v& zy9yxCL9n2~0|p6>sNgEbgcLX;N}NbBK!p*YeiWckgONu=3Kj@>B&36f2pTx3T*;CH z1s5(L2pSUOfdK~+XnfeYlSYO&4HX1HuoET5NeBi&NB|&#!Uh2gMnqTx22X(r211B% cvA~6h5C$fAsYw< z^@z;(-0AVP)aTRV?X<_!yx#Mv#@F@u`E-qwj>qbtvb%e<*z4@-z3Aoa@#FLT zr_t--wwzRG^C%-Z1M^!E4O`HW^zJ1u593N8m$*btP;VFkmA^Jb4QvE-djO2DcM7GHR?a&X~rJCpfY1Ph3Oa%c9hzcjP!k_2bYLL@LWTx7qDq}gwZRAg1TGX| zz#)SGTwrAhK;a=qhe!?vcx}P9t=kr3JyhT!=SLU^CrBu$B%yC#7%B$5kZVBeoCFRU zSRmm>1z-pi$O4GL!*G-YA_PQ`f#Su7&mI6&Ake|`7gr*95O@$FMhX`ON=FF-06V(4 BBqIO- literal 0 HcmV?d00001 diff --git a/modules/latestupdates/images/imageNavRight.gif b/modules/latestupdates/images/imageNavRight.gif new file mode 100755 index 0000000000000000000000000000000000000000..ad4bb0076dab554adca45f7f349539a03ea2b9da GIT binary patch literal 535 zcmV+y0_gomNk%w1VHW@w0M!5hCrw!D>+8|d(q({%!pY3l+S|Ow$k!H&DPe|$IsE!+}`x{_0iee*xumm?d@-fkKy6r+}zyp@$sptsr>!@ z_4f9Hn4bCh`ReTL;^gGW$;t2U@8{>|-{0T%`1rTDxWdB1tg*7Qv$MXxzx(|B?eOs8 zCx5J@bmM~+1u{!?)m!q+Th~!_V?W4FV$D^3vMe*4^Lf?d}FL zKJf7HA^8LV00000EC2ui02crk000L6z@KoKk(6c|k3F3&2Y(K8CGx!>@2fYDh0L@b?t&+mf-BVIorJ%xsch=l?V0Y4QkIgyeG5R#UW zG$9uRsd)YHqN3KrB53k(G@;NdaX&EhA~3CYO5!0J0D#VrNGJlGu(^al&L0R=Yy z0DTNN0I;A96&g~>xIp8ELx%(&N_6-_gNjW*0${+AsAGZ!DHsV6G2#IT7${S!gnydL4_J6a^|e@A%uoB6b|Y{kx|lt01_1>RKO4-#R3%%)O@)U;DUe?CS0O0 ZaYDd_E>mR&Xg~r30}Ld%*clQ806VQz7mEM@ literal 0 HcmV?d00001 diff --git a/modules/latestupdates/images/imageNavRightHover.gif b/modules/latestupdates/images/imageNavRightHover.gif new file mode 100755 index 0000000000000000000000000000000000000000..a5abcc996f779f62a009284e1b9cb1810bd7d948 GIT binary patch literal 613 zcmV-r0-F6tNk%w1VHp4!0M!5hZI-Xl+1thD`jpD-`uqFD)ZEA4?b7D+rq}oD@9>w< z^@z;(-0AVP)aSIv)4bmEt-#Fn`1y{<>U^=&(&X--vb!fuSnKTU)8FQJz3Aoa@xjc} z7vD|2bin`L@f10R-zv7_C;9sN8yvWPk z?e~4a?CFV$D^3vMe*4^Lf?d}FL zKJf7HA^8LV00000EC2ui02u%o000L6z@KpVOK2E}WRjstyogYt@$f(>7FY%1acD+` zuO8!ZMF==EjsUS3JQ%$vF??VnIE1{Oz(Ke=6dF(obqfc3hy)P_E&~)jLkSFQEj5;x zn3o3`DilvI8V?HsI;Ezks0JksBQJys3O%y3w6(Gl69z`26gj@XAsfHLz8EDcBa;$1 z%*{AHA|^b}&M6Z-2MQfD+}$)j;36nI-rOoO1qTZ!Jnim0;PDm}?>r|l4(bIv{QW!e z07J0oR{#VAbtiTNSjZ4yylDIaoG_S81;dLDeF#*zP{jualT!HW2XNlV9TPrm2<4(c zJ$TT@y*wcUMF2trB-q%=(}#(I0z8A-Nb#Wpju#^yxM*;rX;T(Xqc&|o0ziQaMHqC* zV8E7F11mm2@DPc@0Io37s$B~MY*8L^euSZ*qJ)A<5%T7p(PBW1q5-hZNkE~&gc5FA z@O>a5ED8ub1V>3Q!hnhiGGc%L@c{se3I#k!{!%0dh5`;CKyct70FKc@f&c(JnLH_? literal 0 HcmV?d00001 diff --git a/modules/latestupdates/js/jcarousellite_1.0.1.js b/modules/latestupdates/js/jcarousellite_1.0.1.js new file mode 100755 index 0000000..07b82a6 --- /dev/null +++ b/modules/latestupdates/js/jcarousellite_1.0.1.js @@ -0,0 +1,341 @@ +/** + * jCarouselLite - jQuery plugin to navigate images/any content in a carousel style widget. + * @requires jQuery v1.2 or above + * + * http://gmarwaha.com/jquery/jcarousellite/ + * + * Copyright (c) 2007 Ganeshji Marwaha (gmarwaha.com) + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + * + * Version: 1.0.1 + * Note: Requires jquery 1.2 or above from version 1.0.1 + */ + +/** + * Creates a carousel-style navigation widget for images/any-content from a simple HTML markup. + * + * The HTML markup that is used to build the carousel can be as simple as... + * + * + * + * As you can see, this snippet is nothing but a simple div containing an unordered list of images. + * You don't need any special "class" attribute, or a special "css" file for this plugin. + * I am using a class attribute just for the sake of explanation here. + * + * To navigate the elements of the carousel, you need some kind of navigation buttons. + * For example, you will need a "previous" button to go backward, and a "next" button to go forward. + * This need not be part of the carousel "div" itself. It can be any element in your page. + * Lets assume that the following elements in your document can be used as next, and prev buttons... + * + * + * + * + * Now, all you need to do is call the carousel component on the div element that represents it, and pass in the + * navigation buttons as options. + * + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev" + * }); + * + * That's it, you would have now converted your raw div, into a magnificient carousel. + * + * There are quite a few other options that you can use to customize it though. + * Each will be explained with an example below. + * + * @param an options object - You can specify all the options shown below as an options object param. + * + * @option btnPrev, btnNext : string - no defaults + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev" + * }); + * @desc Creates a basic carousel. Clicking "btnPrev" navigates backwards and "btnNext" navigates forward. + * + * @option btnGo - array - no defaults + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * btnGo: [".0", ".1", ".2"] + * }); + * @desc If you don't want next and previous buttons for navigation, instead you prefer custom navigation based on + * the item number within the carousel, you can use this option. Just supply an array of selectors for each element + * in the carousel. The index of the array represents the index of the element. What i mean is, if the + * first element in the array is ".0", it means that when the element represented by ".0" is clicked, the carousel + * will slide to the first element and so on and so forth. This feature is very powerful. For example, i made a tabbed + * interface out of it by making my navigation elements styled like tabs in css. As the carousel is capable of holding + * any content, not just images, you can have a very simple tabbed navigation in minutes without using any other plugin. + * The best part is that, the tab will "slide" based on the provided effect. :-) + * + * @option mouseWheel : boolean - default is false + * @example + * $(".carousel").jCarouselLite({ + * mouseWheel: true + * }); + * @desc The carousel can also be navigated using the mouse wheel interface of a scroll mouse instead of using buttons. + * To get this feature working, you have to do 2 things. First, you have to include the mouse-wheel plugin from brandon. + * Second, you will have to set the option "mouseWheel" to true. That's it, now you will be able to navigate your carousel + * using the mouse wheel. Using buttons and mouseWheel or not mutually exclusive. You can still have buttons for navigation + * as well. They complement each other. To use both together, just supply the options required for both as shown below. + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * mouseWheel: true + * }); + * + * @option auto : number - default is null, meaning autoscroll is disabled by default + * @example + * $(".carousel").jCarouselLite({ + * auto: 800, + * speed: 500 + * }); + * @desc You can make your carousel auto-navigate itself by specfying a millisecond value in this option. + * The value you specify is the amount of time between 2 slides. The default is null, and that disables auto scrolling. + * Specify this value and magically your carousel will start auto scrolling. + * + * @option speed : number - 200 is default + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * speed: 800 + * }); + * @desc Specifying a speed will slow-down or speed-up the sliding speed of your carousel. Try it out with + * different speeds like 800, 600, 1500 etc. Providing 0, will remove the slide effect. + * + * @option easing : string - no easing effects by default. + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * easing: "bounceout" + * }); + * @desc You can specify any easing effect. Note: You need easing plugin for that. Once specified, + * the carousel will slide based on the provided easing effect. + * + * @option vertical : boolean - default is false + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * vertical: true + * }); + * @desc Determines the direction of the carousel. true, means the carousel will display vertically. The next and + * prev buttons will slide the items vertically as well. The default is false, which means that the carousel will + * display horizontally. The next and prev items will slide the items from left-right in this case. + * + * @option circular : boolean - default is true + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * circular: false + * }); + * @desc Setting it to true enables circular navigation. This means, if you click "next" after you reach the last + * element, you will automatically slide to the first element and vice versa. If you set circular to false, then + * if you click on the "next" button after you reach the last element, you will stay in the last element itself + * and similarly for "previous" button and first element. + * + * @option visible : number - default is 3 + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * visible: 4 + * }); + * @desc This specifies the number of items visible at all times within the carousel. The default is 3. + * You are even free to experiment with real numbers. Eg: "3.5" will have 3 items fully visible and the + * last item half visible. This gives you the effect of showing the user that there are more images to the right. + * + * @option start : number - default is 0 + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * start: 2 + * }); + * @desc You can specify from which item the carousel should start. Remember, the first item in the carousel + * has a start of 0, and so on. + * + * @option scrool : number - default is 1 + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * scroll: 2 + * }); + * @desc The number of items that should scroll/slide when you click the next/prev navigation buttons. By + * default, only one item is scrolled, but you may set it to any number. Eg: setting it to "2" will scroll + * 2 items when you click the next or previous buttons. + * + * @option beforeStart, afterEnd : function - callbacks + * @example + * $(".carousel").jCarouselLite({ + * btnNext: ".next", + * btnPrev: ".prev", + * beforeStart: function(a) { + * alert("Before animation starts:" + a); + * }, + * afterEnd: function(a) { + * alert("After animation ends:" + a); + * } + * }); + * @desc If you wanted to do some logic in your page before the slide starts and after the slide ends, you can + * register these 2 callbacks. The functions will be passed an argument that represents an array of elements that + * are visible at the time of callback. + * + * + * @cat Plugins/Image Gallery + * @author Ganeshji Marwaha/ganeshread@gmail.com + */ + +(function($) { // Compliant with jquery.noConflict() +$.fn.jCarouselLite = function(o) { + o = $.extend({ + btnPrev: null, + btnNext: null, + btnGo: null, + mouseWheel: false, + auto: null, + + speed: 200, + easing: null, + + vertical: false, + circular: true, + visible: 3, + start: 0, + scroll: 1, + + beforeStart: null, + afterEnd: null + }, o || {}); + + return this.each(function() { // Returns the element collection. Chainable. + + var running = false, animCss=o.vertical?"top":"left", sizeCss=o.vertical?"height":"width"; + var div = $(this), ul = $("ul", div), tLi = $("li", ul), tl = tLi.size(), v = o.visible; + + if(o.circular) { + ul.prepend(tLi.slice(tl-v-1+1).clone()) + .append(tLi.slice(0,v).clone()); + o.start += v; + } + + var li = $("li", ul), itemLength = li.size(), curr = o.start; + div.css("visibility", "visible"); + + li.css({overflow: "hidden", float: o.vertical ? "none" : "left"}); + ul.css({margin: "0", padding: "0", position: "relative", "list-style-type": "none", "z-index": "1"}); + div.css({overflow: "hidden", position: "relative", "z-index": "2", left: "0px"}); + + var liSize = o.vertical ? height(li) : width(li); // Full li size(incl margin)-Used for animation + var ulSize = liSize * itemLength; // size of full ul(total length, not just for the visible items) + var divSize = liSize * v; // size of entire div(total length for just the visible items) + + li.css({width: li.width(), height: li.height()}); + ul.css(sizeCss, ulSize+"px").css(animCss, -(curr*liSize)); + + div.css(sizeCss, divSize+"px"); // Width of the DIV. length of visible images + + if(o.btnPrev) + $(o.btnPrev).click(function() { + return go(curr-o.scroll); + }); + + if(o.btnNext) + $(o.btnNext).click(function() { + return go(curr+o.scroll); + }); + + if(o.btnGo) + $.each(o.btnGo, function(i, val) { + $(val).click(function() { + return go(o.circular ? o.visible+i : i); + }); + }); + + if(o.mouseWheel && div.mousewheel) + div.mousewheel(function(e, d) { + return d>0 ? go(curr-o.scroll) : go(curr+o.scroll); + }); + + if(o.auto) + setInterval(function() { + go(curr+o.scroll); + }, o.auto+o.speed); + + function vis() { + return li.slice(curr).slice(0,v); + }; + + function go(to) { + if(!running) { + + if(o.beforeStart) + o.beforeStart.call(this, vis()); + + if(o.circular) { // If circular we are in first or last, then goto the other end + if(to<=o.start-v-1) { // If first, then goto last + ul.css(animCss, -((itemLength-(v*2))*liSize)+"px"); + // If "scroll" > 1, then the "to" might not be equal to the condition; it can be lesser depending on the number of elements. + curr = to==o.start-v-1 ? itemLength-(v*2)-1 : itemLength-(v*2)-o.scroll; + } else if(to>=itemLength-v+1) { // If last, then goto first + ul.css(animCss, -( (v) * liSize ) + "px" ); + // If "scroll" > 1, then the "to" might not be equal to the condition; it can be greater depending on the number of elements. + curr = to==itemLength-v+1 ? v+1 : v+o.scroll; + } else curr = to; + } else { // If non-circular and to points to first or last, we just return. + if(to<0 || to>itemLength-v) return; + else curr = to; + } // If neither overrides it, the curr will still be "to" and we can proceed. + + running = true; + + ul.animate( + animCss == "left" ? { left: -(curr*liSize) } : { top: -(curr*liSize) } , o.speed, o.easing, + function() { + if(o.afterEnd) + o.afterEnd.call(this, vis()); + running = false; + } + ); + // Disable buttons when the carousel reaches the last/first, and enable when not + if(!o.circular) { + $(o.btnPrev + "," + o.btnNext).removeClass("disabled"); + $( (curr-o.scroll<0 && o.btnPrev) + || + (curr+o.scroll > itemLength-v && o.btnNext) + || + [] + ).addClass("disabled"); + } + + } + return false; + }; + }); +}; + +function css(el, prop) { + return parseInt($.css(el[0], prop)) || 0; +}; +function width(el) { + return el[0].offsetWidth + css(el, 'marginLeft') + css(el, 'marginRight'); +}; +function height(el) { + return el[0].offsetHeight + css(el, 'marginTop') + css(el, 'marginBottom'); +}; + +})(jQuery); \ No newline at end of file diff --git a/modules/latestupdates/module.info b/modules/latestupdates/module.info new file mode 100755 index 0000000..95aba92 --- /dev/null +++ b/modules/latestupdates/module.info @@ -0,0 +1,7 @@ +name = "LatestUpdates" +description = "Display recently uploaded photos and videos." +version = 1 +author_name = "rWatcher" +author_url = "http://codex.gallery2.org/User:RWatcher" +info_url = "http://codex.gallery2.org/Gallery3:Modules:latestupdates" +discuss_url = "http://gallery.menalto.com/node/88936" diff --git a/modules/latestupdates/views/latestupdates_block.html.php b/modules/latestupdates/views/latestupdates_block.html.php new file mode 100755 index 0000000..b1dd907 --- /dev/null +++ b/modules/latestupdates/views/latestupdates_block.html.php @@ -0,0 +1,10 @@ + +
      + $url): ?> +
    • + + + +
    • + +
    diff --git a/modules/latestupdates/views/latestupdates_user_profile_carousel.html.php b/modules/latestupdates/views/latestupdates_user_profile_carousel.html.php new file mode 100755 index 0000000..1a3ada2 --- /dev/null +++ b/modules/latestupdates/views/latestupdates_user_profile_carousel.html.php @@ -0,0 +1,37 @@ + + +
    + + + +
    + + diff --git a/modules/latestupdates/views/latestupdates_user_profile_info.html.php b/modules/latestupdates/views/latestupdates_user_profile_info.html.php new file mode 100755 index 0000000..175d137 --- /dev/null +++ b/modules/latestupdates/views/latestupdates_user_profile_info.html.php @@ -0,0 +1,14 @@ + + +
    + diff --git a/modules/moduleorder/controllers/admin_moduleorder.php b/modules/moduleorder/controllers/admin_moduleorder.php new file mode 100755 index 0000000..ff29ebd --- /dev/null +++ b/modules/moduleorder/controllers/admin_moduleorder.php @@ -0,0 +1,83 @@ +_get_view(); + } + + private function _get_view() { + $view = new Admin_View("admin.html"); + $view->page_title = t("Manage module order"); + $view->content = new View("admin_moduleorder.html"); + $view->content->csrf = access::csrf_token(); + $view->content->available = new View("admin_moduleorder_blocks.html"); + $view->content->active = new View("admin_moduleorder_blocks.html"); + if (module::get_version("gallery") > 31) { + $view->content->available->modules = $this->_get_modules(); + } + return $view; + } + + public function update() { + //Get the ordered list of modules + $modulerawlist = explode("&", trim($_POST['modulelist'], "&")); + + //Make sure that gallery and user modules are first in the list + $current_weight = 2; + $identity_provider = module::get_var("gallery", "identity_provider"); + foreach ($modulerawlist as $row) { + $currentry = explode("=", $row); + $currentry = explode(":", $currentry[1]); + if ($currentry[0] == "gallery") { + $modulelist[0] = $row; + } elseif ($currentry[0] == $identity_provider) { + $modulelist[1] = $row; + } else { + $modulelist[$current_weight] = $row; + $current_weight++; + } + } + ksort($modulelist); + + //Write the correct weight values + $current_weight = 0; + foreach ($modulelist as $row) { + $current_weight++; + $currentry = explode("=", $row); + $currentry = explode(":", $currentry[1]); + db::build() + ->update("modules") + ->set("weight", $current_weight) + ->where("id", "=", $currentry[1]) + ->execute(); + } + + message::success(t("Your settings have been saved.")); + url::redirect("admin/moduleorder"); + print $this->_get_view(); + } + + private function _get_modules() { + $active_blocks = array(); + $available_modules = moduleorder::get_available_site_modules(); + return $available_modules; + } +} + diff --git a/modules/moduleorder/helpers/moduleorder.php b/modules/moduleorder/helpers/moduleorder.php new file mode 100755 index 0000000..4c08286 --- /dev/null +++ b/modules/moduleorder/helpers/moduleorder.php @@ -0,0 +1,32 @@ +select("*")->from("modules")->order_by("weight")->execute() as $row) { + $modules["{$row->name}:$row->id"] = $row->name; + } + return $modules; + } +} diff --git a/modules/moduleorder/helpers/moduleorder_event.php b/modules/moduleorder/helpers/moduleorder_event.php new file mode 100755 index 0000000..df92e93 --- /dev/null +++ b/modules/moduleorder/helpers/moduleorder_event.php @@ -0,0 +1,39 @@ += 32 + if (module::get_version("gallery") < 32) { + site_status::warning( + t("The module 'Module Order' requires Gallery core version of 32 or higher."), + "moduleorder_needs_higherversion"); + } else { + site_status::clear("moduleorder_needs_higherversion"); + } + } + + static function admin_menu($menu, $theme) { + $menu->get("settings_menu") + ->append(Menu::factory("link") + ->id("moduleorder_menu") + ->label(t("Module order")) + ->url(url::site("admin/moduleorder"))); + } +} diff --git a/modules/moduleorder/helpers/moduleorder_installer.php b/modules/moduleorder/helpers/moduleorder_installer.php new file mode 100755 index 0000000..dfb19e4 --- /dev/null +++ b/modules/moduleorder/helpers/moduleorder_installer.php @@ -0,0 +1,38 @@ + + 31): ?> + + + +
    +

    + +

    +

    + +

    + +

    + +

    +

    +

    + +

    + +
    +
    +
    +

    +
    +
      + +
    +
    +
    +
    +
    " method="post"> + +
    +
    + Save + +
    diff --git a/modules/moduleorder/views/admin_moduleorder_blocks.html.php b/modules/moduleorder/views/admin_moduleorder_blocks.html.php new file mode 100755 index 0000000..b7d9458 --- /dev/null +++ b/modules/moduleorder/views/admin_moduleorder_blocks.html.php @@ -0,0 +1,10 @@ + + + $text): ?> + +name == ""): ?> +
  • + +
  • name ?>
  • + + diff --git a/modules/movie_tools/controllers/admin_movie_tools.php b/modules/movie_tools/controllers/admin_movie_tools.php new file mode 100755 index 0000000..18d2875 --- /dev/null +++ b/modules/movie_tools/controllers/admin_movie_tools.php @@ -0,0 +1,99 @@ +_get_admin_form(); + $this->_print_view($form); + } + + public function save() { + access::verify_csrf(); + $form = $this->_get_admin_form(); + if ($form->validate()) { + $formats = movie_tools::get_formats(); + foreach ($formats as $id => $data) { + module::set_var("movie_tools", "allow_$id", ($form->formats->{$id}->value == 1)); + } + module::set_var("movie_tools", "custom_formats", + movie_tools::formats_string_to_json($form->formats->custom_formats->value)); + module::set_var("gallery", "movie_extract_frame_time", + $form->thumbs->extract_frame_time->value); + // All done - redirect with message. + message::success(t("Movie tools settings updated successfully")); + url::redirect("admin/movie_tools"); + } + // Something went wrong - print view from existing form. + $this->_print_view($form); + } + + private function _print_view($form) { + $view = new Admin_View("admin.html"); + $view->page_title = t("Movie tools"); + $view->content = new View("admin_movie_tools.html"); + $view->content->form = $this->_get_admin_form(); + $view->content->formats = + array_merge(movie_tools::get_default_formats(), movie_tools::get_formats()); + print $view; + } + + private function _get_admin_form() { + $form = new Forge("admin/movie_tools/save", "", "post", array("id" => "g-movie-tools-admin-form")); + + $formats = movie_tools::get_formats(); + $settings_formats = $form->group("formats")->label(t("Movie format supported")); + foreach ($formats as $id => $data) { + $settings_formats->checkbox($id) + ->label($data["name"]) + ->checked(module::get_var("movie_tools", "allow_$id", false)); + } + $settings_formats->input("custom_formats") + ->label(t("Additional movie formats (enter using the same formatting as the table above)")) + ->callback(array($this, "_validate_custom_formats")) + ->error_messages("valid_custom_formats", t("You must enter valid formats like the examples in the table")) + ->value(movie_tools::formats_json_to_string(module::get_var("movie_tools", "custom_formats", ""))); + + $settings_thumbs = $form->group("thumbs")->label(t("Movie thumbnails")); + $settings_thumbs->input("extract_frame_time") + ->label(t("Seconds from start of movie at which thumbnails are extracted (default: 3)")) + ->rules("required|valid_numeric") + ->callback(array($this, "_validate_extract_frame_time")) + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_numeric", t("You must enter a number")) + ->error_messages("valid_min", t("The value cannot be negative")) + ->value(module::get_var("gallery", "movie_extract_frame_time", 3)); + + $form->submit("save")->value(t("Save")); + return $form; + } + + function _validate_extract_frame_time($input) { + if ($input->value < 0) { + $input->add_error("valid_min", true); + } + } + + function _validate_custom_formats($input) { + if ($input->value && !movie_tools::formats_string_to_array($input->value)) { + // Input isn't empty, but doesn't parse correctly - it's invalid. + $input->add_error("valid_custom_formats", true); + } + } +} diff --git a/modules/movie_tools/helpers/movie_tools.php b/modules/movie_tools/helpers/movie_tools.php new file mode 100755 index 0000000..dc07258 --- /dev/null +++ b/modules/movie_tools/helpers/movie_tools.php @@ -0,0 +1,141 @@ + t("Supported by Flowplayer 3"), + "desc" => t("Formats that should be viewable with Gallery's standard movie player"), + "types" => array("mov" => "video/quicktime", + "f4v" => "video/x-m4v")); + $data["html5"] = array("name" => t("HTML5 video"), + "desc" => t("Along with MP4, generally considered 'HTML5-compatible' formats"), + "types" => array("webm" => "video/webm", + "ogv" => "video/ogg")); + $data["mts"] = array("name" => t("MPEG transport stream"), + "desc" => t("Not a standard web format, but still supported by FFMpeg"), + "types" => array("ts" => "video/mp2t", + "mts" => "video/mp2t", + "m2ts" => "video/mp2t")); + $data["mpeg"] = array("name" => t("MPEG-1 and MPEG-2"), + "desc" => t("Not a standard web format, but still supported by FFMpeg"), + "types" => array("mpe" => "video/mpeg", + "mpeg" => "video/mpeg", + "mpg" => "video/mpeg", + "m1v" => "video/mpeg", + "m2v" => "video/mpeg")); + $data["mpeg4"] = array("name" => t("Additional MPEG-4"), + "desc" => t("Not a standard web format, but still supported by FFMpeg"), + "types" => array("mp4v" => "video/mp4", + "mpg4" => "video/mp4")); + $data["msapple"] = array("name" => t("Microsoft and Apple"), + "desc" => t("Not a standard web format, but still supported by FFMpeg"), + "types" => array("qt" => "video/quicktime", + "wmv" => "video/x-ms-wmv", + "avi" => "video/x-msvideo", + "asf" => "video/x-ms-asf")); + $data["3gphone"] = array("name" => t("3G mobile phone video"), + "desc" => t("Not a standard web format, but still supported by FFMpeg"), + "types" => array("3gp" => "video/3gpp", + "3g2" => "video/3gpp2")); + return $data; + } + + /** + * Return data similar to that of the above function but for the default Gallery formats. + * These formats are not available as options; they're just used for display purposes. + */ + static function get_default_formats() { + $data = array(); + $data["default"] = array("name" => t("Gallery's defaults"), + "desc" => t("Enabled by default on all Gallery installations"), + "types" => array("mp4" => "video/mp4", + "flv" => "video/x-flv", + "m4v" => "video/x-m4v")); + return $data; + } + + /** + * Return formats string converted to array, e.g. convert "mp4 (video/mp4), webm (video/webm)" to + * array("mp4" => "video/mp4", "webm" => "video/webm") if the string is formatted correctly; + * return null if not. + */ + static function formats_string_to_array($input) { + $format_strings = explode(",", $input); + $formats = array(); + + foreach ($format_strings as $format_string) { + $format_string = strtolower(trim($format_string)); + if (!$format_string) { + // It's blank - skip it. + continue; + } + if (preg_match("|([0-9a-z]+)\s*\(([0-9a-z]+/[0-9a-z-]+)\)|", $format_string, $matches)) { + // It's valid - include it. + $formats[$matches[1]] = $matches[2]; + } else { + // It's invalid - break out of function and return null. + return null; + } + } + + return $formats; + } + + /** + * Return formats array as string, i.e. the inverse of the function above. + */ + static function formats_array_to_string($input) { + $formats = array(); + if (!$input) { + return array(); + } + foreach ($input as $extension => $mime_type) { + $formats[] = "$extension ($mime_type)"; + } + return implode(", ", $formats); + } + + /** + * Wrapper around formats_string_to_array() to convert straight to json and handle empty inputs. + */ + static function formats_string_to_json($input) { + $array = movie_tools::formats_string_to_array($input); + if ($array) { + return json_encode($array); + } else { + return ""; + } + } + + /** + * Wrapper around formats_array_to_string() to convert straight from json and handle empty inputs. + */ + static function formats_json_to_string($input) { + if ($input) { + return movie_tools::formats_array_to_string(json_decode($input, true)); + } else { + return ""; + } + } +} diff --git a/modules/movie_tools/helpers/movie_tools_event.php b/modules/movie_tools/helpers/movie_tools_event.php new file mode 100755 index 0000000..23eeb2b --- /dev/null +++ b/modules/movie_tools/helpers/movie_tools_event.php @@ -0,0 +1,42 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("movie_tools") + ->label(t("Movie tools")) + ->url(url::site("admin/movie_tools"))); + } + + static function movie_types_by_extension($types_by_extension_wrapper) { + $formats = movie_tools::get_formats(); + foreach ($formats as $id => $data) { + if (module::get_var("movie_tools", "allow_$id", false)) { + $types_by_extension_wrapper->types_by_extension = array_merge_recursive( + $types_by_extension_wrapper->types_by_extension, $data["types"]); + } + } + if ($custom_formats = module::get_var("movie_tools", "custom_formats", "")) { + $types_by_extension_wrapper->types_by_extension = array_merge_recursive( + $types_by_extension_wrapper->types_by_extension, json_decode($custom_formats, true)); + } + } +} diff --git a/modules/movie_tools/helpers/movie_tools_installer.php b/modules/movie_tools/helpers/movie_tools_installer.php new file mode 100755 index 0000000..4edb0c8 --- /dev/null +++ b/modules/movie_tools/helpers/movie_tools_installer.php @@ -0,0 +1,39 @@ + $data) { + module::set_var("movie_tools", "allow_$id", 0); + } + } + + static function can_activate() { + $messages = array(); + if (module::get_version("gallery") < 56) { + $messages["warn"][] = t("Movie Tools requires Gallery v3.0.5 or newer."); + } + return $messages; + } + + static function uninstall() { + module::clear_all_vars("movie_tools"); + } +} diff --git a/modules/movie_tools/module.info b/modules/movie_tools/module.info new file mode 100755 index 0000000..4974a38 --- /dev/null +++ b/modules/movie_tools/module.info @@ -0,0 +1,7 @@ +name = "Movie Tools" +description = "Add support for custom movie thumbs and additional movie formats" +version = 1 +author_name = "Shad Laws" +author_url = "" +info_url = "http://codex.galleryproject.org/Gallery3:Modules:movie_tools" +discuss_url = "" diff --git a/modules/movie_tools/views/admin_movie_tools.html.php b/modules/movie_tools/views/admin_movie_tools.html.php new file mode 100755 index 0000000..5e9e8d1 --- /dev/null +++ b/modules/movie_tools/views/admin_movie_tools.html.php @@ -0,0 +1,37 @@ + +
    +

    +

    + +

    +

    + + + + +

    +

    + + + + +

    +

    + + + + + + + $data): ?> + + + + + + +
    CategoryDescriptionFormats
    +

    + + +
    diff --git a/modules/permissions_dialog_usability/module.info b/modules/permissions_dialog_usability/module.info new file mode 100755 index 0000000..3597354 --- /dev/null +++ b/modules/permissions_dialog_usability/module.info @@ -0,0 +1,7 @@ +name = "Permissions dialog usability" +description = "Usability improvments for the permissions dialog." +author_name = "floridave" +author_url = "http://codex.gallery2.org/User:Floridave" +info_url = "http://codex.gallery2.org/Gallery3:Modules:permissions_dialog_usability" +discuss_url = "http://gallery.menalto.com/forum_module_permissions_dialog_usability" +version = 1 diff --git a/modules/permissions_dialog_usability/views/permissions_form.html.php b/modules/permissions_dialog_usability/views/permissions_form.html.php new file mode 100755 index 0000000..ab22278 --- /dev/null +++ b/modules/permissions_dialog_usability/views/permissions_form.html.php @@ -0,0 +1,92 @@ + +
    + + + + + + + + + + + + + + name, $item) ?> + name, $item) ?> + name, $item) ?> + + + + + + + + + + + + + + + + + + + + + +
    display_name) ?>
    name) ?> + + " + title="for_html_attr() ?>" + alt="for_html_attr() ?>" /> + + " alt="for_html_attr() ?>" /> + + + + " alt="for_html_attr() ?>" /> + + + " alt="for_html_attr() ?>" /> + + + + " alt="for_html_attr() ?>" /> + + + " alt="for_html_attr() ?>" /> + + + + " alt="for_html_attr() ?>" /> + + id == 1): ?> + " alt="for_html_attr() ?>" title="for_html_attr() ?>"/> + + + " alt="for_html_attr() ?>" /> + + + + id == 1): ?> + " title="for_html_attr() ?>" alt="for_html_attr() ?>" /> + + + " alt="for_html_attr() ?>" /> + + + + " alt="for_html_attr() ?>" /> + +
    +
    diff --git a/modules/reset_counts/controllers/admin_reset_count.php b/modules/reset_counts/controllers/admin_reset_count.php new file mode 100755 index 0000000..07569b8 --- /dev/null +++ b/modules/reset_counts/controllers/admin_reset_count.php @@ -0,0 +1,75 @@ +get("item_id"); + print $this->_get_view($item_id); + } + + public function handler() { + $item_id = Input::instance()->get("item_id"); + access::verify_csrf(); + $form = $this->_get_form(); + if ($form->validate()) { + $reset_count = $form->reset->reset_count->value; + $item = ORM::factory("item", $item_id); + $count = $form->reset->count->value; + if ($reset_count): + db::build() + ->update("items") + ->set("view_count", $count) + ->where("id", "=", $item_id) + ->execute(); + message::success(t('The view count has been updated. Return to item.', + array("url" => html::mark_clean(url::site("items/$item_id"))))); + endif; + url::redirect("admin/reset_count?item_id=$item_id"); + } + print $this->_get_view($form); + } + + private function _get_view($item_id) { + $v = new Admin_View("admin.html"); + $v->content = new View("admin_reset_count.html"); + $v->content->form = empty($form) ? $this->_get_form($item_id) : $form; + return $v; + } + + private function _get_form() { + $item_id = Input::instance()->get("item_id"); + $item = ORM::factory("item", $item_id); + $form = new Forge("admin/reset_count/handler?item_id=$item_id", "", "post", array("id" => "g-admin-form")); + + $group = $form->group("reset") + ->label(t('Reset count')); + $group->input("item_id")->label(t("Item to be changed:")) + ->value($item->title)->disabled(true); + $group->input("count")->label(t("new count for this item:")) + ->value("") + ->rules("required") + ->rules("valid_numeric|length[1,5]"); + $group->checkbox("reset_count")->label(t("Check to reset the item count for this item.")) + ->checked(false); + + $group->submit("submit")->value(t("Commit changes")); + + return $form; + } +} \ No newline at end of file diff --git a/modules/reset_counts/controllers/admin_reset_counts.php b/modules/reset_counts/controllers/admin_reset_counts.php new file mode 100755 index 0000000..c41a4f1 --- /dev/null +++ b/modules/reset_counts/controllers/admin_reset_counts.php @@ -0,0 +1,71 @@ +get("album_id"); + print $this->_get_view($album_id); + } + + public function handler() { + $album_id = Input::instance()->get("album_id"); + access::verify_csrf(); + $form = $this->_get_form(); + if ($form->validate()) { + $reset_counts = $form->reset->reset_counts->value; + $item = ORM::factory("item", $album_id); + if ($reset_counts): + db::build() + ->update("items") + ->set("view_count", 0) + ->where("left_ptr", ">=", $item->left_ptr) + ->where("right_ptr", "<=", $item->right_ptr) + ->execute(); + message::success(t('The view counts have been updated. Return to album.', + array("url" => html::mark_clean(url::site("items/$album_id"))))); + endif; + url::redirect("admin/reset_counts?album_id=$album_id"); + } + print $this->_get_view($form); + } + + private function _get_view($album_id) { + $v = new Admin_View("admin.html"); + $v->content = new View("admin_reset_counts.html"); + $v->content->form = empty($form) ? $this->_get_form($album_id) : $form; + return $v; + } + + private function _get_form() { + $album_id = Input::instance()->get("album_id"); + $album = ORM::factory("item", $album_id); + $form = new Forge("admin/reset_counts/handler?album_id=$album_id", "", "post", array("id" => "g-admin-form")); + + $group = $form->group("reset") + ->label(t('Reset counts')); + $group->input("album_id")->label(t("Items in this album will be changed:")) + ->value($album->title)->disabled(true); + $group->checkbox("reset_counts")->label(t("Check to reset the item counts in this album.")) + ->checked(false); + + $group->submit("submit")->value(t("Commit changes")); + + return $form; + } +} \ No newline at end of file diff --git a/modules/reset_counts/helpers/reset_counts_event.php b/modules/reset_counts/helpers/reset_counts_event.php new file mode 100755 index 0000000..66a3af2 --- /dev/null +++ b/modules/reset_counts/helpers/reset_counts_event.php @@ -0,0 +1,62 @@ +item(); + $user = identity::active_user(); + if ($item && $item->is_album() && $user->admin) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("reset") + ->label(t("Reset item counts")) + ->css_id("g-menu-reset-link") + ->url(url::site("admin/reset_counts?album_id={$item->id}"))); + } + if ($item && ($item->is_photo() || $item->is_movie()) && $user->admin) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("reset") + ->label(t("Reset item count")) + ->css_id("g-menu-reset-link") + ->url(url::site("admin/reset_count?item_id={$item->id}"))); + } + } + + static function context_menu($menu, $theme, $item) { + $user = identity::active_user(); + if ($user->admin) { + if ($item->is_album()) { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("reset") + ->label(t("Reset album only count")) + ->css_class("ui-icon-refresh") + ->url(url::site("admin/reset_count?item_id={$item->id}"))); + } else { + $menu->get("options_menu") + ->append(Menu::factory("link") + ->id("reset") + ->label(t("Reset count")) + ->css_class("ui-icon-refresh") + ->url(url::site("admin/reset_count?item_id={$item->id}"))); + } + } + } +} \ No newline at end of file diff --git a/modules/reset_counts/helpers/reset_counts_installer.php b/modules/reset_counts/helpers/reset_counts_installer.php new file mode 100755 index 0000000..b510da5 --- /dev/null +++ b/modules/reset_counts/helpers/reset_counts_installer.php @@ -0,0 +1,28 @@ + +
    +

    + +
    diff --git a/modules/reset_counts/views/admin_reset_counts.html.php b/modules/reset_counts/views/admin_reset_counts.html.php new file mode 100755 index 0000000..12edf83 --- /dev/null +++ b/modules/reset_counts/views/admin_reset_counts.html.php @@ -0,0 +1,6 @@ + +
    +

    +

    + +
    diff --git a/modules/rwinfo/helpers/rwinfo_block.php b/modules/rwinfo/helpers/rwinfo_block.php new file mode 100755 index 0000000..e20d291 --- /dev/null +++ b/modules/rwinfo/helpers/rwinfo_block.php @@ -0,0 +1,178 @@ + t("rWInfo")); + } + + static function get($block_id, $theme) { + $block = ""; + switch ($block_id) { + case "rwinfo": + if ($theme->item()) { + + // rWatcher Edit: Don't display on root album. + if ($theme->item->id == 1) { + return ""; + } + // End rWatcher Edit + + $block = new Block(); + $block->css_id = "g-metadata"; + $block->title = $theme->item()->is_album() ? t("Album info") : + ($theme->item()->is_movie() ? t("Movie info") : t("Photo info")); + + // rWatcher Edit: File Name change. + $block->content = new View("rwinfo_block.html"); + + if ($theme->item->title && module::get_var("rwinfo", "show_title")) { //rWatcher Edit: rwinfo + $info["title"] = array( + "label" => t("Title:"), + "value" => html::purify($theme->item->title) + ); + } + if ($theme->item->description && module::get_var("rwinfo", "show_description")) { //rWatcher Edit: rwinfo + $info["description"] = array( + "label" => t("Description:"), + "value" => nl2br(html::purify($theme->item->description)) + ); + } + if (!$theme->item->is_album() && module::get_var("rwinfo", "show_name")) { //rWatcher Edit: rwinfo + $info["file_name"] = array( + "label" => t("File name:"), + "value" => html::clean($theme->item->name) + ); + } + + // rWatcher Edit: Display file size + if (!$theme->item->is_album()) { + // Calculate file size. + $filesize_unit = array("B","kB","MB","GB","TB","PB","EB","ZB","YB"); + $item_filesize = filesize($theme->item->file_path()); + $unit_counter = 0; + while ($item_filesize >= 1024) { + $item_filesize = $item_filesize / 1024; + $unit_counter++; + } + $item_filesize = number_format($item_filesize, 2) . " " . $filesize_unit[$unit_counter]; + $info["file_size"] = array( + "label" => t("File size:"), + "value" => $item_filesize + ); + } + // End rWatcher Edit + + // rWatcher Edit: Remove Show Captured for everything -- Show created DATE for album, captured DATE/TIME for everything else. + //if ($theme->item->captured && module::get_var("info", "show_captured")) { + // $info["captured"] = array( + // "label" => t("Captured:"), + // "value" => gallery::date_time($theme->item->captured) + // ); + //} + if ($theme->item->is_album() && $theme->item->created && module::get_var("rwinfo", "show_captured")) { + $info["captured"] = array( + "label" => t("Date:"), + "value" => gallery::date($theme->item->created) + ); + } + if (!$theme->item->is_album() && $theme->item->captured && module::get_var("rwinfo", "show_captured")) { + $info["captured"] = array( + "label" => t("Date:"), + "value" => gallery::date_time($theme->item->captured) + ); + } + else if (!$theme->item->is_album() && $theme->item->created && module::get_var("rwinfo", "show_captured")) { + $info["captured"] = array( + "label" => t("Date:"), + "value" => gallery::date_time($theme->item->created) + ); + } + // End rWatcher Edit + + if ($theme->item->owner && module::get_var("info", "show_owner")) { + $display_name = $theme->item->owner->display_name(); + + // rWatcher Edit: Display profile instead of web site, if viewable. + $str_owner_url = $theme->item->owner->url; + if (rwinfo_block_Core::_can_view_profile_pages(identity::lookup_user($theme->item->owner->id))) { + $str_owner_url = user_profile::url($theme->item->owner->id); + } + // rWatcher End Edit + + if ($str_owner_url) { //rW Edit $str_owner_url. + $info["owner"] = array( + "label" => t("Owner:"), + "value" => html::anchor( + html::clean($str_owner_url), //rW Edit $str_owner_url. + html::clean($display_name)) + ); + } else { + $info["owner"] = array( + "label" => t("Owner:"), + "value" => html::clean($display_name) + ); + } + } + if (($theme->item->width && $theme->item->height) && + module::get_var("info", "show_dimensions")) { + $info["size"] = array( + "label" => t("Dimensions:"), + "value" => t( + "%width x %height px", + array("width" => $theme->item->width, "height" => $theme->item->height)) + ); + } + + $block->content->metadata = $info; + + module::event("info_block_get_metadata", $block, $theme->item); + } + break; + } + return $block; + } + + // rWatcher Edit: This came from modules/gallery/controllers/user_profile.php, I modified it to be static. + static private function _can_view_profile_pages($user) { + if (!$user->loaded()) { + return false; + } + + if ($user->id == identity::active_user()->id) { + // You can always view your own profile + return true; + } + + switch (module::get_var("gallery", "show_user_profiles_to")) { + case "admin_users": + return identity::active_user()->admin; + + case "registered_users": + return !identity::active_user()->guest; + + case "everybody": + return true; + + default: + // Fail in private mode on an invalid setting + return false; + } + } +} \ No newline at end of file diff --git a/modules/rwinfo/helpers/rwinfo_installer.php b/modules/rwinfo/helpers/rwinfo_installer.php new file mode 100755 index 0000000..19052d2 --- /dev/null +++ b/modules/rwinfo/helpers/rwinfo_installer.php @@ -0,0 +1,45 @@ +view_count) { + $results .= "
  • "; + $results .= t("Views: %view_count", array("view_count" => $item->view_count)); + $results .= "
  • "; + } + + // rWatcher Edit: Display Tags on Thumbnails + if (module::is_active("tag")) { + $tags = ORM::factory("tag") + ->join("items_tags", "tags.id", "items_tags.tag_id") + ->where("items_tags.item_id", "=", $item->id) + ->find_all(); + if (count($tags) > 0) { + $results .= "
  • "; + $results .= t("Tags:") . " "; + $anchors = array(); + foreach ($tags as $tag) { + $anchors[] = "" . html::clean($tag->name) . ""; + } + $results .= join(", ", $anchors) . "
  • "; + } + } + // rWatcher End Edit + + if ($item->owner) { + // rWatcher Edit: Display profile instead of web site, if viewable. + $str_owner_url = $item->owner->url; + if (rwinfo_theme_Core::_can_view_profile_pages(identity::lookup_user($item->owner->id))) { + $str_owner_url = user_profile::url($item->owner->id); + } + // rWatcher End Edit + + $results .= "
  • "; + if ($str_owner_url) { //rW Edit str_owner_url + $results .= t("By: %owner_name", + array("owner_name" => $item->owner->display_name(), + "owner_url" => $str_owner_url)); // rW Edit str_owner_url + } else { + $results .= t("By: %owner_name", array("owner_name" => $item->owner->display_name())); + } + $results .= "
  • "; + } + return $results; + } + + // rWatcher Edit: This came from modules/gallery/controllers/user_profile.php, I modified it to be static. + static private function _can_view_profile_pages($user) { + if (!$user->loaded()) { + return false; + } + + if ($user->id == identity::active_user()->id) { + // You can always view your own profile + return true; + } + + switch (module::get_var("gallery", "show_user_profiles_to")) { + case "admin_users": + return identity::active_user()->admin; + + case "registered_users": + return !identity::active_user()->guest; + + case "everybody": + return true; + + default: + // Fail in private mode on an invalid setting + return false; + } + } +} \ No newline at end of file diff --git a/modules/rwinfo/module.info b/modules/rwinfo/module.info new file mode 100755 index 0000000..d1bf3ff --- /dev/null +++ b/modules/rwinfo/module.info @@ -0,0 +1,7 @@ +name = "rWInfo" +description = "Display extra information about photos and albums" +version = 3 +author_name = "Gallery Team & rWatcher" +author_url = "http://codex.galleryproject.org/Gallery:Team" +info_url = "http://codex.galleryproject.org/Gallery3:Modules:rwinfo" +discuss_url = "http://gallery.menalto.com/forum_module_rwinfo" diff --git a/modules/rwinfo/notes.txt b/modules/rwinfo/notes.txt new file mode 100755 index 0000000..5085b0d --- /dev/null +++ b/modules/rwinfo/notes.txt @@ -0,0 +1,10 @@ +Turn Title and Description off by Default in the installer.(they're displayed elsewhere in the default theme, no reason to show them twice on the same page) +Hide the info sidebar for the root album (without title and description there really isn't anything worth displaying here) +Display tags when mousing over the thumbnails (if tags module is active). +Display "Movie Info" on movies instead of "Photo Info" like the Gallery Info module does. +Changed block name on sidebar to rWInfo, to make it stick out more (helpers\rwinfo_block.php -> return array("metadata" => t("rWInfo")); +Change label for "captured" to "Date", display "created" for albums, "captured" for everything else. +Use gallery::date for formating the albums Date, and gallery::date_time for everything else. (I only want to see the Date an album was created, the time doesn't matter). +Change all occurences of get_var("info" to get_var("rwinfo" to avoid conflicts with the original info module. + + diff --git a/modules/rwinfo/views/rwinfo_block.html.php b/modules/rwinfo/views/rwinfo_block.html.php new file mode 100755 index 0000000..3795347 --- /dev/null +++ b/modules/rwinfo/views/rwinfo_block.html.php @@ -0,0 +1,8 @@ + + diff --git a/modules/tag_cloud_page/controllers/tag_cloud_page.php b/modules/tag_cloud_page/controllers/tag_cloud_page.php new file mode 100755 index 0000000..f0dde67 --- /dev/null +++ b/modules/tag_cloud_page/controllers/tag_cloud_page.php @@ -0,0 +1,66 @@ +content = new View("tag_cloud_page_cloud.html"); + $template->content->title = t("Tag Cloud"); + + // If the tag cloud module is active, load its settings from the database. + if (module::is_active("tag_cloud")) { + $options = array(); + foreach (array("tagcolor", "background_color", "mouseover", "transparent", "speed", "distribution") + as $option) { + $value = module::get_var("tag_cloud", $option, null); + if (!empty($value)) { + switch ($option) { + case "tagcolor": + $options["tcolor"] = $value; + break; + case "mouseover": + $options["hicolor"] = $value; + break; + case "background_color": + $options["bgColor"] = $value; + break; + case "transparent": + $options["wmode"] = "transparent"; + break; + case "speed": + $options["tspeed"] = $value; + break; + case "distribution": + $options["distr"] = "true"; + break; + } + } + } + $template->content->options = $options; + } + + // Display the page. + print $template; + } +} diff --git a/modules/tag_cloud_page/css/tag_cloud_page.css b/modules/tag_cloud_page/css/tag_cloud_page.css new file mode 100755 index 0000000..1eacad2 --- /dev/null +++ b/modules/tag_cloud_page/css/tag_cloud_page.css @@ -0,0 +1,73 @@ +/* Tag cloud page ~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-tag-cloud-page ul { + font-size: 1.2em; + text-align: justify; +} + +#g-tag-cloud-page ul li { + display: inline; + line-height: 1.5em; + text-align: justify; +} + +#g-tag-cloud-page ul li a { + text-decoration: none; +} + +#g-tag-cloud-page ul li span { + display: none; +} + +#g-tag-cloud-page ul li.size0 a { + color: #9cf; + font-size: 70%; + font-weight: 100; +} + +#g-tag-cloud-page ul li.size1 a { + color: #9cf; + font-size: 80%; + font-weight: 100; +} + +#g-tag-cloud-page ul li.size2 a { + color: #69f; + font-size: 90%; + font-weight: 300; +} + +#g-tag-cloud-page ul li.size3 a { + color: #69c; + font-size: 100%; + font-weight: 500; +} + +#g-tag-cloud-page ul li.size4 a { + color: #369; + font-size: 110%; + font-weight: 700; +} + +#g-tag-cloud-page ul li.size5 a { + color: #0e2b52; + font-size: 120%; + font-weight: 900; +} + +#g-tag-cloud-page ul li.size6 a { + color: #0e2b52; + font-size: 130%; + font-weight: 900; +} + +#g-tag-cloud-page ul li.size7 a { + color: #0e2b52; + font-size: 140%; + font-weight: 900; +} + +#g-tag-cloud-page ul li a:hover { + color: #f30; + text-decoration: underline; +} diff --git a/modules/tag_cloud_page/helpers/tag_cloud_page_block.php b/modules/tag_cloud_page/helpers/tag_cloud_page_block.php new file mode 100755 index 0000000..4878588 --- /dev/null +++ b/modules/tag_cloud_page/helpers/tag_cloud_page_block.php @@ -0,0 +1,40 @@ + t("Tag Cloud Page Link")); + } + + static function get($block_id, $theme) { + // Generate the sidebar block for linking to the tag cloud page. + $block = ""; + switch ($block_id) { + case "tag_cloud_page": + $block = new Block(); + $block->css_id = "g-tag-cloud-page"; + $block->title = t("Tag Cloud"); + $block->content = new View("tag_cloud_page_block.html"); + + break; + } + return $block; + } +} diff --git a/modules/tag_cloud_page/helpers/tag_cloud_page_event.php b/modules/tag_cloud_page/helpers/tag_cloud_page_event.php new file mode 100755 index 0000000..a52d05b --- /dev/null +++ b/modules/tag_cloud_page/helpers/tag_cloud_page_event.php @@ -0,0 +1,40 @@ +deactivate)) { + site_status::warning( + t("The Tag Cloud Page module requires the Tags module. " . + "Activate the Tags module now", + array("url" => url::site("admin/modules"))), + "tag_cloud_page_needs_tag"); + } else { + site_status::clear("tag_cloud_page_needs_tag"); + } + } + + static function pre_deactivate($data) { + if ($data->module == "tag") { + $data->messages["warn"][] = t("The Tag Cloud Page module requires the Tags module."); + } + } +} diff --git a/modules/tag_cloud_page/helpers/tag_cloud_page_installer.php b/modules/tag_cloud_page/helpers/tag_cloud_page_installer.php new file mode 100755 index 0000000..3085852 --- /dev/null +++ b/modules/tag_cloud_page/helpers/tag_cloud_page_installer.php @@ -0,0 +1,32 @@ +script("tag_cloud_page.js"); + } + + // Load the tag cloud page's css code. + return $theme->css("tag_cloud_page.css"); + } +} diff --git a/modules/tag_cloud_page/js/tag_cloud_page.js b/modules/tag_cloud_page/js/tag_cloud_page.js new file mode 100755 index 0000000..66d1dda --- /dev/null +++ b/modules/tag_cloud_page/js/tag_cloud_page.js @@ -0,0 +1,89 @@ +(function($) { + $.widget("ui.gallery_tag_cloud_page", { + _init: function() { + var self = this; + self._set_tag_cloud(); + this._ajax_form(); + this._autocomplete(); + }, + + _autocomplete: function() { + var url = $("#g-tag-cloud-page-animation").attr("ref") + "/autocomplete"; + $("#g-add-tag-form input:text").autocomplete( + url, { + max: 30, + multiple: true, + multipleSeparator: ',', + cacheLength: 1} + ); + }, + + _ajax_form: function() { + var self = this; + var form = $("#g-add-tag-form"); + form.ajaxForm({ + dataType: "json", + success: function(data) { + if (data.result == "success") { + $.get($("#g-tag-cloud-page-animation").attr("ref"), function(data, textStatus) { + $("#g-tag-cloud-movie-page").remove(); + $("#g-tag-cloud-page-animation").append("
    " + data + "
    "); + self._set_tag_cloud(); + }); + } + form.resetForm(); + $("#g-add-tag-form :text").blur(); + } + }); + }, + + _set_tag_cloud: function() { + var self = this; + var taglist = $("#g-tag-cloud-page-animation a"); + + if (taglist.length == 0) { + return; + } + var width = $("#g-tag-cloud-page-animation").width(); + var tags = document.createElement("tags"); + taglist.each(function(i) { + var addr = $(this).clone(); + $(addr).attr("style", "font-size: 14pt;"); + $(tags).append(addr); + }); + + var flashvars = { + tcolor: self.options.tcolor, + tcolor2: self.options.tcolor2, + mode: "tags", + distr: self.options.distr, + tspeed: self.options.tspeed, + hicolor: self.options.hicolor, + tagcloud: escape("" + $(tags).html() + "").toLowerCase() + }; + var params = { + bgcolor: self.options.bgColor, + wmode: self.options.wmode, + allowscriptaccess: self.options.scriptAccess + }; + + swfobject.embedSWF(self.options.movie, "g-tag-cloud-movie-page", width, .60 * width, "9", false, + flashvars, params); + } + }); + + $.extend($.ui.gallery_tag_cloud_page, { + defaults: { + bgColor: "0xFFFFFF", + wmode: "transparent", + scriptAccess: "always", + tcolor: "0x333333", + tcolor2: "0x009900", + hicolor: "0x000000", + tspeed: "100", + distr: "true", + mode: "tag" + } + }); + +})(jQuery); diff --git a/modules/tag_cloud_page/module.info b/modules/tag_cloud_page/module.info new file mode 100755 index 0000000..be9f659 --- /dev/null +++ b/modules/tag_cloud_page/module.info @@ -0,0 +1,7 @@ +name = "Tag Cloud Page" +description = "Displays a tag cloud of all tags used in the Gallery on a seperate page." +version = 1 +author_name = "rWatcher" +author_url = "http://codex.gallery2.org/User:RWatcher" +info_url = "http://codex.gallery2.org/Gallery3:Modules:tag_cloud_page" +discuss_url = "http://gallery.menalto.com/node/101279" diff --git a/modules/tag_cloud_page/views/tag_cloud_page_block.html.php b/modules/tag_cloud_page/views/tag_cloud_page_block.html.php new file mode 100755 index 0000000..46fd70e --- /dev/null +++ b/modules/tag_cloud_page/views/tag_cloud_page_block.html.php @@ -0,0 +1,2 @@ + +">View cloud diff --git a/modules/tag_cloud_page/views/tag_cloud_page_cloud.html.php b/modules/tag_cloud_page/views/tag_cloud_page_cloud.html.php new file mode 100755 index 0000000..acd31ed --- /dev/null +++ b/modules/tag_cloud_page/views/tag_cloud_page_cloud.html.php @@ -0,0 +1,35 @@ + +
    +
    + dynamic_top() ?> +
    +

    +
    +
    + + + +
    +
    "> +
    + count_all()); ?> +
    +
    +
    + + +
    + count_all()); ?> +
    + + +dynamic_bottom() ?> diff --git a/modules/themedispatcher/controllers/admin_themedispatcher.php b/modules/themedispatcher/controllers/admin_themedispatcher.php new file mode 100755 index 0000000..3e17533 --- /dev/null +++ b/modules/themedispatcher/controllers/admin_themedispatcher.php @@ -0,0 +1,105 @@ +page_title = t("Select theme based on user-agent"); + $view->content = new View("admin_themedispatcher.html"); + $view->content->form = $this->_get_admin_form(); + $uas = unserialize(module::get_var("themedispatcher", "useragents", "a:0:{}")); + $view->content->uas = array_keys($uas); + + print $view; + } + + public function add_ua() { + access::verify_csrf(); + + $form = $this->_get_admin_form(); + $form->validate(); + + $uas = unserialize(module::get_var("themedispatcher", "useragents", "a:0:{}")); + $ua = $form->add_ua->ua->value; + if ($ua) { + $uas[$ua] = 1; + module::set_var("themedispatcher", "useragents", serialize($uas)); + } + module::set_var("themedispatcher", "theme", $form->target_theme->theme->value); + module::set_var("themedispatcher", "overridedispatch", $form->target_theme->overridedispatch->value); + message::success(t("Settings saved")); + themedispatcher::check_config($uas); + url::redirect("admin/themedispatcher"); + + $view = new Admin_View("admin.html"); + $view->content = new View("admin_themedispatcher.html"); + $view->content->form = $form; + $view->content->uas = array_keys($uas); + print $view; + } + + public function remove_ua() { + access::verify_csrf(); + + $ua = Input::instance()->get("ua"); + $uas = unserialize(module::get_var("themedispatcher", "useragents")); + if (isset($uas[$ua])) { + unset($uas[$ua]); + message::success(t("Removed user-agent %ua", array("ua" => $ua))); + module::set_var("themedispatcher", "useragents", serialize($uas)); + themedispatcher::check_config($uas); + } + url::redirect("admin/themedispatcher"); + } + + private function _get_admin_form() { + $form = new Forge("admin/themedispatcher/add_ua", "", "post", array("id" => "g-themedispatcher-admin-form")); + $target_theme = $form->group("target_theme")->label(t("Theme")); + $target_theme->dropdown("theme") + ->label(t("Target Theme")) + ->options($this->_get_themes()) + ->selected(module::get_var("themedispatcher", "theme")); + $target_theme->checkbox("overridedispatch")->label(t("Places a link in the theme footer to allow users to manually switch between target and default theme.")) + ->checked(module::get_var("themedispatcher", "overridedispatch", 0) == 1); + $target_theme->submit("save")->value(t("Save")); + + $add_ua = $form->group("add_ua")->label(t("User-Agents")); + $add_ua->input("ua")->label(t("User-Agent"))->rules("required")->id("g-ua"); + $add_ua->submit("add")->value(t("Add User-Agent")); + return $form; + } + + private function _get_themes() { + $themes = array(); + foreach (scandir(THEMEPATH) as $theme_name) { + if ($theme_name[0] == ".") { + continue; + } + $theme_name = preg_replace("/[^a-zA-Z0-9\._-]/", "", $theme_name); + if (file_exists(THEMEPATH . "$theme_name/theme.info")) { + $themeinfo = theme::get_info($theme_name); + if ($themeinfo->site) { + $themes[$theme_name] = theme::get_info($theme_name)->name; + } + } + } + return $themes; + } +} diff --git a/modules/themedispatcher/controllers/themedispatcher.php b/modules/themedispatcher/controllers/themedispatcher.php new file mode 100755 index 0000000..c0f1b5c --- /dev/null +++ b/modules/themedispatcher/controllers/themedispatcher.php @@ -0,0 +1,40 @@ +server("HTTP_REFERER")) { + url::redirect($referer); + } else { + url::redirect(item::root()->abs_url()); + } + } + + public function overrideoff() { + cookie::delete("g3themeoverride"); + if ($referer = Input::instance()->server("HTTP_REFERER")) { + url::redirect($referer); + } else { + url::redirect(item::root()->abs_url()); + } + } + +} diff --git a/modules/themedispatcher/css/admin_themedispatcher.css b/modules/themedispatcher/css/admin_themedispatcher.css new file mode 100755 index 0000000..962ad76 --- /dev/null +++ b/modules/themedispatcher/css/admin_themedispatcher.css @@ -0,0 +1,15 @@ +#g-themedispatcher button { + margin-bottom: .5em; +} + +#g-themedispatcher ul ul li { + padding-left: 1.2em; +} + +#g-themedispatcher-uas li .ui-icon { + margin-top: .4em; +} + +#g-themedispatcher-admin-form .textbox { + width: 400px; +} diff --git a/modules/themedispatcher/css/themedispatcher.css b/modules/themedispatcher/css/themedispatcher.css new file mode 100755 index 0000000..4e35288 --- /dev/null +++ b/modules/themedispatcher/css/themedispatcher.css @@ -0,0 +1,7 @@ +.g-themedispatcher { + font-size: 10px; + text-align: center; + padding-bottom: 0.5em; + padding-top: 0.5em; +} + diff --git a/modules/themedispatcher/helpers/MY_theme.php b/modules/themedispatcher/helpers/MY_theme.php new file mode 100755 index 0000000..3dfa438 --- /dev/null +++ b/modules/themedispatcher/helpers/MY_theme.php @@ -0,0 +1,102 @@ +server("PATH_INFO"); + if (empty($path)) { + $path = "/" . $input->get("kohana_uri"); + } + + $config = Kohana_Config::instance(); + $modules = $config->get("core.modules"); + self::$is_admin = $path == "/admin" || !strncmp($path, "/admin/", 7); + + // Select different theme based on specific user agent + self::$dispatch = false; + $ua_list = module::get_var("themedispatcher", "useragents"); + if ($ua_list) { + $ua_list = unserialize($ua_list); + foreach( $ua_list as $key => $val) { + $agent = request::user_agent("agent"); + if (($agent) && stristr($agent, $key)) { + self::$dispatch = true; + } + } + } + $dispatchoverride = cookie::get("g3themeoverride", 0); + + if ((self::$dispatch) && !($dispatchoverride)) { + self::$site_theme_name = module::get_var("themedispatcher", "theme"); + } else { + self::$site_theme_name = module::get_var("gallery", "active_site_theme"); + } + + if (self::$is_admin) { + // Load the admin theme + self::$admin_theme_name = module::get_var("gallery", "active_admin_theme"); + array_unshift($modules, THEMEPATH . self::$admin_theme_name); + + // If the site theme has an admin subdir, load that as a module so that + // themes can provide their own code. + if (file_exists(THEMEPATH . self::$site_theme_name . "/admin")) { + array_unshift($modules, THEMEPATH . self::$site_theme_name . "/admin"); + } + // Admins can override the site theme, temporarily. This lets us preview themes. + if (identity::active_user()->admin && $override = $input->get("theme")) { + if (file_exists(THEMEPATH . $override)) { + self::$admin_theme_name = $override; + array_unshift($modules, THEMEPATH . self::$admin_theme_name); + } else { + Kohana_Log::add("error", "Missing override admin theme: '$override'"); + } + } + } else { + // Admins can override the site theme, temporarily. This lets us preview themes. + if (identity::active_user()->admin && $override = $input->get("theme")) { + if (file_exists(THEMEPATH . $override)) { + self::$site_theme_name = $override; + } else { + Kohana_Log::add("error", "Missing override site theme: '$override'"); + } + } + array_unshift($modules, THEMEPATH . self::$site_theme_name); + } + + $config->set("core.modules", $modules); + } + +} + diff --git a/modules/themedispatcher/helpers/themedispatcher.php b/modules/themedispatcher/helpers/themedispatcher.php new file mode 100755 index 0000000..8255d9d --- /dev/null +++ b/modules/themedispatcher/helpers/themedispatcher.php @@ -0,0 +1,34 @@ +Configure it now!", + array("url" => html::mark_clean(url::site("admin/themedispatcher")))), + "themedispatcher_configuration"); + } else { + site_status::clear("themedispatcher_configuration"); + } + } +} diff --git a/modules/themedispatcher/helpers/themedispatcher_event.php b/modules/themedispatcher/helpers/themedispatcher_event.php new file mode 100755 index 0000000..470ae89 --- /dev/null +++ b/modules/themedispatcher/helpers/themedispatcher_event.php @@ -0,0 +1,28 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("themedispatcher") + ->label(t("Theme dispatcher")) + ->url(url::site("admin/themedispatcher"))); + } +} diff --git a/modules/themedispatcher/helpers/themedispatcher_installer.php b/modules/themedispatcher/helpers/themedispatcher_installer.php new file mode 100755 index 0000000..3b74392 --- /dev/null +++ b/modules/themedispatcher/helpers/themedispatcher_installer.php @@ -0,0 +1,29 @@ +css("admin_themedispatcher.css"); + } + + return $buf; + } + + static function head($theme) { + $buf = $theme->css("themedispatcher.css"); + return $buf; + } + + static function page_bottom($theme) { + $buf = ""; + if ((module::get_var("themedispatcher", "overridedispatch", 0) == 1) && (theme::$dispatch)) { + $buf .= "
    "; + if (theme::$site_theme_name == module::get_var("gallery", "active_site_theme")) { + $buf .= "".t("Mobile")." | ".t("Full Version"); + } else { + $buf .= t("Mobile")." | ".t("Full")." ".t("Version"); + } + $buf .= "
    "; + } + return $buf; + } +} diff --git a/modules/themedispatcher/module.info b/modules/themedispatcher/module.info new file mode 100755 index 0000000..2af7bca --- /dev/null +++ b/modules/themedispatcher/module.info @@ -0,0 +1,7 @@ +name = "Theme dispatcher" +description = "Select theme based on user-agent" +version = 6 +author_name = "calleh" +author_url = +info_url = "http://codex.gallery2.org/Gallery3:Modules:themedispatcher" +discuss_url = "http://gallery.menalto.com/node/101768" diff --git a/modules/themedispatcher/views/admin_themedispatcher.html.php b/modules/themedispatcher/views/admin_themedispatcher.html.php new file mode 100755 index 0000000..427b4f6 --- /dev/null +++ b/modules/themedispatcher/views/admin_themedispatcher.html.php @@ -0,0 +1,23 @@ + +
    +

    +
    + +
    + + +
    +
    +
    diff --git a/modules/treeview/controllers/admin_treeview.php b/modules/treeview/controllers/admin_treeview.php new file mode 100755 index 0000000..a9c80a8 --- /dev/null +++ b/modules/treeview/controllers/admin_treeview.php @@ -0,0 +1,116 @@ +content = new View("admin_treeview.html"); + $view->content->treeview_admin_form = $this->_get_admin_form(); + print $view; + } + + private function _get_admin_form() { + $form = new Forge("admin/treeview/saveprefs", "", "post", + array("id" => "g-treeview-admin-form")); + + $group = $form->group("preferences")->label(t("Settings")); + + $group->input("treeview_menutitle") + ->label(t("Menu Title")) + ->value(module::get_var("treeview", "menutitle", "Tree View")); + $group->dropdown("treeview_viewtype") + ->id("treeview_viewtype") + ->label(t("View Type")) + ->options(array("list" => t("List"), "csstree" => t("CSS Tree"), "dtree" => t("DTree"))) + ->selected(module::get_var("treeview", "viewstyle", "list")); + $group->checkbox("treeview_hidemenu") + ->label(t("Hide menu link to \"Tree View\"")) + ->checked( module::get_var("treeview", "hidemenu") ); + $group->checkbox("treeview_showdetails") + ->label(t("Display details (thumbnail, description) in \"Tree View\".")) + ->checked( module::get_var("treeview", "showdetails") ); + + $group_modules = $form->group("preferences_modules")->label(t("Module Integration")); + if (module::is_active("dynamic")) { + $group_modules->checkbox("treeview_showdynamic") + ->label(t("Display albums, provided by the \"dynamic\" module.")) + ->checked( module::get_var("treeview", "showdynamic") ); + } + if (module::is_active("tag_cloud_page")) { + $group_modules->checkbox("treeview_showtagcloudpage") + ->label(t("Display Tag Coud, provided by the \"Tag Cloud Page\" module.")) + ->checked( module::get_var("treeview", "showtagcloudpage") ); + } + if (module::is_active("pages")) { + $group_modules->checkbox("treeview_showpages") + ->label(t("Display pages, provided by the \"pages\" module.")) + ->checked( module::get_var("treeview", "showpages") ); + } + + $group_dtree = $form->group("preferences_dtree")->label(t("DTree Settings")); + $group_dtree->checkbox("dtree_onmouseover") + ->label(t("Open subalbums on mouseover '+'.")) + ->checked( module::get_var("treeview", "dtree_openonmouseover") ); + $group_dtree->checkbox("dtree_closesamelevel") + ->label(t("Close other albums in in the same level.")) + ->checked( module::get_var("treeview", "dtree_closesamelevel") ); + + // Add a save button to the form. + $form->submit("SaveSettings")->value(t("Save")); + + // Return the newly generated form. + return $form; + } + + public function saveprefs() { + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + $form = $this->_get_admin_form(); + if ($form->validate()) { + Kohana_Log::add("error",print_r($form,1)); + + // Save form variables. + $treeview_menutitle = Input::instance()->post("treeview_menutitle"); + if ( $treeview_menutitle == "" ) { $treeview_menutitle = "Tree View"; } + module::set_var("treeview", "menutitle", $treeview_menutitle); + + module::set_var("treeview", "viewstyle", Input::instance()->post("treeview_viewtype")); + module::set_var("treeview", "hidemenu", Input::instance()->post("treeview_hidemenu")); + module::set_var("treeview", "showdetails", Input::instance()->post("treeview_showdetails")); + module::set_var("treeview", "showdynamic", Input::instance()->post("treeview_showdynamic")); + module::set_var("treeview", "showtagcloudpage", Input::instance()->post("treeview_showtagcloudpage")); + module::set_var("treeview", "showpages", Input::instance()->post("treeview_showpages")); + module::set_var("treeview", "modulesexpandable", Input::instance()->post("treeview_modulesexpandable")); + module::set_var("treeview", "dtree_openonmouseover", Input::instance()->post("dtree_onmouseover")); + module::set_var("treeview", "dtree_closesamelevel", Input::instance()->post("dtree_closesamelevel")); + message::success(t("Your settings have been saved.")); + + url::redirect("admin/treeview"); + } + + // Else show the page with errors + $view = new Admin_View("admin.html"); + $view->content = new View("admin_treeview.html"); + $view->content->treeview_admin_form = $form; + print $view; + } +} diff --git a/modules/treeview/controllers/treeview.php b/modules/treeview/controllers/treeview.php new file mode 100755 index 0000000..de46e78 --- /dev/null +++ b/modules/treeview/controllers/treeview.php @@ -0,0 +1,44 @@ +title, $root->url())->set_first(); + $breadcrumbs[] = Breadcrumb::instance(t("Album Tree View"), url::site("treeview"))->set_last(); + + // Set up and display the actual page. + $style = module::get_var("treeview", "viewstyle", "list"); + $template = new Theme_View("page.html", "other", "Tree View"); + $template->set_global(array("breadcrumbs" => $breadcrumbs)); + $template->page_title = t("Gallery :: Album Tree View"); + $template->content = new View("treeview_page_{$style}.html"); + $template->content->title = t("Album Tree View"); + $template->content->root = item::root(); + + // Display the page. + print $template; + } +} diff --git a/modules/treeview/css/treeview.css b/modules/treeview/css/treeview.css new file mode 100755 index 0000000..3e3e6b4 --- /dev/null +++ b/modules/treeview/css/treeview.css @@ -0,0 +1,91 @@ +/* Tree view page ~~~~~~~~~~~~~~~~~~~~~~~ + Styles for Treeview (Gallery3 Module) + Written by itzling +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-treeview-body { + font-size: .9em; + padding-bottom: 11em; +} + +/* List view ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +.g-treeview-root { + padding-bottom: 1.5em; +} +ul.g-treeview-albumnav { + padding-left: 1em; +} +li.g-treeview-album { + list-style-type: disc; + list-style-position: outside; +} +.g-treeview-album .g-treeview-details, +a.node .g-treeview-details, +a.nodeSel .g-treeview-details { + display: none; + background-color: #ffffff; + padding: .6em .6em; + text-align: center; + font-size: .8em; + max-width: 280px; +} +.g-treeview-album .g-treeview-details .g-metadata, +a.node .g-treeview-details .g-metadata { + color: #191919; + white-space: normal; +} +.g-treeview-album a:hover .g-treeview-details, +a.node:hover .g-treeview-details { + display: block; + border: 1px solid #191919; + position: fixed !important; +/* left: 20em;*/ + left: 50%; + top: 100px; + z-index: 1000 !important; + border-top-left-radius: .3em; + border-top-right-radius: .3em; + -moz-border-radius-topleft: .3em; + -moz-border-radius-topright: .3em; + -webkit-border-radius: .3em; + -moz-box-shadow: 0 .12em .3em #191919, 0 .12em .37em #191919; + box-shadow: 0 .12em .3em #191919, 0 .12em .37em #191919; + -webkit-box-shadow: 0 .12em .3em #191919, 0 .12em .37em #191919; +} + +/* CSS Tree view ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +div.g-treeview-root { + float: none; + margin-left: .1em; +} +.g-treeview-haschildren { + background: transparent url(../images/nolines_plus.gif) no-repeat 0 0; + padding-left: 18px; +} +.g-treeview-item { + padding-left: 18px; +} +.g-treeview-lv0 { + background: none!important; + padding-left: 0!important; +} +.g-treeview-open { display: block; } +.g-treeview-lv1 .g-treeview-lv1-children { display: none; } +.g-treeview-lv1:hover .g-treeview-lv1-children { display: block;} +.g-treeview-lv2 .g-treeview-lv2-children { display: none; } +.g-treeview-lv2:hover .g-treeview-lv2-children { display: block; } +.g-treeview-lv3 .g-treeview-lv3-children { display: none; } +.g-treeview-lv3:hover .g-treeview-lv3-children { display: block; } +.g-treeview-lv4 .g-treeview-lv4-children { display: none; } +.g-treeview-lv4:hover .g-treeview-lv4-children { display: block; } +.g-treeview-lv5 .g-treeview-lv5-children { display: none; } +.g-treeview-lv5:hover .g-treeview-lv5-children { display: block; } +.g-treeview-lv6 .g-treeview-lv6-children { display: none; } +.g-treeview-lv6:hover .g-treeview-lv6-children { display: block; } +.g-treeview-lv7 .g-treeview-lv7-children { display: none; } +.g-treeview-lv7:hover .g-treeview-lv7-children { display: block; } +.g-treeview-lv8 .g-treeview-lv8-children { display: none; } +.g-treeview-lv8:hover .g-treeview-lv8-children { display: block; } +.g-treeview-lv9 .g-treeview-lv9-children { display: none; } +.g-treeview-lv9:hover .g-treeview-lv9-children { display: block; } + diff --git a/modules/treeview/helpers/treeview_block.php b/modules/treeview/helpers/treeview_block.php new file mode 100755 index 0000000..225af43 --- /dev/null +++ b/modules/treeview/helpers/treeview_block.php @@ -0,0 +1,39 @@ + t("Tree View")); + } + + static function get($block_id, $theme) { + // Generate the sidebar block for linking to the tree view page. + $block = ""; + switch ($block_id) { + case "treeview_block": + $block = new Block(); + $block->css_id = "g-treeview"; + $block->title = t("Tree View"); + $block->content = new View("treeview_block.html"); + break; + } + return $block; + } +} diff --git a/modules/treeview/helpers/treeview_event.php b/modules/treeview/helpers/treeview_event.php new file mode 100755 index 0000000..4414aa9 --- /dev/null +++ b/modules/treeview/helpers/treeview_event.php @@ -0,0 +1,40 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("treeview") + ->label(t("Tree View")) + ->url(url::site("admin/treeview"))); + } + + static function site_menu($menu, $theme) { + if (module::get_var("treeview", "hidemenu") != true) { + $menu->add_after("home", Menu::factory("link") + ->id("treeview") + ->label(t(module::get_var("treeview", "menutitle"))) + ->url(url::site("treeview/"))); + } + } + +} diff --git a/modules/treeview/helpers/treeview_installer.php b/modules/treeview/helpers/treeview_installer.php new file mode 100755 index 0000000..8bcd11e --- /dev/null +++ b/modules/treeview/helpers/treeview_installer.php @@ -0,0 +1,59 @@ +css("treeview.css"); + } +} diff --git a/modules/treeview/images/empty.gif b/modules/treeview/images/empty.gif new file mode 100755 index 0000000000000000000000000000000000000000..b5cf52378fa5f361ff532bd66a89fb405f23f815 GIT binary patch literal 62 zcmZ?wbhEHb6k-r!n8*ME|NsAQXlMYEia%Kx85o!ubU>mYc?Kr_IsGe7zvW*%XUnbb L&G+VrGgt!vQpOa` literal 0 HcmV?d00001 diff --git a/modules/treeview/images/join.gif b/modules/treeview/images/join.gif new file mode 100755 index 0000000000000000000000000000000000000000..34dd47610a5d7c3580dedc342683559bf77abce2 GIT binary patch literal 69 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFv;}DH=KUEdfpt3ORshA Wx&LIzk};W<vKC_i literal 0 HcmV?d00001 diff --git a/modules/treeview/images/join_rtl.gif b/modules/treeview/images/join_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..04bc3a7b51219094bffd3607516362af8d0d8c17 GIT binary patch literal 67 zcmZ?wbhEHb6k-r!XkcJyXlVHV|G(l-7DfgJMg|=QAOOiQFiG|FH=KUEdfuGQD9QK1 UHec4X&huzmk~%NAN{qo80G+fJS^xk5 literal 0 HcmV?d00001 diff --git a/modules/treeview/images/joinbottom.gif b/modules/treeview/images/joinbottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..48b81c80a9e25f6f29e2614aaa33bdf4a4d2881b GIT binary patch literal 66 zcmZ?wbhEHb6k-r!XkcV$XlVHV|G(l-7DfgJMg|=QAOOiQFiG~vH=KUEdfpt3ORshA Tx&LIzy5lkJS?4l0Mh0sDgH;v` literal 0 HcmV?d00001 diff --git a/modules/treeview/images/joinbottom_rtl.gif b/modules/treeview/images/joinbottom_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..24fdbce87ce115c3503119dd8bf0ccd7dd068966 GIT binary patch literal 64 zcmZ?wbhEHb6k-r!XkcJyXlVHV|G(l-7DfgJMg|=QAOOiQFp2l{H=KUEdfuGQD9QK1 RHec4XKJu9M%u+Z^i-DOz2gn7=3NbJ+sm-x(JpFd{ oyg3V_ek+~vHLh>yV49NJq&2I(^b literal 0 HcmV?d00001 diff --git a/modules/treeview/images/minus_rtl.gif b/modules/treeview/images/minus_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..c80d49d16fd0ed1184f458fe8fbbc394e90f58e9 GIT binary patch literal 85 zcmZ?wbhEHb6k-r!Sjf!K)YR0_(7?dJU~X=%_>+Z^i-DOz2gn7=3NbJ+smbKGvU*r0Qj-rVtS9UI6yvl9%)Eh3>zxCc`Wv~VSYRMag literal 0 HcmV?d00001 diff --git a/modules/treeview/images/minusbottom_rtl.gif b/modules/treeview/images/minusbottom_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..ab940c655e739ebd40c484612eb0184d39fb1a0b GIT binary patch literal 83 zcmZ?wbhEHb6k-r!SjfcC(9poZz+esria%KxxfmE3bbum2Ss?}nCY7H4hSP6X&zrL# i>bKGvU*r0WQxZMlCu?6mYiN^>d+u`mTdzMWgEateUmD2( literal 0 HcmV?d00001 diff --git a/modules/treeview/images/nolines_minus.gif b/modules/treeview/images/nolines_minus.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0e8471cbccc00cb24887039ba48587df8b605d6 GIT binary patch literal 861 zcmZ?wbhEHb6k-r!c+SMo)YR0_(7-SXMnhmkhJfNv7Dg_H{|q`H--Gf51BVsEe@+>X z4GRu7a|mn2%rIy;+|Dm8$D?pj!L>!4J8jDk{s#B{|7KZpA_`U9CP^qdrJUHb^z?KC JVKx>9YXE!u9#{YX literal 0 HcmV?d00001 diff --git a/modules/treeview/images/nolines_plus.gif b/modules/treeview/images/nolines_plus.gif new file mode 100755 index 0000000000000000000000000000000000000000..370fc2734170ae8d8775944c764598b23f2de338 GIT binary patch literal 870 zcmZ?wbhEHb6k-r!c+SMo)YR0_(7-SXMnhmkhJfNv7Dg_H{|q`H--Gf51BWxie@+>X z4GRu7a|mn2%rIy;+|Dm8$DbKGv_v~k-ca}~$nc1SbecM@et0$&cH}&4HjAdZ31^}-!96$g7 literal 0 HcmV?d00001 diff --git a/modules/treeview/images/plus_rtl.gif b/modules/treeview/images/plus_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..b6282f61228fa85b701f571024a482ce1a04d666 GIT binary patch literal 85 zcmZ?wbhEHb6k-r!SjfcC(9poZz+esria%KxxfmE3bbum2Ss?}nCbgdahSP6X&zrL# l>bKGv_v~k-i=5cPU$z|EzBcLBhLfGXWi`(?{1aiY1^~G$9X$X5 literal 0 HcmV?d00001 diff --git a/modules/treeview/images/plusbottom.gif b/modules/treeview/images/plusbottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..076ff98bf6913e7146f4e6914cdb418248bd179d GIT binary patch literal 84 zcmZ?wbhEHb6k-r!SjfcC(9poZz+esria%KxxfmE3bbum2Ss?}nCebKGv_v~k-ca}~$nc1SbecM@et0$&czx6(^U}Ufc0F&|@E&u=k literal 0 HcmV?d00001 diff --git a/modules/treeview/images/plusbottom_rtl.gif b/modules/treeview/images/plusbottom_rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..90571f2d7edd162f6a66a06927e11b3c188e8df4 GIT binary patch literal 85 zcmZ?wbhEHb6k-r!SjfcC(9poZz+esria%KxxfmE3bbum2Ss?}nCbgdahSP6X&zrL# l>bKGv_v~k-i=5cPU$z|EzBcLBhLfGX-+G__3SnTd1^~P;9a;bY literal 0 HcmV?d00001 diff --git a/modules/treeview/module.info b/modules/treeview/module.info new file mode 100755 index 0000000..a07d843 --- /dev/null +++ b/modules/treeview/module.info @@ -0,0 +1,7 @@ +name = "Tree View Page" +description = "Displays links to all albums in the gallery on a seperate page." +version = 4 +author_name = "itzling" +author_url = "http://codex.galleryproject.org/User:Itzling" +info_url = "http://codex.galleryproject.org/Gallery3:Modules:treeview" +discuss_url = "http://galleryproject.org/node/112461" diff --git a/modules/treeview/views/admin_treeview.html.php b/modules/treeview/views/admin_treeview.html.php new file mode 100755 index 0000000..ea62e94 --- /dev/null +++ b/modules/treeview/views/admin_treeview.html.php @@ -0,0 +1,11 @@ + + +
    +

    +
    +
    + +
    +
    diff --git a/modules/treeview/views/treeview_block.html.php b/modules/treeview/views/treeview_block.html.php new file mode 100755 index 0000000..382550e --- /dev/null +++ b/modules/treeview/views/treeview_block.html.php @@ -0,0 +1,2 @@ + +"> diff --git a/modules/treeview/views/treeview_page_csstree.html.php b/modules/treeview/views/treeview_page_csstree.html.php new file mode 100755 index 0000000..68a48a5 --- /dev/null +++ b/modules/treeview/views/treeview_page_csstree.html.php @@ -0,0 +1,133 @@ + + +
    +

    +
    +
    +
    + + + viewable()->children_count(array(array("type", "=", "album")))) { ?> + + + +
    +

    +
    +
    +
    + +
    + + "> +
    +
    + + + + + + "> +
    + + +
    + + "> +
    + +
    +
    + + + +
    +

    +
    +
    +order_by("title", "ASC")->find_all(); + $pages_count = count($pages); + if ($pages_count > 0) { + // Loop through each page and generate an HTML list of their links and titles. + foreach ($pages as $one_page) { +?> + + +
    + + +
    diff --git a/modules/treeview/views/treeview_page_dtree.html.php b/modules/treeview/views/treeview_page_dtree.html.php new file mode 100755 index 0000000..8ba4826 --- /dev/null +++ b/modules/treeview/views/treeview_page_dtree.html.php @@ -0,0 +1,529 @@ + + + + + +
    +

    +
    +
    +
    + +
    + + +
    +

    +
    +
    +
    + +
    + + "> +
    +
    + + + + + + "> +
    + + +
    + + "> +
    + +
    +
    + + + +
    +

    +
    +
    +order_by("title", "ASC")->find_all(); + $pages_count = count($pages); + if ($pages_count > 0) { + // Loop through each page and generate an HTML list of their links and titles. + foreach ($pages as $one_page) { +?> + + +
    + +
    diff --git a/modules/treeview/views/treeview_page_list.html.php b/modules/treeview/views/treeview_page_list.html.php new file mode 100755 index 0000000..18a4c51 --- /dev/null +++ b/modules/treeview/views/treeview_page_list.html.php @@ -0,0 +1,115 @@ + + + +
    +

    +
    +
    + + + + +
    +

    +
    +
      + +
    • + "> +
    • +
    • + "> +
    • + + +
    • + "> +
    • + +
    + + + +
    +

    +
    + + + +
    diff --git a/modules/user_info/controllers/admin_user_info.php b/modules/user_info/controllers/admin_user_info.php new file mode 100755 index 0000000..e483938 --- /dev/null +++ b/modules/user_info/controllers/admin_user_info.php @@ -0,0 +1,250 @@ +page_title = t("User Information Settings"); + $view->content = new View("admin_user_info.html"); + $view->content->user_info_form = $this->_get_admin_form(); + print $view; + } + + public function saveprefs() { + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + // Figure out the values of the text boxes + $str_per_page = Input::instance()->post("per_page"); + $str_default_sort_column = Input::instance()->post("default_sort_column"); + $str_default_sort_order = Input::instance()->post("default_sort_order"); + $str_use_default_gallery_date_format = Input::instance()->post("use_default_gallery_date_format"); + $str_date_format = Input::instance()->post("date_format"); + $str_log_logins = Input::instance()->post("log_logins"); + $str_color_login = Input::instance()->post("color_login"); + $str_log_logouts = Input::instance()->post("log_logouts"); + $str_color_logout = Input::instance()->post("color_logout"); + $str_log_failed_logins = Input::instance()->post("log_failed_logins"); + $str_color_failed_login = Input::instance()->post("color_failed_login"); + $str_log_re_authenticate_logins = Input::instance()->post("log_re_authenticate_logins"); + $str_color_re_authenticate_login = Input::instance()->post("color_re_authenticate_login"); + $str_log_user_created = Input::instance()->post("log_user_created"); + $str_color_user_created = Input::instance()->post("color_user_created"); + + // Save Settings. + module::set_var("user_info", "per_page", $str_per_page); + module::set_var("user_info", "default_sort_column", $str_default_sort_column); + module::set_var("user_info", "default_sort_order", $str_default_sort_order); + module::set_var("user_info", "use_default_gallery_date_format", $str_use_default_gallery_date_format); + module::set_var("user_info", "date_format", $str_date_format); + module::set_var("user_info", "log_logins", $str_log_logins); + module::set_var("user_info", "color_login", $str_color_login); + module::set_var("user_info", "log_logouts", $str_log_logouts); + module::set_var("user_info", "color_logout", $str_color_logout); + module::set_var("user_info", "log_failed_logins", $str_log_failed_logins); + module::set_var("user_info", "color_failed_login", $str_color_failed_login); + module::set_var("user_info", "log_re_authenticate_logins", $str_log_re_authenticate_logins); + module::set_var("user_info", "color_re_authenticate_login", $str_color_re_authenticate_login); + module::set_var("user_info", "log_user_created", $str_log_user_created); + module::set_var("user_info", "color_user_created", $str_color_user_created); + message::success(t("Your Settings Have Been Saved.")); + + // Load Admin page. + $view = new Admin_View("admin.html"); + $view->page_title = t("User Information Settings"); + $view->content = new View("admin_user_info.html"); + $view->content->user_info_form = $this->_get_admin_form(); + print $view; + } + + private function _get_admin_form() { + // Make a new Form. + $form = new Forge("admin/user_info/saveprefs", "", "post", + array("id" => "g-user_info-admin-form")); + + // Create the input boxes for the User Information Settings + $user_infoGroup = $form->group("UserInformationSettings"); + $user_infoGroup->dropdown("per_page") + ->label(t("Number of records to display per page")) + ->options(array("5" => t("5"), + "10" => t("10"), + "15" => t("15"), + "25" => t("25"), + "50" => t("50"), + "75" => t("75"), + "100" => t("100"), + "125" => t("125"))) + ->selected(module::get_var("user_info", "per_page")); + $user_infoGroup->dropdown("default_sort_column") + ->label(t("Default Column to Sort By")) + ->options(array("id" => t("id"), + "user_id" => t("user_id"), + "user_name" => t("user_name"), + "ip_address" => t("ip_address"), + "time_stamp" => t("time_stamp"), + "action" => t("action"))) + ->selected(module::get_var("user_info", "default_sort_column")); + $user_infoGroup->dropdown("default_sort_order") + ->label(t("Default Sort Order")) + ->options(array("ASC" => t("Ascending"), + "DESC" => t("Descending"))) + ->selected(module::get_var("user_info", "default_sort_order")); + $user_infoGroup->dropdown("use_default_gallery_date_format") + ->label(t("Use Default Gallery Date/Time Format")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "use_default_gallery_date_format")); + $user_infoGroup->input("date_format") + ->label(t("Format of the Date & Time - PHP Date")) + ->value(module::get_var("user_info", "date_format")); + $user_infoGroup->dropdown("log_logins") + ->label(t("Log Logins")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "log_logins")); + $user_infoGroup->input("color_login") + ->label(t("Login Color - Hex Only - HTML Colors",array("color_login" => module::get_var("user_info", "color_login")))) + ->value(module::get_var("user_info", "color_login")); + $user_infoGroup->dropdown("log_logouts") + ->label(t("Log Logouts")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "log_logouts")); + $user_infoGroup->input("color_logout") + ->label(t("Logout Color - Hex Only - HTML Colors",array("color_logout" => module::get_var("user_info", "color_logout")))) + ->value(module::get_var("user_info", "color_logout")); + $user_infoGroup->dropdown("log_failed_logins") + ->label(t("Log Failed Logins")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "log_failed_logins")); + $user_infoGroup->input("color_failed_login") + ->label(t("Failed Login Color - Hex Only - HTML Colors",array("color_failed_login" => module::get_var("user_info", "color_failed_login")))) + ->value(module::get_var("user_info", "color_failed_login")); + $user_infoGroup->dropdown("log_re_authenticate_logins") + ->label(t("Log Re-Authenticate Logins")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "log_re_authenticate_logins")); + $user_infoGroup->input("color_re_authenticate_login") + ->label(t("Re-Authenticate Login Color - Hex Only - HTML Colors",array("color_re_authenticate_login" => module::get_var("user_info", "color_re_authenticate_login")))) + ->value(module::get_var("user_info", "color_re_authenticate_login")); + $user_infoGroup->dropdown("log_user_created") + ->label(t("Log User Created")) + ->options(array("Yes" => t("Yes"), + "No" => t("No"))) + ->selected(module::get_var("user_info", "log_user_created")); + $user_infoGroup->input("color_user_created") + ->label(t("User Created Color - Hex Only - HTML Colors",array("color_user_created" => module::get_var("user_info", "color_user_created")))) + ->value(module::get_var("user_info", "color_user_created")); + + // Add a save button to the form. + $form->submit("SaveSettings")->value(t("Save")); + + // Return the newly generated form. + return $form; + } + + + + + + + public function lookupip() { + // Generate a new admin page. + $view = new Admin_View("admin.html"); + $view->page_title = t("User Info: Lookup IP Address"); + $view->content = new View("admin_user_info_lookupip.html"); +// $view->content->block_ip_address = $this->_get_block_ip_address_form(); + print $view; + } + + + + + + + public function blockip() { + // Prevent Cross Site Request Forgery + access::verify_csrf(); + + // Figure out the values of the text boxes + // Figure out the ip address to block + $str_per_page = Input::instance()->post("per_page"); + $str_default_sort_column = Input::instance()->post("default_sort_column"); + + // Block IP Addresss. + module::set_var("user_info", "per_page", $str_per_page); + message::success(t("Your Settings Have Been Saved.")); + + // Load Admin page. + // $view = new Admin_View("admin.html"); + // $view->page_title = t("User Information Settings"); + // $view->content = new View("admin_user_info.html"); + // $view->content->user_info_form = $this->_get_admin_form(); + // print $view; + + $view = new Admin_View("admin.html"); + $view->page_title = t("User Info: Lookup IP Address"); + $view->content = new View("admin_user_info_lookupip.html"); + $view->content->block_ip_address = $this->_get_block_ip_address_form(); + + print $view; + + } + + + private function _get_block_ip_address_form() { + // Make a new Form. +// $form = new Forge("admin/user_info/blockip", "", "post", +// array("id" => "g-user_info-block-ip-address-form")); +// +// // Create the input boxes for the User Information Settings +// $block_ipGroup = $form->group("BlockIPAddress"); +// $block_ipGroup->dropdown("per_page") +// ->label(t("Number of records to display per page")) +// ->options(array("25" => t("25"), +// "50" => t("50"), +// "75" => t("75"), +// "100" => t("100"), +// "125" => t("125"), +// "150" => t("150"))) +// ->selected(module::get_var("user_info", "per_page")); +// $block_ipGroup->input("date_format") +// ->label(t("Format of the Date & Time - PHP Date")) +// ->value(module::get_var("user_info", "date_format")); +// $block_ipGroup->input("color_login") +// ->label(t("Login Color - HTML Colors")) +// ->value(module::get_var("user_info", "color_login")); +// ->value(module::get_var("user_info", "color_failed_login")); +// +// // Add a save button to the form. +// $form->submit("SaveSettings")->value(t("Block IP Address")); +// +// // Return the newly generated form. +// return $form; + } + + + + +} + diff --git a/modules/user_info/helpers/user_info_block.php b/modules/user_info/helpers/user_info_block.php new file mode 100755 index 0000000..86820c9 --- /dev/null +++ b/modules/user_info/helpers/user_info_block.php @@ -0,0 +1,56 @@ + t("User Information")); + } + + static function get($block_id) { + $block = new Block(); + switch ($block_id) { + case "user_info": + $block->css_id = "g-user_info"; + $block->title = t("User Information"); + $block->content = new View("admin_block_user_info.html"); + $block->content->number_of_records = ORM::factory("user_info")->count_all(); + + // helps build the pagniation + $page_size = module::get_var("user_info", "per_page"); + $page = Input::instance()->get("page", "1"); + $builder = db::build(); + $user_count = $builder->from("user_infos")->count_records(); + $block->content->pager = new Pagination(); + $block->content->pager->initialize( + array("query_string" => "page", + "total_items" => $user_count, + "items_per_page" => $page_size, + "style" => "classic")); + // Make sure that the page references a valid offset + if ($page < 1) { +// This prevents the admin page from displaying if there are no records in the database, commented out to temp. fix +// url::redirect(url::merge(array("page" => 1))); + url::site("admin"); //This should fix the issue I think + } else if ($page > $block->content->pager->total_pages) { + url::redirect(url::merge(array("page" => $block->content->pager->total_pages))); + } + // Get the user defined settings for sort by and sort order + $default_sort_column = module::get_var("user_info", "default_sort_column"); + $default_sort_order = module::get_var("user_info", "default_sort_order"); + $block->content->data = ORM::factory("user_info") + ->order_by($default_sort_column, $default_sort_order) + ->find_all($page_size, $block->content->pager->sql_offset); + +// $block->content->data = ORM::factory("user_info")->find_all(); + + $block->content->use_default_gallery_date_format = module::get_var("user_info", "use_default_gallery_date_format"); + $block->content->date_format = module::get_var("user_info", "date_format"); + $block->content->color_login = module::get_var("user_info", "color_login"); + $block->content->color_logout = module::get_var("user_info", "color_logout"); + $block->content->color_failed_login = module::get_var("user_info", "color_failed_login"); + $block->content->color_re_authenticate_login = module::get_var("user_info", "color_re_authenticate_login"); + $block->content->color_user_created = module::get_var("user_info", "color_user_created"); + + break; + } + return $block; + } +} diff --git a/modules/user_info/helpers/user_info_event.php b/modules/user_info/helpers/user_info_event.php new file mode 100755 index 0000000..8a76ba0 --- /dev/null +++ b/modules/user_info/helpers/user_info_event.php @@ -0,0 +1,100 @@ +get("settings_menu") + ->append(Menu::factory("link") + ->id("user_info") + ->label(t("User Info")) + ->url(url::site("admin/user_info"))); + } + + static function user_login() { + $log_logins = module::get_var("user_info", "log_logins"); + if ($log_logins == "Yes") { + $user_info = ORM::factory("user_info"); + $user_info->user_id = identity::active_user()->id; + $user_info->user_name = identity::active_user()->name; + $user_info->ip_address = $_SERVER['REMOTE_ADDR']; + $user_info->time_stamp = time(); + $user_info->action = "Login"; + $user_info->save(); + } + } + + static function user_logout($user) { + $log_logouts = module::get_var("user_info", "log_logouts"); + if ($log_logouts == "Yes") { + $user_info = ORM::factory("user_info"); + $user_info->user_id = $user->id; + $user_info->user_name = $user->name; + $user_info->ip_address = $_SERVER['REMOTE_ADDR']; + $user_info->time_stamp = time(); + $user_info->action = "Logout"; + $user_info->save(); + } + } + + static function user_auth_failed($user_name) { + $log_failed_logins = module::get_var("user_info", "log_failed_logins"); + if ($log_failed_logins == "Yes") { + $user_info = ORM::factory("user_info"); + if (identity::lookup_user_by_name($user_name)) { + $user_info->user_id = identity::lookup_user_by_name($user_name)->id; + } else { + $user_info->user_id = ""; + } + $user_info->user_name = $user_name; + $user_info->ip_address = $_SERVER['REMOTE_ADDR']; + $user_info->time_stamp = time(); + $user_info->action = "Failed Login"; + $user_info->save(); + } + } + + static function user_auth($user) { + $log_re_authenticate_logins = module::get_var("user_info", "log_re_authenticate_logins"); + if ($log_re_authenticate_logins == "Yes") { + $user_info = ORM::factory("user_info"); + $user_info->user_id = $user->id; + $user_info->user_name = $user->name; + $user_info->ip_address = $_SERVER['REMOTE_ADDR']; + $user_info->time_stamp = time(); + $user_info->action = "Re-Authenticate Login"; + $user_info->save(); + } + } + + static function user_created($pending_user) { + $log_user_created = module::get_var("user_info", "log_user_created"); + if ($log_user_created == "Yes") { + $user_info = ORM::factory("user_info"); + $user_info->user_id = $pending_user->id; + $user_info->user_name = $pending_user->name; + $user_info->ip_address = $_SERVER['REMOTE_ADDR']; + $user_info->time_stamp = time(); + $user_info->action = "User Created"; + $user_info->save(); + } + } + + +} diff --git a/modules/user_info/helpers/user_info_installer.php b/modules/user_info/helpers/user_info_installer.php new file mode 100755 index 0000000..2bb0b69 --- /dev/null +++ b/modules/user_info/helpers/user_info_installer.php @@ -0,0 +1,82 @@ +query("CREATE TABLE IF NOT EXISTS {user_infos} ( + `id` int(11) NOT NULL auto_increment, + `user_id` varchar(128) default NULL, + `user_name` varchar(128) default NULL, + `ip_address` varchar(255) default NULL, + `time_stamp` varchar(128) default NULL, + `action` varchar(128) default NULL, + PRIMARY KEY (`id`)) + DEFAULT CHARSET=utf8;"); + + module::set_var("user_info", "per_page", 25); + module::set_var("user_info", "default_sort_column", "id"); + module::set_var("user_info", "default_sort_order", "DESC"); + module::set_var("user_info", "use_default_gallery_date_format", "Yes"); + module::set_var("user_info", "date_format", "D d M Y h:i:s A T"); + module::set_var("user_info", "log_logins", "Yes"); + module::set_var("user_info", "color_login", "#008000"); + module::set_var("user_info", "log_logouts", "Yes"); + module::set_var("user_info", "color_logout", "#0000FF"); + module::set_var("user_info", "log_failed_logins", "Yes"); + module::set_var("user_info", "color_failed_login", "#FF0000"); + module::set_var("user_info", "log_re_authenticate_logins", "No"); + module::set_var("user_info", "color_re_authenticate_login", "#800080"); + module::set_var("user_info", "log_user_created", "No"); + module::set_var("user_info", "color_user_created", "#FF8C00"); + module::set_version("user_info", 1); + } + + + static function upgrade($version) { +// $db = Database::instance(); + if ($version == 1) { +// $db->query("ALTER TABLE {comments} CHANGE `state` `state` varchar(15) default 'unpublished'"); + module::set_version("user_info", $version = 2); + } +// +// if ($version == 2) { +// module::set_var("comment", "access_permissions", "everybody"); +// module::set_version("comment", $version = 3); +// } + } + + + + static function uninstall() { +// $db = Database::instance(); +// $db->query("DROP TABLE IF EXISTS {userinfo};"); +// /* @todo Put database table drops here */ +// module::delete("userinfo"); + } + + +// static function deactivate() { +// site_status::clear("user_info"); +// $db = Database::instance(); +// $db->query("DROP TABLE IF EXISTS {user_infos};"); +// } + + +} diff --git a/modules/user_info/models/user_info.php b/modules/user_info/models/user_info.php new file mode 100755 index 0000000..ec07b7e --- /dev/null +++ b/modules/user_info/models/user_info.php @@ -0,0 +1,21 @@ + + +
    +

    here.

    User Created - Logs users that the Admin creates and can log the users that are created by visitors when using the Registration Module and the Registration Module is set to 'Visitors can create accounts and no administrator approval is required'.", + array("user_info_configure" => html::mark_clean(url::site("admin/user_info")))) ?>

    +
    + +
    + + + + + 0) { ?> + + + + + + + + + + + + + + + + + + + + + + + + + 0) { ?> + + + + + + + + + + + + + + + + + + + + + +
    $number_of_records)) ?>
    id ?>user_id ?> + user_id){ ?> + user_id") ?>" target="_blank">user_name) ?> + + user_name ?>
    + +
    + ip_address") ?>" target="_blank">ip_address) ?> + + + time_stamp) ?> + time_stamp); + } + ?> + + action) + { + case "Failed Login": + echo ""; + echo $myData->action; + echo ""; + break; + + case "Login": + echo ""; + echo $myData->action; + echo ""; + break; + + case "Logout": + echo ""; + echo $myData->action; + echo ""; + break; + + case "Re-Authenticate Login": + echo ""; + echo $myData->action; + echo ""; + break; + + case "User Created": + echo ""; + echo $myData->action; + echo ""; + break; + + default: + echo ""; + echo $myData->action; + echo ""; + } + ?> +
    +
    diff --git a/modules/user_info/views/admin_user_info.html.php b/modules/user_info/views/admin_user_info.html.php new file mode 100755 index 0000000..3ae6986 --- /dev/null +++ b/modules/user_info/views/admin_user_info.html.php @@ -0,0 +1,6 @@ + +
    +

    + +
    + diff --git a/modules/user_info/views/admin_user_info_lookupip.html.php b/modules/user_info/views/admin_user_info_lookupip.html.php new file mode 100755 index 0000000..4be1b29 --- /dev/null +++ b/modules/user_info/views/admin_user_info_lookupip.html.php @@ -0,0 +1,8 @@ + + +

    +

    +

    [x]

    + diff --git a/themes/clean_canvas/admin/controllers/admin_theme_options.php b/themes/clean_canvas/admin/controllers/admin_theme_options.php new file mode 100755 index 0000000..68dc189 --- /dev/null +++ b/themes/clean_canvas/admin/controllers/admin_theme_options.php @@ -0,0 +1,134 @@ +page_title = t("Theme options"); + $view->content = new View("admin_theme_options.html"); + $view->content->form = $this->_get_edit_form_admin(); + print $view; + } + + public function save() { + access::verify_csrf(); + + $form = $this->_get_edit_form_admin(); + if ($form->validate()) { + module::set_var("theme_clean_canvas", "wide", $form->theme_appearance->wide->value); + module::set_var("theme_clean_canvas", "color_variant", $form->theme_appearance->color_variant->value); + + module::set_var("theme_clean_canvas", "use_shadowbox", $form->additional_modules->use_shadowbox->value); + module::set_var("theme_clean_canvas", "use_shadowbox_instead_photopage", $form->additional_modules->use_shadowbox_instead_photopage->value); + + module::set_var("gallery", "page_size", $form->edit_theme->page_size->value); + + $thumb_size = $form->edit_theme->thumb_size->value; + $thumb_dirty = false; + if (module::get_var("gallery", "thumb_size") != $thumb_size) { + graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); + graphics::add_rule( + "gallery", "thumb", "gallery_graphics::resize", + array("width" => $thumb_size, "height" => $thumb_size, "master" => Image::AUTO), + 100); + module::set_var("gallery", "thumb_size", $thumb_size); + } + + $resize_size = $form->edit_theme->resize_size->value; + $resize_dirty = false; + if (module::get_var("gallery", "resize_size") != $resize_size) { + graphics::remove_rule("gallery", "resize", "gallery_graphics::resize"); + graphics::add_rule( + "gallery", "resize", "gallery_graphics::resize", + array("width" => $resize_size, "height" => $resize_size, "master" => Image::AUTO), + 100); + module::set_var("gallery", "resize_size", $resize_size); + } + + module::set_var("gallery", "header_text", $form->edit_theme->header_text->value); + module::set_var("gallery", "footer_text", $form->edit_theme->footer_text->value); + module::set_var("gallery", "show_credits", $form->edit_theme->show_credits->value); + module::set_var("gallery", "favicon_url", $form->edit_theme->favicon_url->value); + + module::event("theme_edit_form_completed", $form); + + message::success(t("Updated theme details")); + url::redirect("admin/theme_options"); + } else { + $view = new Admin_View("admin.html"); + $view->content = new View("admin_theme_options.html"); + $view->content->form = $form; + print $view; + } + } + + private function _get_edit_form_admin() { + $form = new Forge("admin/theme_options/save/", "", null, array("id" =>"g-theme-options-form")); + + $group = $form->group("theme_appearance")->label("Theme appearance"); + $group->checkbox("wide")->label(t("Use wide layout instead of fixed width")) + ->checked((module::get_var("theme_clean_canvas", "wide"))); + $group->dropdown("color_variant")->label(t("Color variant")) + ->options(array("clean" => t("Clean Canvas"), "dark" => t("Dark Canvas"))) + ->selected(module::get_var("theme_clean_canvas", "color_variant")); + + $group = $form->group("additional_modules")->label("Additional supported modules"); + $group->checkbox("shadowbox_available")->label(t("Shadowbox module available")) + ->checked((module::is_active("shadowbox")))->disabled(true); + $group->checkBox("use_shadowbox")->label(t("Use shadowbox functionality")) + ->checked((module::get_var("theme_clean_canvas", "use_shadowbox"))) + ->enabled(module::is_active("shadowbox")); + $group->checkBox("use_shadowbox_instead_photopage")->label(t("Use shadowbox functionality in album instead of going to photo page (experimental)")) + ->checked((module::get_var("theme_clean_canvas", "use_shadowbox_instead_photopage"))) + ->enabled(module::is_active("shadowbox")); + + $group = $form->group("edit_theme")->label(t("Theme layout")); + $group->input("page_size")->label(t("Items per page"))->id("g-page-size") + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "page_size")); + $group->input("thumb_size")->label(t("Thumbnail size (in pixels)"))->id("g-thumb-size") + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "thumb_size")); + $group->input("resize_size")->label(t("Resized image size (in pixels)"))->id("g-resize-size") + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "resize_size")); + $group->input("favicon_url")->label(t("URL (or relative path) to your favicon.ico")) + ->id("g-favicon") + ->value(module::get_var("gallery", "favicon_url")); + $group->textarea("header_text")->label(t("Header text"))->id("g-header-text") + ->value(module::get_var("gallery", "header_text")); + $group->textarea("footer_text")->label(t("Footer text"))->id("g-footer-text") + ->value(module::get_var("gallery", "footer_text")); + $group->checkbox("show_credits")->label(t("Show site credits"))->id("g-footer-text") + ->checked(module::get_var("gallery", "show_credits")); + + module::event("theme_edit_form", $form); + + $group = $form->group("buttons"); + $group->submit("")->value(t("Save")); + return $form; + } +} + diff --git a/themes/clean_canvas/css/calendarview_menu.css b/themes/clean_canvas/css/calendarview_menu.css new file mode 100755 index 0000000..600cc15 --- /dev/null +++ b/themes/clean_canvas/css/calendarview_menu.css @@ -0,0 +1,3 @@ +#g-view-menu #g-calendarview-link { + background-image: url('../images/ico-view-calendarview.png'); +} diff --git a/themes/clean_canvas/css/clean/screen_candy.css b/themes/clean_canvas/css/clean/screen_candy.css new file mode 100755 index 0000000..2cb9d6e --- /dev/null +++ b/themes/clean_canvas/css/clean/screen_candy.css @@ -0,0 +1,406 @@ +/** + * Gallery 3 Clean Canvas Theme Screen Styles + * + * @requires YUI reset, font, grids CSS + * + * Sheet organization: + * 1) Font sizes, base HTML elements + * 2) Reusable content blocks + * 3) Page layout containers + * 4) Content blocks in specific layout containers + * 5) States and interactions + * 6) Positioning and order + * 7) Navigation and menus + * 8) jQuery and jQuery UI + * 9) Right-to-left language styles + */ + +/** ******************************************************************* + * 1) Font sizes, base HTML elements + **********************************************************************/ + +#g-sidebar .g-block h2 { + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + -khtml-border-radius: 5px; + border-radius: 5px; +} + +#g-sidebar{ + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; + box-shadow: 1px 2px 8px #333; + -moz-box-shadow: 1px 2px 8px #333; + -webkit-box-shadow: 1px 2px 8px #333; +} + +.g-thumbnail, #g-photo img +{ + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; + box-shadow: 3px 3px 8px #333; + -moz-box-shadow: 3px 3px 8px #333; + -webkit-box-shadow: 3px 3px 8px #333; +} + +/* Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +a, +.g-menu a, +#g-dialog a, +.g-button, +.g-button:hover, +.g-button:active, +a.ui-state-hover, +input.ui-state-hover, +button.ui-state-hover { + -moz-outline-style: none; +} + +#g-banner a +{ + cursor: pointer !important; + -moz-outline-style: none; +} + +/* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +fieldset { + border: 1px solid #ccc; +} + +#g-banner fieldset, +#g-sidebar fieldset { + border: none; +} + +input.textbox, +input[type="text"], +input[type="password"], +textarea { + border: 1px solid #e8e8e8; + +} + + +/* Forms in dialogs and panels ~~~~~~~~~ */ + + +#g-dialog fieldset, +#g-panel fieldset { + border: none; +} + +/* Short forms ~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-short-form fieldset { + border: none; +} + +.g-short-form .textbox.g-error { + border: 1px solid #f00; +} + +/* Tables ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +th, +td { + border: none; + border-bottom: 1px solid #ccc; +} + +/** ******************************************************************* + * 2) Reusable content blocks + *********************************************************************/ + + +/*** ****************************************************************** + * 3) Page layout containers + *********************************************************************/ + +/* View container ~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-view { + border-bottom: none; +} + +/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */ + +#g-banner { + -moz-border-radius: 10px 10px 0px 0px; + -webkit-border-radius: 10px 10px 0px 0px; + -khtml-border-radius: 10px 10px 0px 0px; + border-radius: 10px 10px 0px 0px; +} + +/** ******************************************************************* + * 4) Content blocks in specific layout containers + *********************************************************************/ + + +#g-content #g-album-grid .g-hover-item { + -moz-border-radius: 10px 10px 0px 0px; + -webkit-border-radius: 10px 10px 0px 0px; + -khtml-border-radius: 10px 10px 0px 0px; + border-radius: 10px 10px 0px 0px; + + box-shadow: 3px 3px 8px #333; + -moz-box-shadow: 3px 3px 8px #333; + -webkit-box-shadow: 3px 3px 8px #333; +} + + + +#g-edit-permissions-form fieldset { + border: 1px solid #ccc; +} + +#g-permissions .g-breadcrumbs a { + border: 1px solid #fff; +} + +.g-editable:hover { + cursor: text; +} + +.g-draggable { + cursor: move; +} + +.g-draggable:hover { + border: 1px dashed #000; +} + + +/** ******************************************************************* + * 6) Positioning and order + **********************************************************************/ + +/** ******************************************************************* + * 7) Navigation and menus + *********************************************************************/ + +/* Login menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + +/* Site Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +#g-site-menu ul li:hover { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius; 10px; +} + +#g-site-menu ul li ul li:hover, #g-site-menu a:hover, #g-site-menu a:active, #g-site-menu a:focus { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius; 10px; +} + +#g-site-menu ul { + border-radius: 10px; + -moz-border-radius: 10px; + -webkit-border-radius; 10px; +} + +/* Context Menu ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + +.g-context-menu li { + border-left: none; + border-right: none; + border-bottom: none; +} + +.g-context-menu li a { + line-height: 1.6em; +} + +/* View Menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-view-menu { + border-bottom: 1px solid #050505; +} + +#g-view-menu a { + background-repeat: no-repeat; + background-position: 50% 50%; +} + +/** ******************************************************************* + * 8) jQuery and jQuery UI + *********************************************************************/ + +.sf-menu a +{ + border: 0 none; +} + +/* jQuery UI Dialog ~~~~~~~~~~~~~~~~~~~~~~ */ + +.ui-widget-overlay { + opacity: .7; +} + +/* Buttons ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-button, +.g-button:hover, +.g-button:active { + cursor: pointer !important; + outline: 0; + -moz-outline-style: none; +} + + +/* jQuery UI ThemeRoller buttons ~~~~~~~~~ */ + + +/* Status and validation messages ~~~~ */ + +.g-message-block { + border: 1px solid #ccc; +} + + +/** ******************************************************************* + * 9) Right to left language styles + *********************************************************************/ + + +/* RTL Corner radius ~~~~~~~~~~~~~~~~~~~~~~ */ +.rtl .g-buttonset .ui-corner-tl { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; +} + +.rtl .g-buttonset .ui-corner-tr { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; +} + +.rtl .g-buttonset .ui-corner-bl { + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +.rtl .g-buttonset .ui-corner-br { + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.rtl .g-buttonset .ui-corner-right, +.rtl .ui-progressbar .ui-corner-right { + -moz-border-radius-topright: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + -moz-border-radius-topleft: 5px !important; + -webkit-border-top-left-radius: 5px !important; + border-top-left-radius: 5px !important; + -moz-border-radius-bottomright: 0; + -webkit-border-bottom-right-radius: 0; + border-bottom-right-radius: 0; + -moz-border-radius-bottomleft: 5px !important; + -webkit-border-bottom-left-radius: 5px !important; + border-bottom-left-radius: 5px !important; +} + +.rtl .g-buttonset .ui-corner-left, +.rtl .ui-progressbar .ui-corner-left { + -moz-border-radius-topleft: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -moz-border-radius-topright: 5px !important; + -webkit-border-top-right-radius: 5px !important; + border-top-right-radius: 5px !important; + -moz-border-radius-bottomleft: 0; + -webkit-border-bottom-left-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-bottomright: 5px !important; + -webkit-border-bottom-right-radius: 5px !important; + border-bottom-right-radius: 5px !important; +} + +/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.rtl .sf-menu a { + border-left: none; + border-right:1px solid #fff; +} + +/*** shadows for all but IE6 ***/ +.rtl .sf-shadow ul { + border-top-right-radius: 0; + border-bottom-left-radius: 0; + -moz-border-radius-topright: 0; + -moz-border-radius-bottomleft: 0; + -webkit-border-top-right-radius: 0; + -webkit-border-bottom-left-radius: 0; + -moz-border-radius-topleft: 17px; + -moz-border-radius-bottomright: 17px; + -webkit-border-top-left-radius: 17px; + -webkit-border-bottom-right-radius: 17px; + border-top-left-radius: 17px; + border-bottom-right-radius: 17px; +} + + + +#doc3 +{ + box-shadow: 4px 4px 12px #333; + -moz-box-shadow: 4px 4px 12px #333; + -webkit-box-shadow: 4px 4px 12px #333; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} + +#doc4 +{ + box-shadow: 4px 4px 12px #333; + -moz-box-shadow: 4px 4px 12px #333; + -webkit-box-shadow: 4px 4px 12px #333; + -moz-border-radius: 10px; + -webkit-border-radius: 10px; + -khtml-border-radius: 10px; + border-radius: 10px; +} +.g-thumbnail:hover { + box-shadow: 4px 4px 12px #333; + -moz-box-shadow: 4px 4px 12px #333; + -webkit-box-shadow: 4px 4px 12px #333; +} +#g-banner { + border-bottom: 1px solid #050505; + -moz-opacity:.9; + -webkit-opacity:.9; + opacity:.9; +} + +#g-footer { + border-top: 1px solid #050505; + -moz-border-radius: 0px 0px 10px 10px; + -webkit-border-radius: 0px 0px 10px 10px; + -khtml-border-radius: 0px 0px 10px 10px; + border-radius: 0px 0px 10px 10px; +} + diff --git a/themes/clean_canvas/css/clean/screen_colors.css b/themes/clean_canvas/css/clean/screen_colors.css new file mode 100755 index 0000000..14a4fb6 --- /dev/null +++ b/themes/clean_canvas/css/clean/screen_colors.css @@ -0,0 +1,407 @@ +/** + * Gallery 3 Clean Canvas Theme Screen Styles + * + * @requires YUI reset, font, grids CSS + * + * Sheet organization: + * 1) Font sizes, base HTML elements + * 2) Reusable content blocks + * 3) Page layout containers + * 4) Content blocks in specific layout containers + * 5) States and interactions + * 6) Positioning and order + * 7) Navigation and menus + * 8) jQuery and jQuery UI + * 9) Right-to-left language styles + */ + +/** ******************************************************************* + * 1) Font sizes, base HTML elements + **********************************************************************/ + +body, html { + background-color: #fff; + background: url("../../images/clean/page_background.jpg"); + color: #555; /* font-family: 'Lucida Grande', 'Lucida Sans', Arial, sans-serif;*/ +} + +#g-sidebar .g-block h2 { + background: rgba( 255,255,255,0.5 ); +} + +#g-sidebar{ + background:url("../../images/clean/background_header.jpg"); +} + + +/* Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +a, +.g-menu a, +#g-dialog a, +.g-button, +.g-button:hover, +.g-button:active, +a.ui-state-hover, +input.ui-state-hover, +button.ui-state-hover { + color: #3C5580 !important; +} + +#g-banner a +{ + color: #3C5580; +} + +.g-menu li, +.g-menu ul { + background: transparent !important; +} + +/* Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +input.textbox, +input[type="text"], +input[type="password"], +textarea { + border-top-color: #ccc; + border-left-color: #ccc; + color: #333; +} + +input:focus, +input.textbox:focus, +input[type=text]:focus, +textarea:focus, +option:focus { + background-color: #ffc; + color: #000; +} + +input[readonly] { + background-color: #F4F4FC; +} + +/* Short forms ~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-short-form .textbox, +.g-short-form input[type=text] { + color: #666; +} + +.g-short-form .textbox.g-error { + color: #f00; +} + + +/** ******************************************************************* + * 2) Reusable content blocks + *********************************************************************/ + + +/*** ****************************************************************** + * 3) Page layout containers + *********************************************************************/ + +/* View container ~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-view { + background: url("../../images/clean/background2.jpg"); +} + +/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */ + +#g-banner { + background: url("../../images/clean/background_header.jpg"); +} + +#g-footer { + background:url("../../images/clean/background_header.jpg"); +} + +/** ******************************************************************* + * 4) Content blocks in specific layout containers + *********************************************************************/ + +/* Header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-content .g-block h2 { + background-color: transparent; +} + +/* Album content ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-content #g-album-grid .g-album h2 span.g-album { + background: transparent url('../../images/clean/ico-album.png') no-repeat top left; +} + +#g-content #g-album-grid .g-hover-item { + background:url("../../images/clean/background_header.jpg"); +} + + +/* In-line editing ~~~~~~~~~~~~~~~~~~~~~~ */ + +#g-in-place-edit-message { + background-color: #fff; +} + +/* Permissions ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ +#g-edit-permissions-form td { + background-image: none; +} + +#g-permissions .g-denied { + background-color: #fcc; +} + +#g-permissions .g-allowed { + background-color: #cfc; +} + + +#g-permissions .g-active a { + background: #eee; +} + +/** ******************************************************************* + * 5) States and interactions + **********************************************************************/ + +.g-inactive, +.g-disabled, +.g-unavailable, +.g-uneditable, +.g-locked, +.g-deselected, +.g-understate { + color: #ccc; +} + +.g-editable:hover { + background-color: #ffc; +} + +form li.g-error, +form li.g-info, +form li.g-success, +form li.g-warning { + background-image: none; +} + +.g-error, +.g-denied, +tr.g-error td.g-error, +#g-add-photos-status .g-error { + background: #f6cbca url('../../images/clean/ico-error.png') no-repeat .4em 50%; + color: #f00; +} + +.g-info { + background: #e8e8e8 url('../../images/clean/ico-info.png') no-repeat .4em 50%; +} + +.g-success, +.g-allowed, +#g-add-photos-status .g-success { + background: #d9efc2 url('../../images/clean/ico-success.png') no-repeat .4em 50%; +} + +tr.g-success { + background-image: none; +} + +tr.g-success td.g-success { + background-image: url('../../images/clean/ico-success.png'); +} + +.g-warning, +tr.g-warning td.g-warning { + background: #fcf9ce url('../../images/clean/ico-warning.png') no-repeat .4em 50%; +} + +form .g-error { + background-color: #fff; +} + +.g-installed { + background-color: #eeeeee; +} + +.g-default { + background-color: #c5dbec; +} + +.ui-sortable .g-target, +.ui-state-highlight { + background-color: #fcf9ce; +} + +/* Ajax loading indicator ~~~~~~~~~~~~~~~~ */ + +.g-loading-large, +.g-dialog-loading-large { + background: #e8e8e8 url('../../images/clean/loading-large.gif') no-repeat center center !important; +} + +.g-loading-small { + background: #e8e8e8 url('../../images/clean/loading-small.gif') no-repeat center center !important; +} + +/** ******************************************************************* + * 6) Positioning and order + **********************************************************************/ + +.g-even { + background-color: #fff; +} + +.g-odd { + background-color: #eee; +} + +/** ******************************************************************* + * 7) Navigation and menus + *********************************************************************/ + + +#g-site-menu ul li:hover { + background-color: #CCC !important; +} + +#g-site-menu ul li ul li:hover, #g-site-menu a:hover, #g-site-menu a:active, #g-site-menu a:focus { + background-color: #AAA !important; +} +#g-site-menu ul { + background-color: #CCC; +} + +#g-site-menu ul li ul { + background-color: #CCC !important; +} + +/* Context Menu ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-context-menu { + background-color: #fff; +} + +#g-view-menu #g-slideshow-link { + background-image: url('../../images/clean/ico-view-slideshow.png'); +} + +#g-view-menu .g-fullsize-link { + background-image: url('../../images/clean/ico-view-fullsize.png'); +} + +#g-view-menu #g-comments-link { + background-image: url('../../images/clean/ico-view-comments.png'); +} + +#g-view-menu #g-print-digibug-link { + background-image: url('../../images/clean/ico-print.png'); +} + +/** ******************************************************************* + * 8) jQuery and jQuery UI + *********************************************************************/ + +.sfHover li +{ + background-color: #CCC; +} + +.sf-menu li:hover, .sf-menu li.sfHover, .sf-menu a:focus, .sf-menu a:hover, .sf-menu a:active +{ + background-color: #FFF; +} +.sf-menu li li, +.sf-menu li li ul li { + /* background: rgba( 255,255,255,0.5 );*/ + background-color: #CCC; +} + +.sfmenu li { + background-color: #CCC; + background:#CCC; +} + +.sf-menu li:hover { +/* background-color: #dfe9ff;*/ + background-color: #CCC; +} + +/* jQuery UI Dialog ~~~~~~~~~~~~~~~~~~~~~~ */ + +.ui-widget-overlay { + background: #000; +} + + + +/* Breadcrumbs ~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-breadcrumbs li { + background: transparent url('../../images/clean/ico-separator.gif') no-repeat scroll left center; +} + +.g-breadcrumbs .g-first { + background: none; +} + + +/* Pagination ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.g-paginator .g-info { + background: none; +} + + +/* Autocomplete ~~~~~~~~~~ */ +.ac_loading { + background: white url('../../images/clean/loading-small.gif') right center no-repeat !important; +} + +/** ******************************************************************* + * 9) Right to left language styles + *********************************************************************/ + + +.rtl .g-breadcrumbs li { + background: transparent url('../../images/clean/ico-separator-rtl.gif') no-repeat scroll right center; +} + +.rtl .g-breadcrumbs .g-first { + background: none; +} + + +/* RTL Superfish ~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.rtl .sf-sub-indicator { + background: url('../../../../lib/superfish/images/arrows-ffffff-rtl.png') no-repeat -10px -100px; /* 8-bit indexed alpha png. IE6 gets solid image only */ +} + +/*** shadows for all but IE6 ***/ +.rtl .sf-shadow ul { + background: url('../../../../lib/superfish/images/shadow.png') no-repeat bottom left; +} + +.rtl #g-view-menu #g-slideshow-link { + background-image: url('../../images/clean/ico-view-slideshow-rtl.png'); +} + +#g-banner ul li a +{ + color: #3C5580 !important; +} + +#g-site-menu ul li a +{ + color: #3C5580 !important; +} + +#g-view-menu #g-download-archive-link { + background-image: url('../../images/clean/ico-view-downloadarchive_new.png') !important; +} + diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png b/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png b/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png b/themes/clean_canvas/css/clean/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..04cbfd1d7e83e718f67eda47b3422ef7e7317786 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsX9*=$B>N1x91E68w?m2HU|BF zq}6noZR!O@W*&Lgo%5>qK0f~JdgJ7#RSUFMaIK;)mBlQ6nI-YjukzhMmoRv``njxg HN@xNAQYJ_w literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-bg_glass_75_dedede_1x400.png b/themes/clean_canvas/css/clean/themeroller/images/ui-bg_glass_75_dedede_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..c83fe5fd343848dfc1b58300c2a6034518856474 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq%1sL978O6-=0_GV^9!aK3Mku z|M}`eo(2{ivnI^)oE#b&%B!N;@MdX978O6-=1H{$DknM6e#!q z|JsyUVykAKJsWsVPtYTZr6K6l_8Wd@eY#Sf>AtU@64aM7$B*-ip@pO?P&*RPJ>^gN~kz{Zjw|F2GG-qnsmDUjz@ zAl&H<*$|dnVfwppX90K1Z^+iJ*LL@&jXsNdW9l=;v1==#tECd z3>#JE3Ou%mJs;10wm#J#>kQ@5bMT?8ddadAwptgOSL+=C`@ovim+5?X5TW;sq@0REFNu`{8yR({cK;( z6I=Mg;5K;UA9S;4@Y9Y?zKWS>ut~_Gq@yRi9-BcR*?lh#4vCm8lCqO<%ySb{QSWa?!Ib5`O7uSIlzu?s0|mMOh+!QS~or#p9lenTQBeBj>ZiR;jMHJhfaljZ=6TqnHtf z+Nit5WRZqHGpJawYa91#$dUbL%-cPbB=+GrK`OnRBYrcmV9S20FekkUP^0IWw&;;C z4+g62RaBFrp!<6{Oy`E6gAhYEKRGz=Yz-{3n$`ca2d_-1(l!7->u1-x^M@r4+bsp+ zskK_|InYc;?j>}amzOCh^cQeAmJ=k)pk;;tgFhpE{5mk4{>}^m=9IQwAgJ7a*5eA! zh_e*u{UsyzjA6$pfJuabNR+>VT(>I=YT582@$;EaQG9Ay$Tqm60J#T$~DY zj`RF$Mtk7pjzP82Fgr-McvdYK5*TK}OP<4vMMK$zPGj}GhqwCXtXwisvo=?04VxTR zK2mp$^%Odix%?c9aBAN}m3eM%yVB(wn=6GC`U*trx>#o@c!==b(3NxQu2+3MR$Qc| zXuE3PbzU*qHnIJO#YP-VgyG0i((-+ZC5n}8rXt7Obt@S07gN#93sH=>d#45kWsqgA^k4wL7JOLcMB0|z40pM+q*BazD`l^L>8cvv_Qh2NZ zgxa(bOHYJlktO0VZ$>>sM}+82Wd)7aesEz`zxxZjshs%TMo`r7BQ(gct-f3OjxTV-~+Dn7ESU|iYE$|QC$#l)r=7WZ~pV-e|| z6i+;X)M&~znR*5JB_%CVwI`8emEB8IWiF6T`wUNb<4_qDzP{8ZZ3t7a>(IOmB7a_2 zv_i#EL4xAn*|)`2+8(jwQjpWDZ7F2d^Bk=;32lY0sv0IZTb?oGm15{T_`N+PsnvQ? zoHd9s(qqB~ri}@A_{`C?HLmA4SpxgV9M)L>UV1-Ue&7g%HBOGbW6PuW7x*DN-y6r4 zRs4M1?za~BovV!5uEzc4z&l&XEFNN}8fg&kp$ZbF<-iB}Rw7GGLX13;$p_gq0YZ=_ zP_Zsnq~eTuddaeV>>2L3(moE(E5hD((D+EH=QSpu20DEpgPlE+Gm(kJRghXGIh>f& zhp9)A(xF#bJG7d9zk6jUGi#E1JZTgASt59srlfa~f&{gs<0pw+dER{OkIGyZ z`(TfIVv;#fWw@Io7ar0UcJI7p+8E@mIE>)SpUs?@PHFkoN+02(8ET5a6%IG6_0X(L zld-y%4I05pv`M)_D?u@F_D0a?*?Te37>p}HnW|#s_-OvlB(|!mLvd81=XP(EIAfhf zGCKHqk9Z}pCI$>e)l2CS&Q}v?l5T7E8)+-3gG!5~cKI(jIvdH;-8ZGBFefWeBWVF= zW6>yVU)@irS}sXo9S0`wnLMw#lvsvlFHQCPX`iQMYNYB zot2Z}ba7IsM@IlHh9kq77N&+tu+nwF{Z!GKEZ$C?S>@}88gL~NiK{#SnumQK)BIcy Ui~-53e-$7oAk@F^*x5h*6YuMeH~;_u literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/themes/clean_canvas/css/clean/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png new file mode 100755 index 0000000000000000000000000000000000000000..4f3faf8aa8b1054ef1b18b80ab58f670b406a794 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_6f8bb3_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_6f8bb3_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..50e1ae48506ca431e95ff4e2e87695aca65d443b GIT binary patch literal 5355 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 WAV=92WaHlx5AaCSP@`VWDeiyOd_*?@ literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_737373_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_737373_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..9e13fe63ac98ef1f78c48d900b4ba3802fa28735 GIT binary patch literal 5355 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8461_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8461_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..046b1f97b3196bdc5cd11b085e44020604dc193a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8f8f_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_8f8f8f_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..ab8b2698bc2c5d4e247bacda2d115fa0c0a5652e GIT binary patch literal 5355 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%0DhIdYk!G8pfRWBU+=q5*+ zx$dkDOk#l7^rb450;qn1&*0mO?QpHWxc;~(nAbecYo$N&r^JWCV6Q9$@MQ9vehw4+ zWPhS5+WVkitE24eD@$gVUrVa|FKb>MJvx0nTfM?Dy8W&5UH5yzLuq+aoWt)^15=_c zi%*9$Z(jh=GZ^#vpzU&X%KhKHB0qjjOO`$zP<}sPZN|#VT0(jjiMo5iw2jAY1r6hK z?*O}~_lZO^EhN<19~>8_)PEz0QWh}{?o*3jseg_j>Rj)59nA|?oPUgsY3Y!X+I?t5 zg*~}WZ~p{bJ|#-r647>iu2yfm*nCX7e+f`Op8opZ&EIEcVGD=N71B~t5U0St#jWzB zqS~o#g|o}U_%~zWj11R6n&Vc?nl=+godEo2C769y>a%j8iKD78*iAIGab4m>%$pE>&`*%l7Hw&ymv&S(OAQ3L_rpL=j9-cVnp W1aOpYK{o#Hm-$H3P@_)GDfWMUOGBOj literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_9e9e9e_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_9e9e9e_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..e2684f76ee6ee079bd14503d6038ac20aa3b976c GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/clean/themeroller/images/ui-icons_dedede_256x240.png b/themes/clean_canvas/css/clean/themeroller/images/ui-icons_dedede_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..91aada0ab4967f691f921387d7a7635ddda7feb1 GIT binary patch literal 4369 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 DSH>_4 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png b/themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_20_aaaaaa_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png b/themes/clean_canvas/css/dark/themeroller/images/ui-bg_flat_55_e6e4d0_40x100.png new file mode 100755 index 0000000000000000000000000000000000000000..04cbfd1d7e83e718f67eda47b3422ef7e7317786 GIT binary patch literal 183 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsX9*=$B>N1x91E68w?m2HU|BF zq}6noZR!O@W*&Lgo%5>qK0f~JdgJ7#RSUFMaIK;)mBlQ6nI-YjukzhMmoRv``njxg HN@xNAQYJ_w literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-bg_glass_75_dedede_1x400.png b/themes/clean_canvas/css/dark/themeroller/images/ui-bg_glass_75_dedede_1x400.png new file mode 100755 index 0000000000000000000000000000000000000000..c83fe5fd343848dfc1b58300c2a6034518856474 GIT binary patch literal 113 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq%1sL978O6-=0_GV^9!aK3Mku z|M}`eo(2{ivnI^)oE#b&%B!N;@MdX978O6-=1H{$DknM6e#!q z|JsyUVykAKJsWsVPtYTZr6K6l_8Wd@eY#Sf>AtU@64aM7$B*-ip@pO?P&*RPJ>^gN~kz{Zjw|F2GG-qnsmDUjz@ zAl&H<*$|dnVfwppX90K1Z^+iJ*LL@&jXsNdW9l=;v1==#tECd z3>#JE3Ou%mJs;10wm#J#>kQ@5bMT?8ddadAwptgOSL+=C`@ovim+5?X5TW;sq@0REFNu`{8yR({cK;( z6I=Mg;5K;UA9S;4@Y9Y?zKWS>ut~_Gq@yRi9-BcR*?lh#4vCm8lCqO<%ySb{QSWa?!Ib5`O7uSIlzu?s0|mMOh+!QS~or#p9lenTQBeBj>ZiR;jMHJhfaljZ=6TqnHtf z+Nit5WRZqHGpJawYa91#$dUbL%-cPbB=+GrK`OnRBYrcmV9S20FekkUP^0IWw&;;C z4+g62RaBFrp!<6{Oy`E6gAhYEKRGz=Yz-{3n$`ca2d_-1(l!7->u1-x^M@r4+bsp+ zskK_|InYc;?j>}amzOCh^cQeAmJ=k)pk;;tgFhpE{5mk4{>}^m=9IQwAgJ7a*5eA! zh_e*u{UsyzjA6$pfJuabNR+>VT(>I=YT582@$;EaQG9Ay$Tqm60J#T$~DY zj`RF$Mtk7pjzP82Fgr-McvdYK5*TK}OP<4vMMK$zPGj}GhqwCXtXwisvo=?04VxTR zK2mp$^%Odix%?c9aBAN}m3eM%yVB(wn=6GC`U*trx>#o@c!==b(3NxQu2+3MR$Qc| zXuE3PbzU*qHnIJO#YP-VgyG0i((-+ZC5n}8rXt7Obt@S07gN#93sH=>d#45kWsqgA^k4wL7JOLcMB0|z40pM+q*BazD`l^L>8cvv_Qh2NZ zgxa(bOHYJlktO0VZ$>>sM}+82Wd)7aesEz`zxxZjshs%TMo`r7BQ(gct-f3OjxTV-~+Dn7ESU|iYE$|QC$#l)r=7WZ~pV-e|| z6i+;X)M&~znR*5JB_%CVwI`8emEB8IWiF6T`wUNb<4_qDzP{8ZZ3t7a>(IOmB7a_2 zv_i#EL4xAn*|)`2+8(jwQjpWDZ7F2d^Bk=;32lY0sv0IZTb?oGm15{T_`N+PsnvQ? zoHd9s(qqB~ri}@A_{`C?HLmA4SpxgV9M)L>UV1-Ue&7g%HBOGbW6PuW7x*DN-y6r4 zRs4M1?za~BovV!5uEzc4z&l&XEFNN}8fg&kp$ZbF<-iB}Rw7GGLX13;$p_gq0YZ=_ zP_Zsnq~eTuddaeV>>2L3(moE(E5hD((D+EH=QSpu20DEpgPlE+Gm(kJRghXGIh>f& zhp9)A(xF#bJG7d9zk6jUGi#E1JZTgASt59srlfa~f&{gs<0pw+dER{OkIGyZ z`(TfIVv;#fWw@Io7ar0UcJI7p+8E@mIE>)SpUs?@PHFkoN+02(8ET5a6%IG6_0X(L zld-y%4I05pv`M)_D?u@F_D0a?*?Te37>p}HnW|#s_-OvlB(|!mLvd81=XP(EIAfhf zGCKHqk9Z}pCI$>e)l2CS&Q}v?l5T7E8)+-3gG!5~cKI(jIvdH;-8ZGBFefWeBWVF= zW6>yVU)@irS}sXo9S0`wnLMw#lvsvlFHQCPX`iQMYNYB zot2Z}ba7IsM@IlHh9kq77N&+tu+nwF{Z!GKEZ$C?S>@}88gL~NiK{#SnumQK)BIcy Ui~-53e-$7oAk@F^*x5h*6YuMeH~;_u literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png b/themes/clean_canvas/css/dark/themeroller/images/ui-bg_inset-hard_100_f5f8f9_1x100.png new file mode 100755 index 0000000000000000000000000000000000000000..4f3faf8aa8b1054ef1b18b80ab58f670b406a794 GIT binary patch literal 104 zcmeAS@N?(olHy`uVBq!ia0vp^j6j^i!3HGVb)pi0l)k5nV~E7m1R+}Z$C%HZkh=d#Wzp$Pz8A{XNT literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_6f8bb3_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_6f8bb3_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..50e1ae48506ca431e95ff4e2e87695aca65d443b GIT binary patch literal 5355 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 WAV=92WaHlx5AaCSP@`VWDeiyOd_*?@ literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_737373_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_737373_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..9e13fe63ac98ef1f78c48d900b4ba3802fa28735 GIT binary patch literal 5355 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8461_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8461_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..046b1f97b3196bdc5cd11b085e44020604dc193a GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8f8f_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_8f8f8f_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..ab8b2698bc2c5d4e247bacda2d115fa0c0a5652e GIT binary patch literal 5355 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%0DhIdYk!G8pfRWBU+=q5*+ zx$dkDOk#l7^rb450;qn1&*0mO?QpHWxc;~(nAbecYo$N&r^JWCV6Q9$@MQ9vehw4+ zWPhS5+WVkitE24eD@$gVUrVa|FKb>MJvx0nTfM?Dy8W&5UH5yzLuq+aoWt)^15=_c zi%*9$Z(jh=GZ^#vpzU&X%KhKHB0qjjOO`$zP<}sPZN|#VT0(jjiMo5iw2jAY1r6hK z?*O}~_lZO^EhN<19~>8_)PEz0QWh}{?o*3jseg_j>Rj)59nA|?oPUgsY3Y!X+I?t5 zg*~}WZ~p{bJ|#-r647>iu2yfm*nCX7e+f`Op8opZ&EIEcVGD=N71B~t5U0St#jWzB zqS~o#g|o}U_%~zWj11R6n&Vc?nl=+godEo2C769y>a%j8iKD78*iAIGab4m>%$pE>&`*%l7Hw&ymv&S(OAQ3L_rpL=j9-cVnp W1aOpYK{o#Hm-$H3P@_)GDfWMUOGBOj literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_9e9e9e_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_9e9e9e_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..e2684f76ee6ee079bd14503d6038ac20aa3b976c GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/css/dark/themeroller/images/ui-icons_dedede_256x240.png b/themes/clean_canvas/css/dark/themeroller/images/ui-icons_dedede_256x240.png new file mode 100755 index 0000000000000000000000000000000000000000..91aada0ab4967f691f921387d7a7635ddda7feb1 GIT binary patch literal 4369 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 .sf-sub-indicator { /* give all except IE6 the correct values */ + top: .8em; + background-position: -10px -100px; /* use translucent arrow for modern browsers*/ +} +/* apply hovers to modern browsers */ +.rtl a:focus > .sf-sub-indicator, +.rtl a:hover > .sf-sub-indicator, +.rtl a:active > .sf-sub-indicator, +.rtl li:hover > a > .sf-sub-indicator, +.rtl li.sfHover > a > .sf-sub-indicator { + background-position: 0 -100px; /* arrow hovers for modern browsers*/ +} + +/* point right for anchors in subs */ +.rtl .sf-menu ul .sf-sub-indicator { background-position: 0 0; } +.rtl .sf-menu ul a > .sf-sub-indicator { background-position: -10px 0; } +/* apply hovers to modern browsers */ +.rtl .sf-menu ul a:focus > .sf-sub-indicator, +.rtl .sf-menu ul a:hover > .sf-sub-indicator, +.rtl .sf-menu ul a:active > .sf-sub-indicator, +.rtl .sf-menu ul li:hover > a > .sf-sub-indicator, +.rtl .sf-menu ul li.sfHover > a > .sf-sub-indicator { + background-position: 0 0; /* arrow hovers for modern browsers*/ +} + +.rtl .sf-menu li:hover ul, +.rtl .sf-menu li.sfHover ul { + right: 0; + left: auto; +} + +.rtl ul.sf-menu li li:hover ul, +.rtl ul.sf-menu li li.sfHover ul { + right: 12em; /* match ul width */ + left: auto; +} +.rtl ul.sf-menu li li li:hover ul, +.rtl ul.sf-menu li li li.sfHover ul { + right: 12em; /* match ul width */ + left: auto; +} + +/*** shadows for all but IE6 ***/ +.rtl .sf-shadow ul { + padding: 0 0 9px 8px; +} + +/* RTL ThemeRoller ~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.rtl .ui-dialog .ui-dialog-titlebar { + padding: 0.5em 1em 0.3em 0.3em; +} + +.rtl .ui-dialog .ui-dialog-title { + float: right; +} + +.rtl .ui-dialog .ui-dialog-titlebar-close { + left: 0.3em; + right: auto; +} + + +/* RTL paginator ~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + +.rtl .g-paginator .g-info { + width: 35%; +} + +.rtl .g-paginator .g-text-right { + margin-left: 0; +} + +.rtl .g-paginator .ui-icon-seek-end { + background-position: -80px -160px; +} + +.rtl .g-paginator .ui-icon-seek-next { + background-position: -48px -160px; +} + +.rtl .g-paginator .ui-icon-seek-prev { + background-position: -32px -160px; +} + +.rtl .g-paginator .ui-icon-seek-first { + background-position: -64px -160px; +} + +.rtl #g-header #g-login-menu, +.rtl #g-header #g-quick-search-form { + clear: left; + float: left; +} + +.rtl #g-header #g-login-menu li { + margin-left: 0; + padding-left: 0; + padding-right: 1.2em; +} + +.rtl #g-site-menu { + left: auto; + right: 150px; +} + +#g-logo +{ + position: absolute; + bottom: 0px; +} + +#g-info +{ + padding-left: 20px; + padding-right: 20px; + padding-bottom: 10px; +} +#g-comments +{ + padding: 20px; +} + +.yui-t5 #yui-main .yui-b +{ + margin-right: 210px; +} + +#g-photo +{ + padding: 20px; +} + +#g-banner { + position: relative; + z-index: 3; +} + +#g-exif-block-content { + padding: 0px 0px 0px 30px; +} + +/* Internet explorer workarounds */ +#g-banner { + z-index: 2; + zoom: 1; +} + +#g-photo, +#g-movie { + zoom: 1; +} diff --git a/themes/clean_canvas/css/screen_layout_fixed.css b/themes/clean_canvas/css/screen_layout_fixed.css new file mode 100755 index 0000000..2db05d9 --- /dev/null +++ b/themes/clean_canvas/css/screen_layout_fixed.css @@ -0,0 +1,70 @@ +/** + * Gallery 3 Clean Canvas Theme Screen Styles + * + * @requires YUI reset, font, grids CSS + * + * Sheet organization: + * 1) Font sizes, base HTML elements + * 2) Reusable content blocks + * 3) Page layout containers + * 4) Content blocks in specific layout containers + * 5) States and interactions + * 6) Positioning and order + * 7) Navigation and menus + * 8) jQuery and jQuery UI + * 9) Right-to-left language styles + */ + +/** ******************************************************************* + * 1) Font sizes, base HTML elements + **********************************************************************/ + +#g-sidebar{ + left: 90px; +} + +/** ******************************************************************* + * 2) Reusable content blocks + *********************************************************************/ + +/*** ****************************************************************** + * 3) Page layout containers + *********************************************************************/ + +/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */ + +#g-content { + width: 690px; +} + +/** ******************************************************************* + * 4) Content blocks in specific layout containers + *********************************************************************/ + +/** ******************************************************************* + * 5) States and interactions + **********************************************************************/ + +/** ******************************************************************* + * 6) Positioning and order + **********************************************************************/ + +/** ******************************************************************* + * 7) Navigation and menus + *********************************************************************/ + +/** ******************************************************************* + * 8) jQuery and jQuery UI + *********************************************************************/ + +/** ******************************************************************* + * 9) Right to left language styles + *********************************************************************/ + +#doc4 +{ + margin-top: 7px; + margin-bottom: 7px; + width: 880px !important; +} + diff --git a/themes/clean_canvas/css/screen_layout_wide.css b/themes/clean_canvas/css/screen_layout_wide.css new file mode 100755 index 0000000..bbe74cc --- /dev/null +++ b/themes/clean_canvas/css/screen_layout_wide.css @@ -0,0 +1,69 @@ +/** + * Gallery 3 Clean Canvas Theme Screen Styles + * + * @requires YUI reset, font, grids CSS + * + * Sheet organization: + * 1) Font sizes, base HTML elements + * 2) Reusable content blocks + * 3) Page layout containers + * 4) Content blocks in specific layout containers + * 5) States and interactions + * 6) Positioning and order + * 7) Navigation and menus + * 8) jQuery and jQuery UI + * 9) Right-to-left language styles + */ + +/** ******************************************************************* + * 1) Font sizes, base HTML elements + **********************************************************************/ + +#g-sidebar{ + left: 40px; +} + +/** ******************************************************************* + * 2) Reusable content blocks + *********************************************************************/ + +/*** ****************************************************************** + * 3) Page layout containers + *********************************************************************/ + +/* Layout containers ~~~~~~~~~~~~~~~~~~~~~ */ + +#g-content { + width: auto; +} + +/** ******************************************************************* + * 4) Content blocks in specific layout containers + *********************************************************************/ + +/** ******************************************************************* + * 5) States and interactions + **********************************************************************/ + +/** ******************************************************************* + * 6) Positioning and order + **********************************************************************/ + +/** ******************************************************************* + * 7) Navigation and menus + *********************************************************************/ + +/** ******************************************************************* + * 8) jQuery and jQuery UI + *********************************************************************/ + +/** ******************************************************************* + * 9) Right to left language styles + *********************************************************************/ + + +#doc3 +{ + margin: 3px 70px 0px 30px; + min-width: 700px; +} diff --git a/themes/clean_canvas/css/tagsmap_menu.css b/themes/clean_canvas/css/tagsmap_menu.css new file mode 100755 index 0000000..119cf7d --- /dev/null +++ b/themes/clean_canvas/css/tagsmap_menu.css @@ -0,0 +1,7 @@ +#g-view-menu #g-tagsmap-link { + background-image: url('../images/ico-view-tagsmap.png'); +} +#g-tagsmap-dialog { + color: black; +} +#g-tagsmap-dialog a { color: blue !important; } \ No newline at end of file diff --git a/themes/clean_canvas/images/avatar.jpg b/themes/clean_canvas/images/avatar.jpg new file mode 100755 index 0000000000000000000000000000000000000000..ff2da23aae154217f67145368e101104883bed0c GIT binary patch literal 3851 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 N002ovPDHLkV1hG0G@Sqd literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/avatar.png b/themes/clean_canvas/images/avatar.png new file mode 100755 index 0000000000000000000000000000000000000000..ff2da23aae154217f67145368e101104883bed0c GIT binary patch literal 3851 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 N002ovPDHLkV1hG0G@Sqd literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/canvaslogo.png b/themes/clean_canvas/images/canvaslogo.png new file mode 100755 index 0000000000000000000000000000000000000000..fdc9e75000522825ffbc1422bb9f339a8388c127 GIT binary patch literal 12136 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 F{|5}&djS9d literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/background2.jpg b/themes/clean_canvas/images/clean/background2.jpg new file mode 100755 index 0000000000000000000000000000000000000000..08f519bb2aa6ff4b670c90e5302b68d4f74e26ab GIT binary patch literal 13916 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 CgqPp| literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/background_header.jpg b/themes/clean_canvas/images/clean/background_header.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f33f0c62ed9c2e492d7e796c41199c3164efd90b GIT binary patch literal 13609 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-album.png b/themes/clean_canvas/images/clean/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..236035cc9a6d5ed23da6afa2e98fd8f0f51e0a58 GIT binary patch literal 3830 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-error.png b/themes/clean_canvas/images/clean/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-info.png b/themes/clean_canvas/images/clean/ico-info.png new file mode 100755 index 0000000000000000000000000000000000000000..12cd1aef900803abba99b26920337ec01ad5c267 GIT binary patch literal 778 zcmV+l1NHogP)BVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*Ln4%hm3qLjOw8$gNleW`uA85K_bbXDw3p!f)zzj!XAbXYuJOW zTpOEHx82>_`961V_ui@7bXoo2+xfHa&+nY`o$p*uk|bCS=kAQJq_Ac9OxF*cuAMdC zms4iC+-h-nC;-ffX8io^6ukNv=x5#QI@ME$_Bi3_foA<;^2R8L2qKwGQd?G52K#q9 zkjP~gAjPIevMRkyu5|2jkLK3MwE~G8>)57T)0O(A0^TUO z#_;M|5sgMc6h#mOf#ll5m!v3)84@WYf+(?8lt7ZiWu0@J0XPE(2F?ha(ZG(uxFkj% zE}iZKp65yMcyLGL8bd?`HdtI-)D$8_`KBs3-`i1=)!!WPE|r7qA`uu<&=ASiieNCP zF*fohN~%%-ed+z%?RJX&n@B22yCE}G8(SU%t%H4*6U?pA#1{Zq`8nn<>c^fZkf4hOWfv`|pB4f>LaV2iPqh$LBpbCvRrg#BN>*_s+QLv?kv zighe65ueWofj~eRV;^_c<#K6>@Mfr~sZ#VXQG+v4ime}P23>6_G5My*O6#L?WU zB&*SAB;(oHS)~Tl*4Bd4>7;8Ii9{eA4pX7RQh;`7BikF;QQUpv)viL4Vu^TUkchBH zFV5O~S?jd%0y_-^ati>%T{f z{no@?Kv~PTujc)Me*}Cn%9ta6ok(9_-yhwP|L155N!U{0mjD9*(jljzNQ?3t00000 LNkvXXu0mjf{7~S; literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-separator-rtl.gif b/themes/clean_canvas/images/clean/ico-separator-rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..d9061a4641175d60c6a9df3a9fb8cb3ce04abd1c GIT binary patch literal 106 zcmZ?wbhEHb8)b6dA=UB7<)%9Se@FJAor|9=K-K=CIF rBLf2mgAPa%WCjC^xWGxz)pK21f=+U{nF<^ztbDMtF#L6#AcHjkkq0CN literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-separator.gif b/themes/clean_canvas/images/clean/ico-separator.gif new file mode 100755 index 0000000000000000000000000000000000000000..3de2d0d390812600fa5b649e6d5dfa66ba99da58 GIT binary patch literal 106 zcmZ?wbhEHb8)b6dA=UB7<)%9Se@FJAor|9=K-K=CIF rBLf2mgAPa%WCjC^xWGxz)qA(FIIiP#PM2jc42h4(lzA2>$Y2csWjrCL literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-success.png b/themes/clean_canvas/images/clean/ico-success.png new file mode 100755 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-view-downloadarchive_new.png b/themes/clean_canvas/images/clean/ico-view-downloadarchive_new.png new file mode 100755 index 0000000000000000000000000000000000000000..df8d24a6e07ac9dd76618ac8f6e1b57d602ae070 GIT binary patch literal 4209 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-view-slideshow.png b/themes/clean_canvas/images/clean/ico-view-slideshow.png new file mode 100755 index 0000000000000000000000000000000000000000..351e301c07e2d2e0c1f3122e4e93077c4d7625a6 GIT binary patch literal 3087 zcmV+q4Dj=bP)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0003xNklVpuhL*Up%V(NMx#>c zB%-195tYuoN3&!lceB^ETbSe|led^>-ZL|2WSe1*#E?f>Ra{(Jo(C-HQWBC7@I9BH zqwf0g(P8Zl=7Bw6YA6<^l%7&bGm;*FU0`gm0O?zjHh@=PZD4?IuREZYqyyj@SQvyw zy)-B33^>J}Xx>3e{j{i*o&@b5H>-(7eY9%(&Gwe<+1l^m<@vd`$CAcvPe;UPZ9q{J zbruFVkBH5PcH-eMMc{?KRXb|m{fRVDC1l|n`Ip+%lH2gOz0jVgi9C2^^;;(6{ dfB&O>4gk|oaK?h6S4aQ=002ovPDHLkV1g}>z-Ise literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/ico-warning.png b/themes/clean_canvas/images/clean/ico-warning.png new file mode 100755 index 0000000000000000000000000000000000000000..628cf2dae3d419ae220c8928ac71393b480745a3 GIT binary patch literal 666 zcmV;L0%iS)P)eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/loading-large.gif b/themes/clean_canvas/images/clean/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/loading-small.gif b/themes/clean_canvas/images/clean/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/clean/page_background.jpg b/themes/clean_canvas/images/clean/page_background.jpg new file mode 100755 index 0000000000000000000000000000000000000000..b5fe5883aca042963f053f61d990c48829ad526f GIT binary patch literal 31028 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/dark_grid_bg.gif b/themes/clean_canvas/images/dark/dark_grid_bg.gif new file mode 100755 index 0000000000000000000000000000000000000000..5cd1589ca0b426cf41070e887e320b3a57536a33 GIT binary patch literal 10735 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 Dnr!ZY literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-album.png b/themes/clean_canvas/images/dark/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..236035cc9a6d5ed23da6afa2e98fd8f0f51e0a58 GIT binary patch literal 3830 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-error.png b/themes/clean_canvas/images/dark/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-info.png b/themes/clean_canvas/images/dark/ico-info.png new file mode 100755 index 0000000000000000000000000000000000000000..12cd1aef900803abba99b26920337ec01ad5c267 GIT binary patch literal 778 zcmV+l1NHogP)BVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*Ln4%hm3qLjOw8$gNleW`uA85K_bbXDw3p!f)zzj!XAbXYuJOW zTpOEHx82>_`961V_ui@7bXoo2+xfHa&+nY`o$p*uk|bCS=kAQJq_Ac9OxF*cuAMdC zms4iC+-h-nC;-ffX8io^6ukNv=x5#QI@ME$_Bi3_foA<;^2R8L2qKwGQd?G52K#q9 zkjP~gAjPIevMRkyu5|2jkLK3MwE~G8>)57T)0O(A0^TUO z#_;M|5sgMc6h#mOf#ll5m!v3)84@WYf+(?8lt7ZiWu0@J0XPE(2F?ha(ZG(uxFkj% zE}iZKp65yMcyLGL8bd?`HdtI-)D$8_`KBs3-`i1=)!!WPE|r7qA`uu<&=ASiieNCP zF*fohN~%%-ed+z%?RJX&n@B22yCE}G8(SU%t%H4*6U?pA#1{Zq`8nn<>c^fZkf4hOWfv`|pB4f>LaV2iPqh$LBpbCvRrg#BN>*_s+QLv?kv zighe65ueWofj~eRV;^_c<#K6>@Mfr~sZ#VXQG+v4ime}P23>6_G5My*O6#L?WU zB&*SAB;(oHS)~Tl*4Bd4>7;8Ii9{eA4pX7RQh;`7BikF;QQUpv)viL4Vu^TUkchBH zFV5O~S?jd%0y_-^ati>%T{f z{no@?Kv~PTujc)Me*}Cn%9ta6ok(9_-yhwP|L155N!U{0mjD9*(jljzNQ?3t00000 LNkvXXu0mjf{7~S; literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-separator-rtl.gif b/themes/clean_canvas/images/dark/ico-separator-rtl.gif new file mode 100755 index 0000000000000000000000000000000000000000..d9061a4641175d60c6a9df3a9fb8cb3ce04abd1c GIT binary patch literal 106 zcmZ?wbhEHb8)b6dA=UB7<)%9Se@FJAor|9=K-K=CIF rBLf2mgAPa%WCjC^xWGxz)pK21f=+U{nF<^ztbDMtF#L6#AcHjkkq0CN literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-separator.gif b/themes/clean_canvas/images/dark/ico-separator.gif new file mode 100755 index 0000000000000000000000000000000000000000..3de2d0d390812600fa5b649e6d5dfa66ba99da58 GIT binary patch literal 106 zcmZ?wbhEHb8)b6dA=UB7<)%9Se@FJAor|9=K-K=CIF rBLf2mgAPa%WCjC^xWGxz)qA(FIIiP#PM2jc42h4(lzA2>$Y2csWjrCL literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-success.png b/themes/clean_canvas/images/dark/ico-success.png new file mode 100755 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-view-downloadarchive_new.png b/themes/clean_canvas/images/dark/ico-view-downloadarchive_new.png new file mode 100755 index 0000000000000000000000000000000000000000..df8d24a6e07ac9dd76618ac8f6e1b57d602ae070 GIT binary patch literal 4209 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-view-slideshow.png b/themes/clean_canvas/images/dark/ico-view-slideshow.png new file mode 100755 index 0000000000000000000000000000000000000000..351e301c07e2d2e0c1f3122e4e93077c4d7625a6 GIT binary patch literal 3087 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/ico-warning.png b/themes/clean_canvas/images/dark/ico-warning.png new file mode 100755 index 0000000000000000000000000000000000000000..628cf2dae3d419ae220c8928ac71393b480745a3 GIT binary patch literal 666 zcmV;L0%iS)P)eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/loading-large.gif b/themes/clean_canvas/images/dark/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 zcmbW6c|278!}n*-IkPWjhBOHchNdh{wkBC-?1V<*vZSmfT96{Cj1RMDH|I4McL~yX!;bg|+TWD*sLFDo~O26dHLjAqN{QVf=`@#Yk-hti``ww~h zY3)0>=MX~aJA}h5Kc(^e>%V^zfm&iP(*5=o1YEA#Ki?Lt@gVHLL`2oQs0nR6*lDE! zK(PrQcocf!jjqshu=~E$S78wg&9YBlbZp%f-FZ6X31%HrS@;O?lU{ioOxm?OK%oN@ zZb&&EcT}B3cEUJlktk_`wWzq`kQPYbu>m~qOa>E|9qDXIK^N>SVp2)DX@WR+By?t+vw27R1Tu1djF8 zmfShbFiV!VxmMbn$x>ayvH7qV*uBo4v6=f326Gja40mpX)dYEgeAedLE^|kklPz&Y zZP=^C(shtVq9_R!ou{Wz9{l4I5>aK=9=YP#k;=zanhbs#rG31#(D=YXqm+mHpO@Gz z6yGQ4z5Ani?Zc|u5giDZJYEv;WoyGmuS?zvSA+)Hl4QvBQ2&b`;UP0E1+Vl;H|Z#- z(b28BYgJwS{Nozmdj<9_4GYhj4p;N+pTRK`Id^ap&CaifBr+qi@ZssvL+A5W$-1`v ztNY_LIngADoo^7dvcL9JxEcfaj9o~7M%-op9q7sqPlebv+%p@Ml>7mk z;!ljsH@#}kSsT8ueVOZ*v#$)Rv<&J$K#_v|3q>&2TtLUB4va}^E6K&Ka%OIx%JENX z2tx~|U2`jLv>IMIVI5be>b0Rzy&ZVZ(HK`><|P*6rB2v?>KIunJsktHfSA}gk_IWs znGms_db%hjgK3kKgVwU9(-?gk?0NkUXS(GU3yT+jlnC}UN0XkvCeFk7K2HfUK5#5vQ~JF3XahVpJ^=CXUiES@cL|@`(s_*V^z438&pk!;I!%c%*X+x_ttod-2McHOLGgv5U4bQZH=k>B5snG{M3jXMO%ddlL2)A^n;*e^&{As(OgwSY6R3Lz1l*rdx>JY}FnZAWar zElN7^^SzGfi2TvH$pl6`OIa_37i+O~RevZAiKB?N$xzJsTW|D+9ZP-@ z6Mdaks$;Cn7pGeN!uF(@(zxzt4ExJxRxjaJwZ|*7h01th&z!G;9f>W@QPrJM4t3Lm zRgKUxlH$zaRj-QAqwFfOj1JL)UxaOH#?6MkXQJElRAd9^iV_8M;2%KyZb`hV1m?=n z+e_0!Sh7;q7qcvb4RFKz`vONIJ$BA+VtMKAN($~kt)t+D?`2$**57(nmv*>w|dqG3Q4hU-2o;O*!&%9|GFf%2h6;PQBVw5&bI9SYh?& z(Q6H>rmgYOpC3+$V+d;;TASWa_xy%d{sN375WguJYayedh)^;cu{z#h{*hB#OqCZe zeC1%(?hW7j#e%QN`?&l=&lk5~->np9@vMF-U!V|c){vfkel!-1RV$Z-3W)l1A}o;@ zTo8<=cqtv{VntkN$p2&3YFUTG&Uk8YuKjA+X6l3#RbxO|Yt+!cDDJ>#FLBBjx03YL zn}0E2B)&4jewALC#VFiGa^yl*ti9q4l+1ui$R^8uKA~Y6Zo{D@$aN;hD}LR}TwMG= z(azr(cJdiSsJ+yI%i%~trJ=SuhK1ISvK}d*OM@mdeK9`0dMUgQ=+<~xiO?3WMP^3yc zQ=Px_oHjj5 zW~1%+okQ)$GLuWlCRQk!gkCFU9D9d9W2Z!T{XFWcREg#4H9tulSH$VN%i6i#^X~PE z;Y<7y+kD&l%g$DWZ-dkUvD`y6Suyd1P*j{~3%x#eB+~1RE1(`)rYh8q8+J4l$uJb}y@6u7_dPyY zF!uf9c+b^Mht!BI+DWLA+j3i|MIoLt4IaK_#HV#{o_6}4XAA#C&hT%JREZQ;U0q8#whiK-h6W4;Dx?sAc1Brw56Driw|c}T)TX2Y^0UoNMeoTpp~8&k)+8OMWpC%P`zT;KjngI;Cu{dRaUt>##%Uz3V3-S;{KBe`K)-sfutrztheVZkn`IJM@YF^t zwN=sCTew31iXt$ z(?yADm*~v8dZX&dU{|C^eCNZWZ+T8J3!#gF zTxhS08P(0zlkhfll13rJ)Zmb{BwPX+7p@5ssQa}}!O^j635f|&Tw-Q^OtuOYmsEn| zdFR6v5%X9sig%#`V_B(8%*9>d;VPg8CJ}{0weaFIp+fN<3Oc3lul)IM{WJ#9c<`Ps z&@UWAfEesNWZG5QB6!kVpI$sqJ>I= zXl-Tl3yoK!Z-d{xumOIInR+Dh*;4*|8JBk^o9%n|f=yl7{r}d_4Kt}f{c5>_!IV^G znZ<;o)Wb{@>wR`8G}rFfy|@`@mrW&MmrQI1w(t32&>Bksz!<53^*Js#d)DqZS! zzaO{Xs;~LD&F6aoEY7*gmnO`(TvVsmjNelE@IfKPWrIW-#G4rH6aUA9!-@ zd0Xb!Vv5L3@N5N`74N%qWvJgsW6+-qms>*A?~4-BgI^moEm8q`u<_qazxnh03A|r6 zgJlI~K63rzD54DoU8LrC4Db5R>j<|cgiSm$o}XVu!uLGhz18Dq^G0*ZMATDj{sdBA zSLk{)a<=A=C&#D7OffQBiIa~&7{Q3x(Ifvh{i(#~bV@YvVqpLQ{$^ zwp&5l*aI2J*Umn0nqBYQ_T&&Jv>V$&&FznSfbNZJ#Q=d-1811n+q}qr#N+y( ze&B60^*ev6CH|xQ`EH5p9@D;zVymUkIks}49(wo;11lP(``OrY=ud)!wrZMn&1H$^ z?RR>TdbV7pafu&RJ~@66M?3%?4pRjP&N!-<761x1pvf5-VC-5CC^4J6os7xAxa6p! z&y^8)#LO!vN|eDeXLLnjL8e0$f(Vrr^YB;5bvIOqXaYXQgoLi|?TV#PQU*r;$I49r zGvKby6s1W5pfC&67aMC@(Th(=(8Bk3dH{rKh02fk4v=|m;47c8>CcBUH=!^jMM^n^ zQSI`aA>VhF9UpxPl6~0uNbF<`p)8kvc(WN&9E9q}?~%P`2oOaw82Z2Rr*dtKLO~t%ez-wJz#G(Xxa!s|r%z3Ne4Ym;>Y4Z;%E`_c-5-RC@Nf3lm zpXpCaaf$V4PasGac*xdHNs|_*4!8rrXf^DN)gNlsV=_#GfKUAA?UfrJZ$$KO^r3{qFF$PVE7sLKOp1)?T9M<0utG z6!d9{~%yB)nyyVx7@56NHqTrN0z7t`z2k) zam60RHy(LME?um6nWz5`O8DKznGh~J2a%SZ zY>dvoR4B4Sq2f#dej-#QQX!H`xd5JkzELm!JCJ*C-6bxkOrahLy!oJe8Fbvlhz^=M zjDOk*peDv~czx2)5Owm-*qd?cCiI7weXpL+%Z_=mt9I*P=i3G&!~5yb5rVA#yi&;j z0&;m&^4o|6iA!{^f#6s;M;fIO94w9ocWb2kdAygjClwfPMXWH$GJim|LNYDfKXoC_ z^A!fvm86pd6_zo3oG)iz`J-&Ng@!`2?*3#fKWKbsEdi%j;CcIp1|jS1Se5Vm)Xn4i zm+isLD_P=-;>w+MRtw6H@?2}ZY1{TaHH5R*_cfbO>-Pt8-g)=0_p?;puZ_CfuCev+ zK(;g-P>yx!(0IaVkDh>zo{Hw*aD6w?L%^CSS+$SE+@dn9_!m&%EPlPB4#Vijp@j`c zH&<(=B0qebc`}|i3Uj|sc=%m1Q#{qMTJ_$czkpnle`P(88EW>%RD4*BmB8nA(Pl86 z2&_5FbA6PC=rPRIWfa9?I9Lc+XVnq`kQ)Yp1&FvBK zaVuZe0fsbaUAu>gBHt%LEH7G_p{~Iw6#}&)r36WB5uBmbz!Yb0>j-mKkmrdn3I(ld zFLP;GujD{%Y7#eFjl?cXzf$zD48p>jSA!HTV)hh_Ue6-^L*HMfl@-KAlZuDb5@qly zGog4LP9b=?!9T))^ei~pu}QltK-#Q`(0!GiIQ7VgC6_0@cfubR0rK+fS-c zqtnd5gm_8{(}haKn^EGACuajL_(Cq>I4UOF$Liqas_L5BYjxM_8ycH#G`BbbAo>J{ z2xhea$8iufLXSvzaQjANZ||Tk`oYl_!b1qxuG{}W(ug0QozbC)Tkp)GT8)YbVBh<% z-@gC&^It!IEg?X>ymgJJJ?18ZTaz#VK^UAoGjLEuu8@{e^y&*xF0rI3nxsou0%q?S zMW-b!+>?P=sh{U^!5rtMW_4aJq_}V0wLRNpKpIxz>3RzVeT_XiGdOKOr^0P#4K7w> zne%g~8}hLJB3AO{O~>O;Ts~Z}t=7&Fo5bv@yYJF+;Og|0Ax17hT)Xj{!{9`!)hT?SJRdg)0>H(Py%PN4pSFN=! z0`v(6FYR%S_eN`@)nRF1wW=iJ{<1v{U7VaWHQJ&;lqe~L<@m$ZAL)dhDz5CGwSW1( zRmA7>8As0klo5&xZiX^QG9|3DbJ1;N-%SFCd8cWmS0C#hb}x z97q2UaRrF7m6ni{tt5jG(mH^EKmEKTk^OEIV2_tl;!Y&3`-bs?s)$?>%(4|trD+r} zxJbnIFL;Q`r0~+$GJ~hnsMiL#UO(lJ&3HSEN6?Xu2VLm`D@FDck0c}VL3*VBoc7+hnTBFO}`E0aOuL zS{7bATp2tofUtu_dBx`?=W4HMl`-h>vnw%=k+pcLy)XZ~zI3^PH@vs=0t+TTZ_c_n zRAO^X|3zdm@8S7*Q+L&Urs~5N{Tc;v^UhVnwDbKw_92d?-GxUI#!sx4Dc_nKQ=cRB z8_rCQqbr!pTUINdkHP5#jrZNCn|&ZMOHs5pcn;^`grD==eKTVpR});*QAIC-N7@YW zc-o?DEQFJX?vP5v2S;(iFIH$pRi{FCc5e~iW^jTf)Ijq@Ev4^QTOTQWD=pd*dB|fV z4lHc-5r;f!2J*chbl3_s>bCw{H3#h}lsFn7LEb}P7$Qa~F#CM~2FT{4eQN<`lSuGs z5K#nT%zI=N&^wzX5yot>cPv#+s6@plmNSx!aucVLy3#hnDcGoTz-UA63h#uDtK~^? z1Vv#X*2VmrBLUqv$BhZo<<21W@)(E&jNdEq83e^QKky2c4Fg`+YPdN8ijpzBW$>}B z$N*)bDzcC&+>?Wf+QSuuyv}tyvTr+>mpe#j%$)iwe*HAiSK)P*~gkK0F2RkZVIcL1LP^%rp+8Z+pGEiSPJ4W$pSYnB`wY5rO@F1=sH(7A{|HI|@DQvNNV(|3d_ zTMO)NT=QQ=8e?(33EPp7h)OIwvKKMC0x(WM|8&em064EhSBir5=BkTi#N$SC@xU_? zF43LR67gPdj3PGRNez>_F7iP+nhE18Hpj!;sH z#`Se4APDPOg)v5ym6Ne&&4VYA9XHrqh!7DDfS|24_k^?j^cv(#WDN{*i{}6^f;A-v zanjjbAqKHd#S{;%nh8x`h49Pd?)gRsx9i*Z_@cdD!8vFAEiuOf%9it|_Wvi4(d`3V z1Ap7N4zDP8H=yEr1iAG=l0CnnqXZ0WgTsq@_9`a5b7!iPJ&4I6%dW=g>m z2q#Z51>vUXL;^ZRH9Aeo6g)%8VjfLHMS>tDI4dZeR+ewIJYMccU8(#pM{m8^ruKW= zym-q5r1kb*>sF~_Q|=Cd_id@*VcqJXUR<{uflAHP!;STlyGfJO$tT*>S=#t5w}ol_ z!P$qe@zWRdc82)6EO?5M5RFM+tUTA5KvA*%TOoRnjrCFRWHVp{4}g`Nm)IQswNfZ+ z1xl9>r&&bjXe!YCVtdV37w)&^Ol?+XAxbPxm3i?Qrbq#cA?doIvu>co$O5uRuD{}Z z)uS%bvq-Yf>7?VOhN$ipZ(J*FpNCpJO$>NO`;|xY2s!-vyi9oK(-rF9f*v;|+|Kj* zp=;_)Be_n+;;w5>bs1{z)w}HWJ_)^5ELrvZc%d5sfH3q^6 z=EIsW9`9rTEVR2ovQZ03z*?`hT3)DLTsp!N?&3Co)V@d6_`{1>6b7JVdTUPpgd=yU zv}`pwY08D(w^J$KPTmtAi`O4*l;821JAgRRvk=0#aBz8)m&8ykv8Y3h{*&T3{NmXz zr4yq*;y8>~xfK$}G)D-`bP;258f|xCkgDCeo^q5LY%!?ymg1QT@vV{&xUo4du=zC` zaeD2DHk?NO)+9ib4D2mTqKY_B7Eg^EN6_1|c^XGd1u``8Z49x{488A#h3B4gGy5q` on`h3JtIn#Osjn#KA8uTpT|qfp)|@C-w%HVm*z)`I{jcl)0R6+R(f|Me literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/dark/loading-small.gif b/themes/clean_canvas/images/dark/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-denied-inactive.png b/themes/clean_canvas/images/ico-denied-inactive.png new file mode 100755 index 0000000000000000000000000000000000000000..56db3ff52bf02036d2a057f802d813be2bdadfd1 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;Sc z?%liZ-@kwN?%nR)yLax~xo6Lw{rmUdzkh%4-o59}ox64G){`es-n@Bp>eQ(V7cT7D zwd>KNM+XlcJb(WD>C>lQzI^%M!GnGK_FcJh<@xjHuU@^ndiCn1OP7uvJ9gyAk)ubC z{s)5-xzAdGPBkqF@(YHDkVZ1pY`p*sIYuT=7srr_TS*3v%nXc27?dnpC3tyzzqmT) zG%zr6elULZlH=8<;(|^FO9n<3kq71p52vJ0PrmqIYLclTBZmT;u%BC*AERw zny#U614EL*#bBYy!k5??BYh?1zygVrradz=NH8%lm~b_CvI$t9a%CD@vVlR6$OHp0 zKT#}i2E$~A*_;jxhBG9JxIaosGA*1a$jlEBF<7z5ppfBiYDUHhy>p370uDTCi(-6q z*xcOO4joz(Q`4jdbYF?Y?kN*H>=p|$PdJ~G1XQH3eDf)fPp@9C^ltb8Qt)k#LjMjU mY3X*R4ql)UFYd8(7%<$HP*$`v(60vuCxfS}pUXO@geCwkh%LC`Z}YW#OXu92BcJ7CPPf%wy1VUeb+tdD1LyPM^Eq(%a86ZDc1C1GYyzK-g^!R5CKUhrvxSAM}yA(1{4{Sm@?TT(|yU5xho@UkAC89;S$fg|$tQu$7Op}OX z_cpQM_keP$wazYUck)<)g&EI;KJd%p&}mG)QXECR25rE)>QZzQ(}qP}iwi~F z5}|Fde}UV)CV>27s8fYHxsX%9^Pvd7y1cf$;2!LrV%6Cs67QrQS1AY#@yKC(NN(4T z_%OuX*X!4-J-V^k*7~(}fmICKJ7GtUY!+&8uNaqjpPgJ5F6KIUY!{#H9{S=R=_gi< zK4piK-{x*_o8x>mwl!JA!g;7+S%&XH_VBs9Qk@z_`4KY1kf_2lP zcS5tIfbl+=SpYe-qr}p@S;X;Kt;E#0&tkENMOJR>nzGlc`a*m~TreM3DopH8M8E6@ zr)gctaq(DxHtQ*@R+7(qUY?ts_s{vS2BMW zB*!!a1;1=gJ~+IOyJLIWO&X(dLtki1NjM%maPBp|y8gzNaLS9~x=`%H7TwTW$~I|y zm8FC4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-lock.png b/themes/clean_canvas/images/ico-lock.png new file mode 100755 index 0000000000000000000000000000000000000000..2ebc4f6f9663e32cad77d67ef93ab8843dfea3c0 GIT binary patch literal 749 zcmVe|tv9>?g+k#9o0pTxd@;_sq{kwlU;^VvV*?BV8P@}BoaZTQUROpWV6|-M`|^n&)=+8tHo3*<<$NU zU`%V~ZF;?hBSYsjJ6%JzV}E(D{pOLqQklliUf9um_tGl-wty`y*p?eYNW56P>X@1s zZs7KrRZKtmV7Lqj^5Fgr7_`LjhdJK@ltF&O`j7?*NUM$KvmNGz)3WjM?V$vHlPT0AFyF?kLE<#HZabCSW3-oa*6;Z zrXD`Ulwd<^2glP%1Y1Kc1Ij%DU^=ME(jKf6APNlA$Uu;J4bVilQHSWX5uJ$9Zsp4M z0%!@LvyTxz=Z6stxlichODIY+yNGt%RM;m`>H4LOKLFs9Y%b5aUN|2|{0Zw|<_~i} fmXz*V19AKYauUxtE z_U+rNSFis0^XLBk`>$WWe)a0rty{Nt@7{g>{Q2wGumAk{^UT5M*VKXl~C!WC

    `HUIzs literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-success-passive.png b/themes/clean_canvas/images/ico-success-passive.png new file mode 100755 index 0000000000000000000000000000000000000000..dc8d1ded86b481442c017df192fb7e616f0f7a0d GIT binary patch literal 617 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLlU z1KVzG+;(&0(dYY*Jm0_J^6EoR_Rifu>*wzuKYsr>@MQPh_qW$vSTX;=oZUCJAAYiD z!{s$Uetkdx;`EVc`!?QKv*PTM-S@WcyT1GQi-U`gFIand#hwS-)?ZqE;^mSO`}zCl|NsAc^UoUt{pe8=W?6Y=YVB~!|^~x0^v4kg$5o`hu3fYyZx@!|_ z${QG%b~|5bxXAlVrh%c!!bkjEIXi~}&wVBq35IQU7O&b&Zr=rZhr!d;&t;ucLK6VL CZDI5P literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-success.png b/themes/clean_canvas/images/ico-success.png new file mode 100755 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 zcmV+!0_OdRP)Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1pN2bPDNB8 zb~7$DE;u(kfL#Cp0t!h)K~xwS1;I^gTxA#l(DUB=+{sLC(tOdWAi5Dnss+0cM8Sn9 zE?jl*zi{QQ;7{=vxO7(#7XdLvur0J&u+W&;G?~my=4S54>pA7dH0tlax_AGb<3FyW zjymeHzW>7)U;la(b<|Nu{oSYE{&@HG;p?hScYb=y8wa=Fe)RO;1(4l+f8_8<0!(-B zeDL_m%d>x^d--$6-gIgSl5Af%kw8|PI&sSbF>~fmW4}3-C57H+l3x@coBG5fr3*1= z{H^rdOhT4CRyvU-WJ?pzysH;px0`xTzc-*nXy(Q>owLQBOA0jS>x2PbIIC{%EVY{M{guVkFaS=t<&m^ z9Y_W@Wj8Q)pb?0S*4$j9*D53h3I&p+kc>=ZF<_)JHc=Yf(wL$*wQ>_-YN?dPfGcY= zozlY0l^GT;ENoz5f-OXkkxgscO09h}yONcCbGx!^&)Uc!1{5lx6ha6UN|g{Og-$Yv zUMV}%nkx+c!#OyW&Cq*gQ>hb6e;K1fR=GCPV?%2sqtdzb%1Rvh*?|Ng$pDfJ$S(XY njq-;+Rsu-K04PA`p(FnTyhhmEY#Hrb00000NkvXXu0mjftic{Y literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-view-downloadfullsize.png b/themes/clean_canvas/images/ico-view-downloadfullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..496035101a8629cb103dcaea59f45c9d8d05d6f2 GIT binary patch literal 5197 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 Hu0mjfCxYR_ literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-view-embedlinks.png b/themes/clean_canvas/images/ico-view-embedlinks.png new file mode 100755 index 0000000000000000000000000000000000000000..ef8bd2334484c607702b0d482266540178c7ad40 GIT binary patch literal 4234 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-view-minislideshow.png b/themes/clean_canvas/images/ico-view-minislideshow.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/images/ico-view-tagsmap.png b/themes/clean_canvas/images/ico-view-tagsmap.png new file mode 100755 index 0000000000000000000000000000000000000000..6856aa54ca2d277bc42fabc450f3c645a360855d GIT binary patch literal 4108 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"); + $(".g-context-menu a span").each(function() { + var iconClass = $(this).parent().attr("class").match(/ui-icon-.[^\s]+/).toString(); + $(this).addClass(iconClass); + }); + } + + // Remove titles for menu options since we're displaying that text anyway + $(".sf-menu a, .sf-menu li").removeAttr("title"); + + // Album and search results views + if ($("#g-album-grid").length) { + // Set equal height for album items and vertically align thumbnails/metadata + $('.g-item').equal_heights().gallery_valign(); + + // Initialize thumbnail hover effect + $(".g-item").hover( + function() { + // Insert a placeholder to hold the item's position in the grid + var placeHolder = $(this).clone().attr("id", "g-place-holder"); + $(this).after($(placeHolder)); + // Style and position the hover item + var position = $(this).position(); + $(this).css("top", position.top).css("left", position.left); + $(this).addClass("g-hover-item"); + // Initialize the contextual menu + $(this).gallery_context_menu(); + // Set the hover item's height + $(this).height("auto"); + var context_menu = $(this).find(".g-context-menu"); + var adj_height = $(this).height() + context_menu.height(); + if ($(this).next().height() > $(this).height()) { + $(this).height($(this).next().height()); + } else if ($(this).prev().height() > $(this).height()) { + $(this).height($(this).prev().height()); + } else { + $(this).height(adj_height); + } + }, + function() { + // Reset item height and position + if ($(this).next().height()) { + var sib_height = $(this).next().height(); + } else { + var sib_height = $(this).prev().height(); + } + if ($.browser.msie && $.browser.version <= 8) { + sib_height = sib_height + 1; + } + $(this).css("height", sib_height); + $(this).css("position", "relative"); + $(this).css("top", 0).css("left", 0); + // Remove the placeholder and hover class from the item + $(this).removeClass("g-hover-item"); + $(this).gallery_valign(); + $("#g-place-holder").remove(); + } + ); + + // Realign any thumbnails that change so that when we rotate a thumb it stays centered. + $(".g-item").bind("gallery.change", function() { + $(".g-item").each(function() { + $(this).height($(this).find("img").height() + 2); + }); + $(".g-item").equal_heights().gallery_valign(); + }); + } + + // Photo/Item item view + if ($("#g-photo,#g-movie").length) { + // Ensure the resized image fits within its container + $("#g-photo,#g-movie").gallery_fit_photo(); + + // Initialize context menus + $("#g-photo,#g-movie").hover(function(){ + $(this).gallery_context_menu(); + }); + + // Add scroll effect for links to named anchors + $.localScroll({ + queue: true, + duration: 1000, + hash: true + }); + + $(this).find(".g-dialog-link").gallery_dialog(); + $(this).find(".g-ajax-link").gallery_ajax(); + } + + // Initialize button hover effect + $.fn.gallery_hover_init(); + +}); diff --git a/themes/clean_canvas/theme.info b/themes/clean_canvas/theme.info new file mode 100755 index 0000000..f0969ef --- /dev/null +++ b/themes/clean_canvas/theme.info @@ -0,0 +1,6 @@ +name = "Clean Canvas Theme" +description = "This is thought to be a color neutral and clean, simple but elegant theme for Gallery 3. A small thank you to the community behind. Some compromise were to be made with Internet Explorer compatibility, though. Hope you like it! - The dark version was provided by Hukoeth." +version = 1.08 +author = "marshfire, Ronny Schulz, darkened by hukoeth" +site = 1 +admin = 0 diff --git a/themes/clean_canvas/thumbnail.png b/themes/clean_canvas/thumbnail.png new file mode 100755 index 0000000000000000000000000000000000000000..6ee9433c1ff959b40ffaeb98d6186d2478efa849 GIT binary patch literal 43644 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 z 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%0ALMWRG} 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 literal 0 HcmV?d00001 diff --git a/themes/clean_canvas/views/album.html.php b/themes/clean_canvas/views/album.html.php new file mode 100755 index 0000000..f1fa1d4 --- /dev/null +++ b/themes/clean_canvas/views/album.html.php @@ -0,0 +1,73 @@ + + + + + + + + + + +

    + album_top() ?> +

    title) ?>

    +
    description)) ?>
    +
    + +
    +album_bottom() ?> + +paginator() ?> diff --git a/themes/clean_canvas/views/block.html.php b/themes/clean_canvas/views/block.html.php new file mode 100755 index 0000000..699d7c2 --- /dev/null +++ b/themes/clean_canvas/views/block.html.php @@ -0,0 +1,10 @@ + + + + +
    +

    +
    + +
    +
    diff --git a/themes/clean_canvas/views/comment.html.php b/themes/clean_canvas/views/comment.html.php new file mode 100755 index 0000000..5abaf32 --- /dev/null +++ b/themes/clean_canvas/views/comment.html.php @@ -0,0 +1,25 @@ + +
  • +

    + + " + class="g-avatar" + alt="author_name()) ?>" + width="40" + height="40" /> + + author()->guest): ?> + gallery::date_time($comment->created), + "name" => html::clean($comment->author_name()))) ?> + + %name said", + array("date_time" => gallery::date_time($comment->created), + "url" => user_profile::url($comment->author_id), + "name" => html::clean($comment->author_name()))) ?> + +

    +
    + text)) ?> +
    +
  • diff --git a/themes/clean_canvas/views/dynamic.html.php b/themes/clean_canvas/views/dynamic.html.php new file mode 100755 index 0000000..a8a4d36 --- /dev/null +++ b/themes/clean_canvas/views/dynamic.html.php @@ -0,0 +1,29 @@ + +
    +
    + dynamic_top() ?> +
    +

    +
    + +
      + $child): ?> +
    • "> + thumb_top($child) ?> + + photo + +

      title) ?>

      + thumb_bottom($child) ?> + +
    • + +
    +dynamic_bottom() ?> + +paginator() ?> diff --git a/themes/clean_canvas/views/info_block.html.php b/themes/clean_canvas/views/info_block.html.php new file mode 100755 index 0000000..3edfca5 --- /dev/null +++ b/themes/clean_canvas/views/info_block.html.php @@ -0,0 +1,31 @@ + + diff --git a/themes/clean_canvas/views/info_theme.php b/themes/clean_canvas/views/info_theme.php new file mode 100755 index 0000000..3382d88 --- /dev/null +++ b/themes/clean_canvas/views/info_theme.php @@ -0,0 +1,30 @@ +view_count) { + $results .= "
  • "; + $results .= t("Views: %view_count", array("view_count" => $item->view_count)); + $results .= "
  • "; + } + return $results; + } +} \ No newline at end of file diff --git a/themes/clean_canvas/views/movie.html.php b/themes/clean_canvas/views/movie.html.php new file mode 100755 index 0000000..158857d --- /dev/null +++ b/themes/clean_canvas/views/movie.html.php @@ -0,0 +1,19 @@ + +
    + photo_top() ?> + + paginator() ?> + +
    + resize_top($item) ?> + movie_img(array("class" => "g-movie", "id" => "g-item-id-{$item->id}")) ?> + resize_bottom($item) ?> +
    + +
    +

    title) ?>

    +
    description)) ?>
    +
    + + photo_bottom() ?> +
    diff --git a/themes/clean_canvas/views/no_sidebar.html.php b/themes/clean_canvas/views/no_sidebar.html.php new file mode 100755 index 0000000..58c5725 --- /dev/null +++ b/themes/clean_canvas/views/no_sidebar.html.php @@ -0,0 +1,11 @@ + +
      +
    • + + + + + + "> +
    • +
    diff --git a/themes/clean_canvas/views/page.html.php b/themes/clean_canvas/views/page.html.php new file mode 100755 index 0000000..641d2cf --- /dev/null +++ b/themes/clean_canvas/views/page.html.php @@ -0,0 +1,188 @@ + + +html_attributes() ?> xml:lang="en" lang="en"> + + + start_combining("script,css") ?> + + <? if ($page_title): ?> + <?= $page_title ?> + <? else: ?> + <? if ($theme->item()): ?> + <?= $theme->item()->title ?> + <? elseif ($theme->tag()): ?> + <?= t("Photos tagged with %tag_title", array("tag_title" => $theme->tag()->name)) ?> + <? else: /* Not an item, not a tag, no page_title specified. Help! */ ?> + <?= item::root()->title ?> + <? endif ?> + <? endif ?> + + " + type="image/x-icon" /> + " /> + page_type == "collection"): ?> + thumb_proportion($theme->item())) != 1): ?> + + + + + + + script("json2-min.js") ?> + script("jquery.js") ?> + script("jquery.form.js") ?> + script("jquery-ui.js") ?> + script("gallery.common.js") ?> + + + script("gallery.ajax.js") ?> + script("gallery.dialog.js") ?> + script("superfish/js/superfish.js") ?> + script("jquery.localscroll.js") ?> + + + page_subtype == "photo"): ?> + script("jquery.scrollTo.js") ?> + script("gallery.show_full_size.js") ?> + page_subtype == "movie"): ?> + script("flowplayer.js") ?> + + + head() ?> + + + script("ui.init.js") ?> + css("yui/reset-fonts-grids.css") ?> + css("superfish/css/superfish.css") ?> + + css("dark/themeroller/ui.base.css") ?> + css("dark/screen_colors.css") ?> + css("dark/screen_candy.css") ?> + + css("clean/themeroller/ui.base.css") ?> + css("clean/screen_colors.css") ?> + css("clean/screen_candy.css") ?> + + css("screen_layout_base.css") ?> + css("screen_fonts.css") ?> + + css("screen_layout_wide.css") ?> + + css("screen_layout_fixed.css") ?> + + + + + get_combined("script") ?> + + + get_combined("css") ?> + + + body_attributes() ?>> + page_top() ?> + +
    + +
    + + site_status() ?> +
    +
    + + + + + + user_menu() ?> + header_top() ?> +
    + + 1 ) { ?> + $display_name) { ?> + + + + installed_locales = array_merge(array("" => t("« none »")), $locales); ?> + selected = (string) locales::cookie_locale(); ?> + + +
    + + + + + header_bottom() ?> +
    + + + + +
    +
    +
    +
    +
    + messages() ?> + +
    +
    +
    + item() && !empty($parents))): ?> + + +
    + page_subtype != "login"): ?> + + +
    +
    + +
    + page_bottom() ?> + + diff --git a/themes/clean_canvas/views/paginator.html.php b/themes/clean_canvas/views/paginator.html.php new file mode 100755 index 0000000..5034c96 --- /dev/null +++ b/themes/clean_canvas/views/paginator.html.php @@ -0,0 +1,87 @@ + + + +
      +
    • + + + + + + + + + + + + + + + + + +
    • + +
    • + + + $first_visible_position, + "to_number" => $last_visible_position, + "count" => $total)) ?> + + $position, "total" => $total)) ?> + + + + +
    • + +
    • + + + + + + + + + + + + + + + + + +
    • +
    diff --git a/themes/clean_canvas/views/photo.html.php b/themes/clean_canvas/views/photo.html.php new file mode 100755 index 0000000..12f1b39 --- /dev/null +++ b/themes/clean_canvas/views/photo.html.php @@ -0,0 +1,97 @@ + + + + + +item())): ?> + + + + + + + + + + + + +
    + photo_top() ?> + + paginator() ?> + + +
    + parent()->children() as $i => $child): ?> + id === $item->id ): ?> +
    + + + +
    + + + dummy + + + +
    + + + + + +
    +

    title) ?>

    +
    description)) ?>
    +
    + + photo_bottom() ?> +
    + diff --git a/themes/clean_canvas/views/sidebar.html.php b/themes/clean_canvas/views/sidebar.html.php new file mode 100755 index 0000000..086d135 --- /dev/null +++ b/themes/clean_canvas/views/sidebar.html.php @@ -0,0 +1,16 @@ + +sidebar_top() ?> +
    + + album_menu() ?> + + photo_menu() ?> + + movie_menu() ?> + + tag_menu() ?> + +
    + +sidebar_blocks() ?> +sidebar_bottom() ?> diff --git a/themes/clean_canvas/views/user_languages_block.html.php b/themes/clean_canvas/views/user_languages_block.html.php new file mode 100755 index 0000000..60ec269 --- /dev/null +++ b/themes/clean_canvas/views/user_languages_block.html.php @@ -0,0 +1,23 @@ + + + + + + $value): ?> + 0) : ?> 1) : ?> | + + diff --git a/themes/greydragon/admin/controllers/admin_theme_options.php b/themes/greydragon/admin/controllers/admin_theme_options.php new file mode 100755 index 0000000..e8094e8 --- /dev/null +++ b/themes/greydragon/admin/controllers/admin_theme_options.php @@ -0,0 +1,860 @@ + +load_theme_info(); + return ($theme_info->version); + } + + private function get_theme_name() { + $theme_info = $this->load_theme_info(); + return ($theme_info->name); + } + + private function get_packlist($type, $filename) { + $packlist = array(); + $packroot = THEMEPATH . 'greydragon/css/' . $type . '/'; + + foreach (scandir($packroot) as $pack_name): + if (file_exists($packroot . "$pack_name/css/" . $filename . ".css")): + if ($pack_name[0] == "."): + continue; + endif; + + $packlist[$pack_name] = t($pack_name); + endif; + endforeach; + return $packlist; + } + + private function get_colorpacks() { + return $this->get_packlist('colorpacks', 'colors'); + } + + private function get_framepacks() { + return $this->get_packlist('framepacks', 'frame'); + } + + private function prerequisite_check($group, $id, $is_ok, $caption, $caption_ok, $caption_failed, $iswarning, $msg_error) { + $confirmation_caption = ($is_ok)? $caption_ok : $caption_failed; + $checkbox = $group->checkbox($id) + ->label($caption . " " . $confirmation_caption) + ->checked($is_ok) + ->disabled(true); + if ($is_ok): + $checkbox->class("g-success"); + elseif ($iswarning): + $checkbox->class("g-prerequisite g-warning")->error_messages("failed", $msg_error)->add_error("failed", 1); + else: + $checkbox->class("g-error")->error_messages("failed", $msg_error)->add_error("failed", 1); + endif; + } + + /* Convert old values ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + protected function upgrade_settings() { + if (module::get_var("th_greydragon", "hide_thumbmeta")): + module::set_var("th_greydragon", "thumb_metamode", "hide"); + module::clear_var("th_greydragon", "hide_thumbmeta"); + endif; + + if (module::get_var("gallery", "appletouchicon_url")): + $temp = module::get_var("gallery", "appletouchicon_url"); + module::set_var("gallery", "apple_touch_icon_url", $temp); + module::clear_var("gallery", "appletouchicon_url"); + endif; + + if (module::get_var("th_greydragon", "flex_rows", FALSE)): + module::set_var("th_greydragon", "column_count", -1); + module::clear_var("th_greydragon", "flex_rows"); + endif; + + if (module::get_var("th_greydragon", "thumb_descmode") == "overlay_static"): + module::set_var("th_greydragon", "thumb_descmode", "overlay_top"); + endif; + + if (module::get_var("th_greydragon", "mainmenu_position") == "1"): + module::set_var("th_greydragon", "mainmenu_position", "top"); + endif; + + if (module::get_var("th_greydragon", "hide_breadcrumbs")): + module::set_var("th_greydragon", "breadcrumbs_position", "hide"); + module::clear_var("th_greydragon", "hide_breadcrumbs"); + endif; + + if (module::get_var("th_greydragon", "photonav_position")): + $temp = module::get_var("th_greydragon", "photonav_position"); + module::set_var("th_greydragon", "paginator_album", $temp); + module::set_var("th_greydragon", "paginator_photo", $temp); + module::clear_var("th_greydragon", "photonav_position"); + endif; + + if (module::get_var("th_greydragon", "sidebar_allowed") == "none"): + module::set_var("th_greydragon", "sidebar_allowed", "default"); + endif; + + if (module::get_var("th_greydragon", "thumb_topalign")): + module::set_var("th_greydragon", "thumb_imgalign", "top"); + module::clear_var("th_greydragon", "thumb_topalign"); + elseif ((module::get_var("th_greydragon", "thumb_ratio") == "photo") && (!module::get_var("th_greydragon", "thumb_imgalign"))): + module::set_var("th_greydragon", "thumb_imgalign", "center"); + endif; + } + + protected function isCurlInstalled() { + if (in_array('curl', get_loaded_extensions())) { + return true; + } else { + return false; + } + } + + protected function get_edit_form_admin() { + $this->upgrade_settings(); + + $form = new Forge("admin/theme_options/save/", "", null, array("id" =>"g-theme-options-form")); + + $rssmodulecheck = (module::is_active("rss") && module::info("rss")); + + /* Prerequisites ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("requirements")->label(t("Prerequisites")); + $gallery_ver = module::get_version("gallery"); + $this->prerequisite_check($group, "vercheck", $gallery_ver >= $this->min_gallery_ver, + t("Gallery 3 Core v.") . $this->min_gallery_ver . "+", t("Installed"), t("Required"), FALSE, sprintf(t("Check Failed. Minimum Required Version is %s. Found %s."), $this->min_gallery_ver, $gallery_ver)); + if (module::get_var("th_greydragon", "allow_root_page")): + $this->prerequisite_check($group, "rsscheck", $rssmodulecheck, + t("RSS Module"), t("Found"), t("not Found"), TRUE, t("Install RSS module to Enable Root Page Support")); + endif; + $this->prerequisite_check($group, "curlcheck", ($this->isCurlInstalled()), + t("PHP CURL Support is"), t("Enabled"), t("Disabled"), TRUE, t("Please make sure CURL support is enabled in PHP")); + + /* Suggested Modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("recommended")->label(t("Suggested Modules")); + + $check_infos = array(); + if (!module::get_var("th_greydragon", "hide_thumbmeta")): + $this->prerequisite_check($group, "info", (module::is_active("info") and module::info("info")), + t("Info Module"), t("Found"), t("Required"), FALSE, t("Check Failed. Module is required to display Thumb metadata.")); + endif; + + if (module::is_active("fancybox") && module::info("fancybox")): + $check_infos[] = array("module" => "fancybox", "module_name" => "Fancybox", "link" => ''); + endif; + if (module::is_active("colorbox") && module::info("colorbox")): + $check_infos[] = array("module" => "colorbox", "module_name" => "Colorbox", "link" => ''); + endif; + if (module::is_active("shadowbox") && module::info("shadowbox")): + $check_infos[] = array("module" => "shadowbox", "module_name" => "Shadowbox", "link" => ''); + endif; + + switch (count($check_infos)): + case 0: + $check_infos[] = array("module" => "fancybox", "module_name" => "Fancybox", "link" => ''); + $this->prerequisite_check($group, "fancybox", FALSE, + t("Fancybox/Colorbox/Shadowbox") . " " . t("Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable %s Support"), '', '', t("Fancybox"))); + break; + case 1: + $check_info = $check_infos[0]; + $this->prerequisite_check($group, $check_info["module"], TRUE, + t($check_info["module_name"]) . " " . t("Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable %s Support"), $check_info["link"], '', t($check_info["module_name"]))); + break; + default: + $list = ""; + $first = TRUE; + foreach ($check_infos as $key => $check_info): + if ($first): + $list .= $check_infos[$key]["module_name"]; + $first = FALSE; + else: + $list .= ", " . $check_infos[$key]["module_name"]; + endif; + endforeach; + + $this->prerequisite_check($group, "fancybox", FALSE, + t($list . " Modules are Active"), + "", + "", + TRUE, + t("Slideshow feature would not work correctly. Please activate just one of these modules.")); + + break; + endswitch; + + $check_info = $check_infos[0]; + $thumbnavcheck = module::is_active("thumbnav") and module::info("thumbnav"); + + $this->prerequisite_check($group, "kbdnavcheck", ((module::is_active("kbd_nav")) and (module::info("kbd_nav"))), + t("Kbd Navigation Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable Keyboard Navigation Support"), '', '')); + $this->prerequisite_check($group, "thumbnavcheck", $thumbnavcheck, + t("ThumbNav Module"), t("Found"), t("not Found"), TRUE, sprintf(t("Install %smodule%s to Enable Thumb Navigation Support"), '', '')); + + $thumb_ratio = module::get_var("th_greydragon", "thumb_ratio", "photo"); + $thumb_ratio_ex = FALSE; + switch ($thumb_ratio): + case "photo_ex": + $thumb_ratio = "photo"; + $thumb_ratio_ex = TRUE; + break; + case "film_ex": + $thumb_ratio = "film"; + $thumb_ratio_ex = TRUE; + break; + case "digital_ex": + $thumb_ratio = "digital"; + $thumb_ratio_ex = TRUE; + break; + case "wide_ex": + $thumb_ratio = "wide"; + $thumb_ratio_ex = TRUE; + break; + default: + break; + endswitch; + + /* General Settings ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $sidebar_allowed = module::get_var("th_greydragon", "sidebar_allowed"); + $sidebar_visible = module::get_var("th_greydragon", "sidebar_visible"); + + $group = $form->group("edit_theme")->label(t("General Settings")); + $group->hidden("g_auto_delay") + ->value(module::get_var("th_greydragon", "auto_delay", 30)); + $group->input("row_count") + ->label(t("Rows per Album Page")) + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("th_greydragon", "row_count", 3)); + $group->dropdown("column_count") + ->label(t("Columns per Album Page")) + ->options(array("2" => t("2 columns"), "3" => t("3 columns"), "4" => t("4 columns"), "5" => t("5 columns"), "-1" => t("Flexible (3 x Number of Rows)"))) + ->selected(module::get_var("th_greydragon", "column_count", 3)); + $group->input("resize_size") + ->label(t("Resized Image Size (in pixels)")) + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "resize_size")); + $group->input("logo_path") + ->label(t("Alternate Logo Image")) + ->value(module::get_var("th_greydragon", "logo_path")); + $group->input("favicon") + ->label(t("URL (or relative path) to your favicon.ico")) + ->value(module::get_var("gallery", "favicon_url")); + $group->input("appletouchicon") + ->label(t("URL (or relative path) to your Apple Touch icon")) + ->value(module::get_var("gallery", "apple_touch_icon_url")); + $group->input("header_text") + ->label(t("Header Text")) + ->value(module::get_var("gallery", "header_text")); + $group->input("footer_text") + ->label(t("Footer Text")) + ->value(module::get_var("gallery", "footer_text")); + $group->input("copyright") + ->label(t("Copyright Message")) + ->value(module::get_var("th_greydragon", "copyright")); + $group->dropdown("colorpack") + ->label(t("Color Pack/Site theme")) + ->options(self::get_colorpacks()) + ->selected(module::get_var("th_greydragon", "color_pack", "greydragon")); + $group->dropdown("framepack") + ->label(t("Thumb Frame Pack")) + ->options(self::get_framepacks()) + ->selected(module::get_var("th_greydragon", "frame_pack", "greydragon")); + + /* Advanced Options - General ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_adv_main")->label(t("Advanced Options - General")); + $group->dropdown("viewmode") + ->label(t("Theme View Mode")) + ->options(array("default" => t("Full Mode (Default)"), "mini" => t("Mini Mode"))) + ->selected(module::get_var("th_greydragon", "viewmode", "default")); + $group->dropdown("mainmenu_position") + ->label(t("Main Menu Position")) + ->options(array("default" => t("Bottom-Left (Default)"), "top" => t("Top-Left"), "bar" => t("Top Bar"))) + ->selected(module::get_var("th_greydragon", "mainmenu_position")); + $group->dropdown("loginmenu_position") + ->label(t("Login Menu Position")) + ->options(array("header" => t("Header"), "default" => t("Footer (Default)"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "loginmenu_position", "default")); + $group->dropdown("breadcrumbs_position") + ->label(t("Breadcrumbs Position")) + ->options(array("default" => t("Bottom-Right (Default)"), "bottom-left" => t("Bottom-Left"), "top-right" => t("Top-Right"), "top-left" => t("Top-Left"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "breadcrumbs_position")); + $group->dropdown("title_source") + ->label(t("Title Source")) + ->options(array("default" => t("Title (Default)"), "no-filename" => t("Title/Suppress File Name"), "description" => t("Description"))) + ->selected(module::get_var("th_greydragon", "title_source", "default")); + $group->input("custom_css_path") + ->label(t("File Name of custom.css or equivalent")) + ->value(module::get_var("th_greydragon", "custom_css_path")); + $group->input("resize_quality") + ->label(t("Resized Image Quallity (in %)")) + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "image_quality", 100)); + $group->input("visible_title_length") + ->label(t("Visible Title Length")) + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("gallery", "visible_title_length", 15)); + + $group->checkbox("show_guest_menu") + ->label(t("Show Main Menu for Guest Users")) + ->checked(module::get_var("th_greydragon", "show_guest_menu")); + $group->checkbox("toolbar_large") + ->label(t("Use Large Toolbar Buttons")) + ->checked(module::get_var("th_greydragon", "toolbar_large")); + $group->checkbox("show_credits") + ->label(t("Show Site Credits")) + ->checked(module::get_var("gallery", "show_credits")); + $group->checkbox("breadcrumbs_showinroot") + ->label(t("Show Breadcrumbs in root album/root page")) + ->checked(module::get_var("th_greydragon", "breadcrumbs_showinroot")); + $group->checkbox("disable_seosupport") + ->label(t("Disallow Search Engine Indexing (No Bots)")) + ->checked(module::get_var("th_greydragon", "disable_seosupport")); + $group->checkbox("desc_allowbbcode") + ->label(t("Allow BBCode/HTML in Descriptions")) + ->checked(module::get_var("th_greydragon", "desc_allowbbcode")); + $group->checkbox("use_permalinks") + ->label(t("Use Permalinks for Navigation")) + ->checked(module::get_var("th_greydragon", "use_permalinks")); + + /* Advanced Options - Album page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_adv_album")->label(t("Advanced Options - Album Page")); + $group->dropdown("paginator_album") + ->label(t("Paginator Position")) + ->options(array("top" => t("Top"), "bottom" => t("Bottom"), "both" => t("Both"), "none" => t("None"))) + ->selected(module::get_var("th_greydragon", "paginator_album")); + $group->dropdown("album_descmode") + ->label(t("Description Display Mode")) + ->options(array("hide" => t("Hide"), "top" => t("Top"), "bottom" => t("Bottom"))) + ->selected(module::get_var("th_greydragon", "album_descmode")); + $group->checkbox("disablephotopage") + ->label(t("Disable Photo Page (use Slideshow Mode)")) + ->checked(module::get_var("th_greydragon", "disablephotopage")); + $group->checkbox("hidecontextmenu") + ->label(t("Hide Context Menu")) + ->checked(module::get_var("th_greydragon", "hidecontextmenu")); + + /* Advanced Options - Album page - Thumbs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_adv_thumb")->label(t("Advanced Options - Album page - Thumbs")); + $group->dropdown("thumb_ratio") + ->label(t("Aspect Ratio")) + ->options(array("photo" => t("Actual"), "film" => t("Film/Full Frame 3:2"), "digital" => t("Digital 4:3"), "wide" => t("Wide/HDTV 16:9"))) + ->selected($thumb_ratio); + $group->checkbox("thumb_ratio_ex") + ->label(t("Expanded Aspect Ratio (300px wide)")) + ->checked($thumb_ratio_ex); + $group->dropdown("thumb_imgalign") + ->label(t("Thumb Image Align")) + ->options(array("top" => t("Top"), "center" => t("Center"), "bottom" => t("Bottom"), "fit" => t("Fit"))) + ->selected(module::get_var("th_greydragon", "thumb_imgalign")); + + $group->dropdown("thumb_descmode_a") + ->label(t("Title Display Mode (Album)")) + ->options(array("overlay" => t("Overlay Top"), "overlay_top" => t("Overlay Top (Static)"), + "overlay_bottom" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "thumb_descmode_a")); + $group->dropdown("thumb_descmode") + ->label(t("Title Display Mode (Photo)")) + ->options(array("overlay" => t("Overlay Top"), "overlay_top" => t("Overlay Top (Static)"), + "overlay_bottom" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "thumb_descmode")); + $group->dropdown("thumb_metamode") + ->label(t("Meta Data Display Mode")) + ->options(array("default" => t("Overlay (Default)"), "merged" => t("Merge with Title"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "thumb_metamode", "default")); + $group->checkbox("thumb_random") + ->label(t("Randomize Thumb Image")) + ->checked(module::get_var("th_greydragon", "thumb_random")); + + /* Advanced Options - Photo page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_adv_photo")->label(t("Advanced Options - Photo Page")); + $group->dropdown("paginator_photo") + ->label(t("Paginator Position")) + ->options(array("top" => t("Top"), "bottom" => t("Bottom"), "both" => t("Both"), "none" => t("None"))) + ->selected(module::get_var("th_greydragon", "paginator_photo")); + $group->dropdown("photo_descmode") + ->label(t("Description Display Mode")) + ->options(array("overlay_top" => t("Overlay Top"), "overlay_bottom" => t("Overlay Bottom"), "overlay_top_s" => t("Overlay Top (Static)"), + "overlay_bottom_s" => t("Overlay Bottom (Static)"), "bottom" => t("Bottom"), "top" => t("Top"), "hide" => t("Hide"))) + ->selected(module::get_var("th_greydragon", "photo_descmode")); + $group->dropdown("photo_popupbox") + ->label(t($check_info["module_name"]) . " " . t("Mode")) + ->options(array("default" => t("Default (Slideshow/Preview)"), "preview" => t("Preview Only"), "none" => t("Disable"))) + ->selected(module::get_var("th_greydragon", "photo_popupbox")); + $group->checkbox("thumb_inpage") + ->label(t("Keep Thumb Nav Block on the side")) + ->checked(module::get_var("th_greydragon", "thumb_inpage")); + if (!$thumbnavcheck): + $group->thumb_inpage->disabled(true); + endif; + $group->checkbox("hide_photometa") + ->label(t("Hide Item Meta Data")) + ->checked(module::get_var("th_greydragon", "hide_photometa", TRUE)); + + /* Advanced Options - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_adv_root")->label(t("Advanced Options - Root Page")); + $group->checkbox("allow_root_page") + ->label(t("Allow root page")) + ->checked(module::get_var("th_greydragon", "allow_root_page")); + $group->checkbox("show_root_desc") + ->label(t("Show Gallery Description")) + ->checked(!module::get_var("th_greydragon", "hide_root_desc")); + $group->input("root_feed") + ->label(t("Slideshow RSS Feed URL")) + ->value(module::get_var("th_greydragon", "root_feed", "/gallery3/index.php/rss/feed/gallery/latest")); + $group->dropdown("root_cyclemode") + ->label(t("Cycle Effect (Default: Fade)")) + ->options(array("fade" => t("Fade"), "fadeout" => t("Fade Out"), "fadeZoom" => t("Fade Zoom"), "blindX" => t("Blind X"), "blindY" => t("Blind Y"), + "blindZ" => t("Blind Z"), "cover" => t("Cover"), "curtainX" => t("Curtain X"), "curtainY" => t("Curtain Y"), "growX" => t("Grow X"), + "growY" => t("Grow Y"), "none" => t("None"), "scrollUp" => t("Scroll Up"), "scrollDown" => t("Scroll Down"), "scrollLeft" => t("Scroll Left"), + "scrollRight" => t("Scroll Right"), "scrollHorz" => t("Scroll Horz"), "scrollVert" => t("Scroll Vert"), "shuffle" => t("Shuffle"), + "slideX" => t("Slide X"), "slideY" => t("Slide Y"), "toss" => t("Toss"), "turnUp" => t("Turn Up"), "turnDown" => t("Turn Down"), + "turnLeft" => t("Turn Left"), "turnRight" => t("Turn Right"), "uncover" => t("Uncover"), "wipe" => t("Wipe"), "zoom" => t("Zoom"))) + ->selected(module::get_var("th_greydragon", "root_cyclemode")); + $group->input("root_delay") + ->label(t("Slideshow Delay (Default: 15)")) + ->rules("required|valid_digit") + ->error_messages("required", t("You must enter a number")) + ->error_messages("valid_digit", t("You must enter a number")) + ->value(module::get_var("th_greydragon", "root_delay", "15")); + $group->checkbox("hide_root_sidebar") + ->label(t("Hide Sidebar")) + ->checked(module::get_var("th_greydragon", "hide_root_sidebar")); + $group->textarea("root_description") + ->label(t("Alternative Description (optional)")) + ->value(module::get_var("th_greydragon", "root_description")); + + /* Sidebar Options ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("edit_theme_side")->label(t("Sidebar Options")); + $group->checkbox("hide_blockheader") + ->label(t("Hide Block Header")) + ->checked(module::get_var("th_greydragon", "hide_blockheader")); + $group->checkbox("sidebar_albumonly") + ->label(t("Show Sidebar for Albums Only")) + ->checked(module::get_var("th_greydragon", "sidebar_albumonly")); + $group->checkbox("sidebar_hideguest") + ->label(t("Show Sidebar for Guest Users")) + ->checked(!module::get_var("th_greydragon", "sidebar_hideguest")); + $group->dropdown("sidebar_allowed") + ->label(t("Allowed Sidebar Positions")) + ->options(array("any" => t("Any"), "left" => t("Left"), "right" => t("Right"), "bottom" => t("Bottom"), "top" => t("Top"), "default" => t("Default Only"))) + ->selected($sidebar_allowed); + $group->dropdown("sidebar_visible") + ->label(t("Default Sidebar Position")) + ->options(array("right" => t("Right"), "left" => t("Left"), "bottom" => t("Bottom"), "top" => t("Top"), "none" => t("No sidebar"))) + ->selected($sidebar_visible); + + /* Maintenance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ + + $group = $form->group("maintenance")->label(t("Maintenance")); + $group->checkbox("build_thumbs")->label(t("Mark all Thumbnails for Rebuild"))->checked(false); + $group->checkbox("build_resize")->label(t("Mark all Image Resizes for Rebuild"))->checked(false); + $group->checkbox("build_exif")->label(t("Mark Exif Info data for reload"))->checked(false); + $group->checkbox("purge_cache")->label(t("Purge cache data"))->checked(false); + $group->checkbox("reset_theme")->label(t("Reset Theme to a Default State"))->checked(false); + + module::event("theme_edit_form", $form); + + $form->submit("g-theme-options-save")->value(t("Save Changes")); + + return $form; + } + + protected function get_edit_form_help() { + $help = '
    '; + $help .= '' . t("Help") . '
      '; + $help .= '
    • ' . t("Prerequisites") . '

      +

      ' . t("REQUIREMENTS NEED TO BE MET FOR THE THEME TO FUNCTION PROPERLY.") . '
      + ' . t("Please refer to the section on the left.") . ' +

    • '; + + $help .= '
    • ' . t("General Settings") . '

      + ' . t("

      Theme is designed to display thumbnails as a table. + You can choose different number of Rows/Columns per Album Page or can use Flexible Columns. +

      Default G3 logo can be replaced with your own by providing Alternate Logo Image. Recommended logo size + is within 300x80px. If you need bigger space for your logo, CSS would have to be adjusted. Otherwise, Logo could be + suppressed altogether by providing Header Text to replace it. Footer Text would be simply placed next + to Site's credits. +

      Copyright Message can be placed in the right top corner of the footer. +

      Important feature of the theme is a support for Color Packs which is managed by Selected Color Pack Option. + Color Pack allows changing colors, styles, theme for the pages. By default 6 color packs are included, + but it could be easily extended. Visit Theme's Download page for additional information. + Frame Pack allows change Frames used for Thumbs in album pages.") . ' +

    • '; + + $help .= '
    • ' . t("Advanced Options - General") . '

      + ' . t("

      In order to allow easier integration of Gallery 3 within other site infrastructure, Theme supports Special View Mode + - when Mini Mode is selected, attempt would be made to minimize space associated with Header/Footer by trimming of + the some information. Use with caution. Theme supports CMD parameter to override this selection - add + \"?viewmode=default|full|mini\" to site URL in order to trigger a switch for specific browser session. When browser session + is restarted, view mode would revert back to default set in Admin Panel. +

      Show your appreciation for our hard work by allowing Show Site Credits or contributing to our Coffee Fund. +

      If main menu has functionality intended for guest users you can use Show Main Menu for Guest Users to keep it + visible. +
      You can go even further and move main menu to the top of the header with breadcrumbs taking it place by selecting + Alternate Header Layout.
      Then if you prefer breadcrumbs not being used, simply hide it with Hide + Breadcrumbs option. +
      Then you can decide if you want to Show Breadcrumbs in the root album/root page. +

      If you like to add some cool effects while navigating between pages, + enable Blend Page Transition. +

      Paginator Position could be changed to display it above and/or below the main content. +

      You can further fine tune theme using custom CSS file by providing file name (file need to be located in themes/custom + folder) or more specific location in form of your_path/your_file_name.css if different. +

      Block web crawlers from indexing your Gallery with Disallow Search Engine Indexing Option.") . ' +

    • '; + $help .= '
    • ' . t("Advanced Options - Album page - Thumbs") . '

      + ' . t("

      Options in this section adjust how Photo's Thumb images are displayed. +

      Aspect Ratio specifies layout/size of the thumb. Setting should be used with understanding that some + information may be out of visible area (crop). When switching to/from Actual Size, it is recommended to rebuild + thumbs so that proper settings are used for thumb resize logic (see Maintenance section below). Combined with + Expanded Aspect Ratio (300px wide) you can switch between 200px and 300px wide thumb images. +

      Title Display Mode and Meta Data Display Mode allows changing how Item's caption and Meta Data is + displayed. And selecting Merge with Title would place meta data with the Title. +

      Randomize your thumbs by enabling Randomize Thumb Image (Please use with caution as it does introduce extra + load for database.).") . ' +

    • '; + $help .= '
    • ' . t("Advanced Options - Photo Page") . '

      + ' . t("

      Options in this section adjust how individual Photo are presented to the viewer. +

      With ShadowBox Mode, theme's logic could be adjusted in how Slideshow module is integrated. +
      As with Title in Photo Thumbs, Description Display Mode changes how Photo Description is displayed. +
      You can choose to Keep Thumb Nav Block on the side of the Photo when Page is displayed with bottom aligned + or hidden Sidebar. +
      And if metadata (owner/clicks/etc.) is unnecessary, it could be removed with Hide Item Meta Data. +

      Theme allows use of BBCode/HTML in item's descriptions, to enable it select Allow BBCode/HTML in Descriptions.") . ' +

    • '; + $help .= '
    • ' . t("Advanced Options - Root Page") . '

      + ' . t("

      Special option which allows adding special root/landing page with slideshow utilizing specified Slideshow RSS Feed + URL (Default: /gallery3/index.php/rss/feed/gallery/latest). +

      To enable it, select Allow root page. +

      Add small description on the side of the slideshow with Show Gallery Description. +
      Adjust rotation delay with Slideshow Delay. +
      If Sidebar is not desired in the Root Page it could be hidden with Hide Sidebar option. +
      By default, description content is populated from description of the root album, but by providing Alternative + Description you can overwrite it.") . ' +

    • '; + $help .= '
    • ' . t("Sidebar Options") . '

      + ' . t("

      If Block's header is not desired, it could be removed using Hide Block Header. +

      Sidebar visibility could be limited to individual Photo pages with + Show Sidebar for Albums Only. +

      When sidebar is visible it can be placed on the left or right of the + screen or removed altogether using Allowed Sidebar Positions. + If more than one position is allowed, Default Sidebar Position + would indicate default state, but visitor would able change it later.") . ' +

    • '; + $help .= '
    • ' . t("Maintenance") . '

      + ' . t("

      Without changing image size, you can Mark all Resizes for Rebuild. + Then you need to visit Admin\Maintenance to initiate the process. +

      Same can be done for image thumbs with Mark all Thumbnails for Rebuild. +

      Mark Exif/IPTC Info for reload would mark all Exif or IPTC records as \"Dirty\" allowing it to be repopulated. +

      And just in case you think that something is not right, you can always Reset Theme to a Default State.") . ' +

    • '; + $help .= '
    '; + return $help; + } + + private function save_item_state($statename, $state, $value) { + if ($state): + module::set_var("th_greydragon", $statename, $value); + else: + module::clear_var("th_greydragon", $statename); + endif; + } + + protected function legacy() { + module::clear_var("th_greydragon", "photonav_top"); + module::clear_var("th_greydragon", "photonav_bottom"); + module::clear_var("th_greydragon", "hide_sidebar_photo"); + module::clear_var("th_greydragon", "hide_thumbdesc"); + module::clear_var("th_greydragon", "use_detailview"); + module::clear_var("th_greydragon", "horizontal_crop"); + module::clear_var("th_greydragon", "photo_shadowbox"); + module::clear_var("th_greydragon", "root_text"); + module::clear_var("th_greydragon", "enable_pagecache"); + + module::clear_var("th_greydragon", "navigator_album"); + module::clear_var("th_greydragon", "navigator_photo"); + + module::clear_var("th_greydragon", "blendpagetrans"); + module::clear_var("th_greydragon", "last_update"); + module::clear_var("th_greydragon", "thumb_quality"); + } + + protected function reset_theme() { + // Default core theme settings + module::set_var("gallery", "page_size", 9); + module::set_var("gallery", "resize_size", 640); + module::set_var("gallery", "thumb_size", 200); + module::set_var("gallery", "header_text", ""); + module::set_var("gallery", "footer_text", ""); + module::set_var("gallery", "show_credits", FALSE); + + module::clear_all_vars("th_greydragon"); + } + + public function save() { + site_status::clear("gd_init_configuration"); + access::verify_csrf(); + + $form = self::get_edit_form_admin(); + + if ($form->validate()): + $this->legacy(); + + if ($form->maintenance->reset_theme->value): + $this->reset_theme(); + module::event("theme_edit_form_completed", $form); + message::success(t("Theme details are reset")); + else: + // * General Settings **************************************************** + + $resize_size = $form->edit_theme->resize_size->value; + + $build_resize = $form->maintenance->build_resize->value; + $build_thumbs = $form->maintenance->build_thumbs->value; + $build_exif = $form->maintenance->build_exif->value; + if (module::is_active("iptc") and module::info("iptc")): + $build_iptc = $form->maintenance->build_iptc->value; + else: + $build_iptc = FALSE; + endif; + $purge_cache = $form->maintenance->purge_cache->value; + + $color_pack = $form->edit_theme->colorpack->value; + $frame_pack = $form->edit_theme->framepack->value; + $thumb_imgalign = $form->edit_theme_adv_thumb->thumb_imgalign->value; + $thumb_descmode_a = $form->edit_theme_adv_thumb->thumb_descmode_a->value; + $thumb_descmode = $form->edit_theme_adv_thumb->thumb_descmode->value; + $thumb_metamode = $form->edit_theme_adv_thumb->thumb_metamode->value; + $photo_descmode = $form->edit_theme_adv_photo->photo_descmode->value; + $photo_popupbox = $form->edit_theme_adv_photo->photo_popupbox->value; + $resize_quality = $form->edit_theme_adv_main->resize_quality->value; + + if ($build_resize): + graphics::remove_rule("gallery", "resize", "gallery_graphics::resize"); + graphics::add_rule("gallery", "resize", "gallery_graphics::resize", + array("width" => $resize_size, "height" => $resize_size, "master" => Image::AUTO), 100); + endif; + + if (module::get_var("gallery", "image_quality") != $resize_quality): + module::set_var("gallery", "image_quality", $resize_quality); + endif; + + if (module::get_var("gallery", "resize_size") != $resize_size): + module::set_var("gallery", "resize_size", $resize_size); + endif; + + $_priorratio = module::get_var("th_greydragon", "thumb_ratio", "photo"); + $thumb_ratio = $form->edit_theme_adv_thumb->thumb_ratio->value; + $thumb_ratio_ex = $form->edit_theme_adv_thumb->thumb_ratio_ex->value; + if ($thumb_ratio_ex): + $thumb_ratio .= "_ex"; + endif; + + if ($thumb_ratio_ex): + $thumb_size = 300; + else: + $thumb_size = 200; + endif; + + if ($thumb_ratio == "photo"): + $rule = Image::AUTO; + else: + $rule = Image::WIDTH; + endif; + + if ($build_thumbs): + graphics::remove_rule("gallery", "thumb", "gallery_graphics::resize"); + graphics::add_rule("gallery", "thumb", "gallery_graphics::resize", + array("width" => $thumb_size, "height" => $thumb_size, "master" => $rule), 100); + endif; + + if (module::get_var("gallery", "thumb_size") != $thumb_size): + module::set_var("gallery", "thumb_size", $thumb_size); + endif; + + $row_count = $form->edit_theme->row_count->value; + $column_count = $form->edit_theme->column_count->value; + $this->save_item_state("row_count", 3, $row_count); + $this->save_item_state("column_count", 3, $column_count); + if ($column_count == -1): + $column_count = 3; + endif; + module::set_var("gallery", "page_size", $row_count * $column_count); + module::set_var("gallery", "header_text", $form->edit_theme->header_text->value); + module::set_var("gallery", "footer_text", $form->edit_theme->footer_text->value); + module::set_var("gallery", "favicon_url", $form->edit_theme->favicon->value); + module::set_var("gallery", "apple_touch_icon_url", $form->edit_theme->appletouchicon->value); + + $this->save_item_state("copyright", $form->edit_theme->copyright->value, $form->edit_theme->copyright->value); + $this->save_item_state("logo_path", $form->edit_theme->logo_path->value, $form->edit_theme->logo_path->value); + $this->save_item_state("color_pack", (($color_pack) and ($color_pack != "greydragon")), $color_pack); + $this->save_item_state("frame_pack", (($frame_pack) and ($frame_pack != "greydragon")), $frame_pack); + + $auto_delay = $form->edit_theme->g_auto_delay->value; + $this->save_item_state("auto_delay", $auto_delay != 30, $auto_delay); + + // * Advanced Options - General ****************************************** + + $this->save_item_state("viewmode", $form->edit_theme_adv_main->viewmode->value != "default", $form->edit_theme_adv_main->viewmode->value); + $this->save_item_state("toolbar_large", $form->edit_theme_adv_main->toolbar_large->value, TRUE); + module::set_var("gallery", "show_credits", $form->edit_theme_adv_main->show_credits->value); + $this->save_item_state("show_guest_menu", $form->edit_theme_adv_main->show_guest_menu->value, TRUE); + $this->save_item_state("loginmenu_position", $form->edit_theme_adv_main->loginmenu_position->value != "default", $form->edit_theme_adv_main->loginmenu_position->value); + $this->save_item_state("mainmenu_position", $form->edit_theme_adv_main->mainmenu_position->value != "default", $form->edit_theme_adv_main->mainmenu_position->value); + $this->save_item_state("breadcrumbs_position", $form->edit_theme_adv_main->breadcrumbs_position->value != "default", $form->edit_theme_adv_main->breadcrumbs_position->value); + $this->save_item_state("breadcrumbs_showinroot",$form->edit_theme_adv_main->breadcrumbs_showinroot->value, TRUE); + $this->save_item_state("custom_css_path", $form->edit_theme_adv_main->custom_css_path->value != "", $form->edit_theme_adv_main->custom_css_path->value); + $this->save_item_state("disable_seosupport", $form->edit_theme_adv_main->disable_seosupport->value, TRUE); + $this->save_item_state("desc_allowbbcode", $form->edit_theme_adv_main->desc_allowbbcode->value, TRUE); + module::set_var("gallery", "visible_title_length", $form->edit_theme_adv_main->visible_title_length->value); + $this->save_item_state("title_source", $form->edit_theme_adv_main->title_source->value != "default", $form->edit_theme_adv_main->title_source->value); + $this->save_item_state("use_permalinks", $form->edit_theme_adv_main->use_permalinks->value, TRUE); + + // * Advanced Options - Album page *************************************** + + $this->save_item_state("album_descmode", $form->edit_theme_adv_album->album_descmode->value != "hide", $form->edit_theme_adv_album->album_descmode->value); + $this->save_item_state("paginator_album", $form->edit_theme_adv_album->paginator_album->value != "top", $form->edit_theme_adv_album->paginator_album->value); + $this->save_item_state("disablephotopage", $form->edit_theme_adv_album->disablephotopage->value, TRUE); + $this->save_item_state("hidecontextmenu", $form->edit_theme_adv_album->hidecontextmenu->value, TRUE); + + // * Advanced Options - Album page - Thumbs ****************************** + + $this->save_item_state("thumb_ratio", $thumb_ratio != "photo", $thumb_ratio); + $this->save_item_state("thumb_imgalign", $thumb_imgalign != "top", $thumb_imgalign); + $this->save_item_state("thumb_descmode_a", $thumb_descmode_a != "overlay", $thumb_descmode_a); + $this->save_item_state("thumb_descmode", $thumb_descmode != "overlay", $thumb_descmode); + $this->save_item_state("thumb_metamode", $thumb_metamode != "default", $thumb_metamode); + $this->save_item_state("thumb_random", $form->edit_theme_adv_thumb->thumb_random->value, TRUE); + + // * Advanced Options - Photo page *************************************** + + $this->save_item_state("paginator_photo", $form->edit_theme_adv_photo->paginator_photo->value != "top", $form->edit_theme_adv_photo->paginator_photo->value); + $this->save_item_state("photo_descmode", $photo_descmode != "overlay_top", $photo_descmode); + $this->save_item_state("photo_popupbox", $photo_popupbox != "default", $photo_popupbox); + $this->save_item_state("thumb_inpage", $form->edit_theme_adv_photo->thumb_inpage->value, TRUE); + $this->save_item_state("hide_photometa", !$form->edit_theme_adv_photo->hide_photometa->value, FALSE); + + // * Advanced Options - Root page **************************************** + + $rssmodulecheck = module::is_active("rss") and module::info("rss"); + + $root_feed = $form->edit_theme_adv_root->root_feed->value; + $root_cyclemode = $form->edit_theme_adv_root->root_cyclemode->value; + $root_delay = $form->edit_theme_adv_root->root_delay->value; + $root_description = $form->edit_theme_adv_root->root_description->value; + + $this->save_item_state("allow_root_page", $form->edit_theme_adv_root->allow_root_page->value, TRUE); + $this->save_item_state("hide_root_desc", !$form->edit_theme_adv_root->show_root_desc->value, TRUE); + $this->save_item_state("root_feed", $root_feed != "gallery/latest", $root_feed); + $this->save_item_state("root_cyclemode", $root_cyclemode != "fade", $root_cyclemode); + $this->save_item_state("root_delay", $root_delay != "15", $root_delay); + $this->save_item_state("hide_root_sidebar", $form->edit_theme_adv_root->hide_root_sidebar->value, TRUE); + $this->save_item_state("root_description", $root_description, $root_description); + + // * Sidebar Options ***************************************************** + + $sidebar_allowed = $form->edit_theme_side->sidebar_allowed->value; + $sidebar_visible = $form->edit_theme_side->sidebar_visible->value; + + if ($sidebar_allowed == "right"): + $sidebar_visible = "right"; + endif; + if ($sidebar_allowed == "left"): + $sidebar_visible = "left"; + endif; + + $this->save_item_state("hide_blockheader", $form->edit_theme_side->hide_blockheader->value, TRUE); + $this->save_item_state("sidebar_albumonly", $form->edit_theme_side->sidebar_albumonly->value, TRUE); + $this->save_item_state("sidebar_hideguest", !$form->edit_theme_side->sidebar_hideguest->value, TRUE); + $this->save_item_state("sidebar_allowed", $sidebar_allowed != "any", $sidebar_allowed); + $this->save_item_state("sidebar_visible", $sidebar_visible != "right", $sidebar_visible); + + $this->save_item_state("last_update", TRUE, time()); + + module::event("theme_edit_form_completed", $form); + + if ($_priorratio != $thumb_ratio): + message::warning(t("Thumb aspect ratio has been changed. Consider rebuilding thumbs if needed.")); + endif; + + message::success(t("Updated theme details")); + + if ($build_exif): + db::update('exif_records') + ->set(array('dirty'=>'1')) + ->execute(); + endif; + + if ($build_iptc): + db::update('iptc_records') + ->set(array('dirty'=>'1')) + ->execute(); + endif; + + if ($purge_cache): + db::build() + ->delete("caches") + ->execute(); + endif; + endif; + url::redirect("admin/theme_options"); + else: + print $this->get_admin_view(); + endif; + } + + protected function get_admin_view() { + $view = new Admin_View("admin.html"); + $view->page_title = t("Grey Dragon Theme"); + $view->content = new View("admin_theme_options.html"); + $view->content->name = self::get_theme_name(); + $view->content->version = self::get_theme_version(); + $view->content->form = self::get_edit_form_admin(); + $view->content->help = self::get_edit_form_help(); + return $view; + } + + public function index() { + site_status::clear("gd_init_configuration"); + print $this->get_admin_view(); + } +} +?> \ No newline at end of file diff --git a/themes/greydragon/admin/views/admin_theme_options.html.php b/themes/greydragon/admin/views/admin_theme_options.html.php new file mode 100755 index 0000000..0e9f404 --- /dev/null +++ b/themes/greydragon/admin/views/admin_theme_options.html.php @@ -0,0 +1,38 @@ + +is_module = FALSE; + $view->downloadid = 1; + $view->name = "greydragon"; + $view->form = $form; + $view->help = $help; + else: + $view = '
    '; + $view .= "

    " . t("Prerequisite") . "


    "; + $view .= "

    " . t("This theme requires GreyDragon shared module to be installed and actived first.") . "

    "; + $view .= "

    " . t("Please download it") . ' ' . t("here") . " " . t("and install. Make sure it is activated.") . "

    "; + $view .= "
    "; + endif; + + print $view; +?> + diff --git a/themes/greydragon/changelog.txt b/themes/greydragon/changelog.txt new file mode 100755 index 0000000..04ca0d4 --- /dev/null +++ b/themes/greydragon/changelog.txt @@ -0,0 +1,641 @@ +=== Grey Dragon Theme === +Grey Dragon Theme - a custom theme for Gallery 3 + +This theme was designed and built by Serguei Dosyukov, whose blog you will find +at http://blog.dragonsoft.us/ +Copyright (C) 2009-2012 Serguei Dosyukov + +Tested up to: G3 3.0.3 build 55 +Minimum requirement: G3 3.0.2 build 49 + +This program is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free Software +Foundation; either version 2 of the License, or (at your option) any later +version. This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +details. You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software Foundation, Inc., +51 Franklin Street Fifth Floor, Boston, MA 02110-1301, USA. + +=== Open issues === +- RTL layout support + +=== Changelog === +version 4.0.2 +- Incompatability fix for PHP5.4 and below causing crash and blank page. http://galleryproject.org/forum_theme_greydragon?page=48#comment-408923 +- Fix to allow thumbnail rotation update when operation is performed. http://galleryproject.org/forum_theme_greydragon?page=48#comment-408993 +- Cycle JS: Added fadeout support. Fixed issue in root page when "Click to Enter" link would disappear with some effects + +version 4.0.1 +- Code converted to use latest jQuery library +- Added support for RWInfo meta data injection +- CSS: Fixes a phenomenon where dialog content not setting proper width in FF/Ch +- CSS: Fixes a phenomenon where context menu shows empty space above first item +- Added support for g-movie class in thumbs +- Admin: Better help translation +- Logic to load frame template optimized to prevent exception +- thumb_top()/thumb_botom() call moved inside div.g-thumbslide per Dave's request +- Markup cleanup for W3C validation +- CSS: small layout size adjustments in Simple Frame Pack +- Photo Page: fixed issue with image preload logic when one of the items is an album +- Added code protection to paginator when item is not well defined - missing ->url() method +- Breadcrumbs to take advantage of new logic introduced in latest G3 core for tags and search +- Added support for tag_albums module for pagination +- FP: Fix for Book frame pack - missing frame for movie thumbs +- Photo pages in Tag based collections do not support full item list. As result First/Last page paginator buttons and page list need to be disabled. +- Updated jQuery Cycle plug-in to latest version +- CSS: fixes for movie thumbnail in greydragon framepack + +version 3.2.2 +- CSS: Fixes a phenomenon where dialog content not aligning properly under some conditions +- CSS: Fixes a phenomenon where login dialog for error/login and reauthenticate pages were not in sync +- Movie thumb and Photo IDs are adjusted to comply with 3.0.3 notation +- Photo page image precache javascript moved into .ready to speed up the page load +- CP: Roundrobin styles improvements - top login positioning adjusted, removed padding for root page when sidebar is used +- ADMIN: Added prerequisite check for CURL support in PHP + +version 3.2.1 +- Logic to process command line parameters changed to prevent unhandled exception on some LAMP instances + +version 3.2.0 +- Theme is now HTML 5 +- CSS: Dropped support for IE 6 +- IMPORTANT: .g-extended class moved from .g-item level into a to allow layout manipulation based on thumb formats. Styles are affected. +- Added class marker to page's element to indicate current sidebar mode - g-sidebar-xxxxxxxx +- CSS: Min width of the gallery is now enforced based on number of columns and sidebar visibility - extended thumbs 3/4 columns +- CSS: Decrease size of the column for 3 column layout to 31% to prevent wrapping in some browser modes +- ADMIN: Logic added to inform site owner about new versions of the theme +- ADMIN: Admin page layout is now based on shared GreyDragon module which is now required +- ADMIN: "Visible Title Length" option - access to G3 title length setting. +- ADMIN: Use Permalinks for navigation - allows /root, /enter be used for root page access. + Requires the following rules added in .htaccess section + + ########## Enable /root url ################ + # + RewriteRule ^root ?root=yes [NC] + RewriteRule ^enter ?root=no [NC] + # + ############################################ + +- Visible Title Length is now taken in consideration when displaying Photo Titles in thumbs, breadcrumbs, etc. +- Improved file name detection for Title Source +- CP: new color pack - Round Robin \ +- FP: new frame pack - Round Corners / combined would give look of Clean Canvas theme +- FP: Book frame pack : removed right padding to prevent wrapping on smaller resolutions +- FP: Wall frame pack : min width decreased to all proper alignment of tiles +- jquery.cycle.js updated to v.2.9999.4 +- Synchronize Calendar page with page.html.php +- CSS: forms.css - fixed two misspelled rules +- Added code protection from Camel case in CMD parameters +- Fixed issue with missing status icons for some colorpacks in Upload dialog +- Added code protection in Root page to detect situation when roller is empty and then do not initialize the cycle plugin +- Added translation support for default thumb caption (Photo #, Movie #, etc) + +version 3.1.4 +- ADMIN: Option to specify image quality level for Photo resizes and Thumbs +- ADMIN: Additional Description Display Mode for Photo page : Overlay Top (Static), Overlay Bottom (Static) +- ADMIN: Title Source - manage what thumb/image title is based on : Title | Title/Suppress Filename | Description +- Added support for normalize.css - see http://necolas.github.com/normalize.css/ for more details +- Added rel=nofollow for sidebar mode switch links to prevent indexing +- Fix: module check failing in admin section when none of colorbox, shadowbox or fancybox is intalled +- Fix: CSS: Added missing rule for size of the thumb in Wall frame pack for "Actual" aspect ratio +- Fix: CSS: Fixed "Forgot password" misalignment in Login dialog +- G3 version requirement increased to 3.0.2 + +version 3.1.3 +- Removed validation for ImageBlockEx preventing use of RootPage option +- Removed JS code - attempt to have fadeIn effect + +version 3.1.2 +- CSS: Fixed issue with breadcrumbs divider in colorpacks +- CSS: Fixed issue with thumb description positioning + +version 3.1.1 +- Removed some redundant code in page.html.php +- Fixed issue with fixed Columns style not being applied +- Added code protection for situation when $position is not defined in paginator.html.php +- CSS: Fixed issues with popup menu positioning + +version 3.1.0 +- CSS: !!! Folder Structure Change !!! colors.css and frame.css added to aggregated CSS. +- ADMIN: Root Page is now iPad/Mac compatible - Flash player has been replaced with jquery.cycle - option added to manage + rotation mode. ImageBlockEx module is no longer required. For hosts where there is a block accessing local RSS feed, + rootpage.html.php_fix can be used (old style) by renaming it and placing into /themes/custom/views folder +- ADMIN: New option - Hide Context Menu for thumbs +- ADMIN: New option - Disable photo page - open FancyBox style slideshow directly from album page +- ADMIN: New option - Show Sidebar for Guest Users +- ADMIN: Option for Thumb alignment extended to Top/Center/Bottom/Fit +- ADMIN: Option's order change in Advanced Options - General +- ADMIN: Large toolbar buttons +- ADMIN: "Blend Page Transitions" is replaced with JS version +- ADMIN: Corrected setting for Apple Touch Fav Icon to use G3 default setting +- ADMIN: "Login Menu Position" expanded to allow login to be hidden. Admin can access Admin area using http://site_url/admin URL +- CP: New color pack - White Hawk +- FP: New frame pack - Wall +- FP: Support for custom frame content added - frame.html.php +- Core: Current framepack is now referenced by the page +- Core: Body class logic moved into theme's library class +- Core: "Up" navigation button now would take you to item's associated page rather then to first page of the album +- Core: Fixed issue of Sidebar position setting not being picked up under some conditions +- Core: Improved detection for root page - if root album id <> 1 +- Core: Framepack and viewmode URL parameter value is now retained for duration of the session +- Core: In "Disable photo page" mode, if EXIF module is disabled, thumb would include clickable reference to EXIF dialog +- Core: Breadcrumbs are now using :: as divider instead of image +- CSS: Column/Colorpack classes (ex: g-column-3, g-wall) moved one level up from ul#g-album-grid to div.g-album-grid-container +- CSS: Fixed issue with meta data alignment in Simple frame pack +- CSS: Fixed issue with permission dialog's breadcrumbs alignment +- CSS: removed left padding for navigator thumbs which was causing image "jumps" +- CSS: Some images were changed +- JS: Shadowbox settings moved out of the theme into module itself. + +version 3.0.8 +- Fixed issue with allowed sidebar position not properly recognized when used as Default +- Fix issue with missing quotes in Admin module +- Fixed issue with uninitialized variable in admin page +- Fixed background for view-calendar.png for some color packs +- CSS: Center content of ThumbNav module. If non default thumb size is used for module, setting may need to be adjusted. +- CSS: Added new style sheet for iPad support + +version 3.0.7 +- ADMIN: Added support for View Mode - Full/Mini (ex: ?viewmode=mini | ?viewmode=full | ?viewmode=default ) +- ADMIN: Paginator position now can be set independently for Album and Photo pages +- ADMIN: Added Colorbox slideshow detection +- Theme.info adjusted to match new guidelines +- CSS: GreyDragon Color Pack - fixed thumb background color issue with GreyDragon Frame Pack +- CSS: changes to improve Basket Module integration +- CSS: #g-album-grid element now references framepack used for better interaction between frame and color packs (ex: class="g-slateblue") +- Fix issue with sidebar not properly displayed in Root Page +- Fix issue with missing thumb image not being aligned properly in "Actual Aspect Ratio" mode + +version 3.0.6 +- Fix: Using Top aligned sidebar causes problem + +version 3.0.5 +- ADMIN: Allow hiding sidebar for root pages -> Advanced Options\Root Page\Hide Sidebar +- ADMIN: Allow breadcrumbs in root page/root album -> Advanced Options\General\Show Breadcrumbs in top album/root page +- Fixed issue with Calendar not displayed properly when no items are returned +- CSS: Increased padding for in-page description block + +version 3.0.4 +- FP: New framepack - book + Please note that if bottom aligned description is used, it need to be the same for both album and photo thumbs. +- CSS: #g-album-grid-container renamed to .g-album-grid-container +- CSS: Fixed slight misalignment of 3 level main menu items +- ADMIN: New position for main menu - Top Bar - top aligned/fixed positioned menu. Useful for admin mode menu +- ADMIN: Added support for separate option for description position in album thumbs + +version 3.0.3 +- ADMIN: Added option for Root Page slideshow delay +- ADMIN: Added option for Alternative Description for Root Page which overwrites Description from Root album +- CSS: Fix issue with context menu hotspot z-index in thumbs +- CSS: Fixed margin in Uploadify dialog to prevent overlap +- ADMIN: Page cache option has been deprecated. It can be achieved via .htaccess instead + +version 3.0.2 +- Wind Color Pack: Fixed issue with missing background image for dialog header +- CSS: Wind Color Pack: Set dialog background to white +- ADMIN: Fixed issue of Maintenance group label not being translated +- Fixed issue with float division for photo page +- Fixed issue with BBCode in info block not being converted (regression error) +- Fixed small misalignment of the image with the "Actual" Aspect Ratio Thumb +- Added CSS class marker for portrait thumb images +- IE9: Added support for Pinned Site mode and Jump List menu + +version 3.0.1 +- ADMIN: Page Header and Footer Text allows BBCode +- ADMIN: Added support for apple-touch-icon - icon similar to favicon to be used on iPad/iPhone/iPod devices +- ADMIN: New option - Album Description Display Mode - allowing placement of the description in the album pages +- ADMIN: Main menu could be now positioned as Top-Left/Bottom-Left aligned +- ADMIN: Bradcrumbs could be now positioned as Top-Left/Bottom-Left/Bottom-Right or Hidden +- Added wrappers for Header and Footer texts allowing further CSS manipulation +- Added support for custom header/footer inclusion - simply drop header.html.php and/or footer.html.php in the views folder and content would be added in the header/footer section +- Info sidebar block logic synchronized to match default but still allow BBCode + +version 3.0.0 +- Due to extensive changes to CSS it is now a major release +- Rules from screen.css moved into base.css. Screen.css used as loader file only. +- Introduced better support for RTL +- Some of the icons moved into ui-icons.png for optimization. Color adjustments for visibility. +- Added support for frame packs. Included: greydragon (default), simple, android, iphone, iphoto, darkglass +- Fixed issue with regular wide thumb format not being set/displayed properly +- Breadcrumb logic extended to take in consideration [visible_title_length] variable value introduced in G3 +- Reordered JS registration to comply with default G3 3.0.1 logic +- Added some missing translation hooks in Admin area +- Some Page load optimization +- Added logic to take in consideration date display format for info module +- Performed validation and necessary adjustments for IE 9/IE 9 compatibility mode +- IE Fix CSS is only applied for IE 6. Older versions are no longer supported + +version 2.7.9 +- Optimized session handling for colorpack cmd param +- Removed validation for colorpack presence + +version 2.7.8 +- Fixed issue with colorpack detection. Reenabled +- Fixed issue with sidebar position could be "stuck" when switching from Grey Dragon Wind Theme +- Fixed introduced error with missing forms.css reference +- Theme's CSS/JS is combined into session based G3 files + +version 2.7.7 +- Adjusted for 3.0.1 release of G3 +- New color pack: blackhawk +- ADMIN: New sidebar position supported - top (new rules added to colorpacks) +- CSS: Some clean up for included colorpacks - CSS/image resources, sprite image optimization for sidebar position buttons +- Added session persistence for colorpack url parameter for demo purposes +- ADMIN: Prerequisites module check extended to make it more relevant when Root Page is allowed +- CSS: Sync positions of main menu and breadcrumbs when in alternative header layout format +- colorpack location validation has been disabled for now until issue is resolved + +version 2.7.6 +- ADMIN: "Large" Thumb sizes are removed from Aspect dropdown and managed via "Expanded Aspect Ratio (300px wide)" option +- ADMIN: New Thumb aspect ratio - Wide/HDTV (16:9), "Actual" aspect is supported in Expanded mode +- ADMIN: Root Page - new option "Show Gallery Description" +- Added check if Shadowbox is loaded so that theme's initialization JS does not produce hidden exception +- Added pointer cursor for clickable overlay area in Root Page until Minislideshow is loaded + +version 2.7.5 +- ADMIN: Full Slideshow RSS feed url now being used. This solves some issues with Flash loader and allows creation of custom playlists to be used in the root page +- Root Page: Fixed issue with Flash Slideshow not being loaded properly + +version 2.7.4 +- Root Page: Added "Click to Enter" to indicate clickable state +- Root Page: Quote is now taken from root album description field. If description is empty, slideshow content is centered. +- Added branding icons for "gallery 3" and theme/color packs. +- Fixed issue with page layout for calendar module. +- Fixed issue with URL parameters not being recognized in some server configurations +- CSS: Fixed aspect ratio for thumbs. Some css alignments optimization +- CSS: Turned back on borders for blocks in bottom aligned sidebar +- ADMIN: New option for Photo Description Display Mode - Overlay Bottom. !!!! Color pack's CSS rules affected. +- ADMIN: Maintenance section: Added "Reset IPIC Info" (if module is active) and "Purge cache data", some tweaks for "Reset EXIF Info" + +version 2.7.3 +- ADMIN: New option - Randomize Thumb Image +- Missing markup in rootpage.html.php +- Root Page - set size of the slideshow to auto so it can be managed via CSS +- Sync page.html.php structure with latest git changes +- CSS: Fixed styles for progress dialog when invoked from non-admin area + +version 2.7.2 +- CSS: Restored visible state of rotation operations for photos +- JS: To resolve issue with Opera OS, background image need to be set for #g-rootpage-link instead of roller object. Finalization JS for root page slideshow extended to clear background for overlay. +- Reenabled support for site status messages + +version 2.7.1 +- Root Page layout/css extended to allow click on the image while slideshow is still loading +- ADMIN: Some changes in setting's titles and help +- Fixed issue with meta data overlay not being shown for some title/meta combinations + +version 2.7.0 +- DEV: new url parameter support added - colorpack. Ex: ?colorpack= +- ADMIN: 2 to 5 columns layout is now supported. Flex column option moved into column selector. +- ADMIN: Added new mode for Description overlay in Album - Overlay Bottom (Static) - places description on the bottom of the thumb as static overlay. Metadata would not be shown. +- ADMIN: Metadata Display Mode for Thumbs introduced. [Hide metadata] merged into it. Metadata can now be merged with description. +- W3C: resolved some validation errors in album page +- CSS: !!! Colorpack !!! - adjusted to reflect changes to thumb description structure +- CSS: Changes for columns CSS (.g-column-3/.g-column-4) - moved to list level - several php files also affected +- CSS: Fixed issue with re-authenticate dialog layout +- CSS: Fixed issue search button in IE7 Compatibility mode for wind color pack +- ShadowBox module config settings changed to prevent flickering - enabled dialog animation. Slideshow timeout increased to 7 sec. Updated version of ShadowBox module is available. +- CSS: Deprecated styles for ShadowBox Ajax dialogs as they are not supported by the library in Core and color pack references + +version 2.6.3 +- ADMIN: New "Title Display Mode" added - Overlay (Static) +- CSS: syncronization between colorpacks. Some simplification + +version 2.6.2 +- Added support for initial background in the Root Page to be removed as soon as slideshow starts (requires imageblockex 2.1) +- ADMIN: Added option allowing feed selection for Root Page, Quote text +- Small changes in color pack and layout for Upload dialog +- Fixed logic in roopage.html.php to properly construct the link for navigation + +version 2.6.0 +- Support for root page added +- Added borders for main wrapper in Slate Blue color pack to accommodate centered layout +- Added JS to preload next/prior images in photo pages +- Added content wrapper for album grid to allow external CSS application - ex: center grid content +- ALERT! Improved rendering of admin panel. This would break admin panels for any modules which uses the same file by inheritance. Please download updated module distros. +- Fixed wrong reference to layout_non_ie.css file - not used +- Removed restrictions for displaying sidebar in satellite pages +- Fixed status message alignment in Upload dialog +- Fixed W3C validation error in Photo page markup +- "controllers" folder deprecated + +version 2.5.1 +- Fixed issue with relative path not being used when changing sidebar display mode +- ADMIN: Added support for Blend effect for page transitions +- ADMIN: Added check to identify module collision between FancyBox and ShadowBox +- ADMIN: New option "Keep Thumb Nav Block on the side" for Photo Pages +- CSS: small css changes for bottom aligned sidebar positioning +- CSS: Fix for dialog overlay div to properly position itself and prevent scrollbars to appear without reason +- CSS: slateblue color pack - make regular text grey +- CSS: set min height for bottom aligned sidebar +- CSS: Fixed issue with font size for dialogs in IE8 Compatability mode +- Custom layout for tag_block.html.php is depricated +- Some W3C Validation clean-up + +version 2.5.0 +- New colorpack - SlateBlue +- Added support for bottom aligned Sidebar +- CSS: opacity in .ui-widget-overlay (forms.css) set to 70 +- CSS: Fixed issue with misallignment of sidebar toolbar area and page header info +- CSS: Removed left pagging for g-photo element to properly align in the div +- CSS: Added thumb size restrictions for Image Block module +- Removed logic to use Shadowbox when showing Exif data + +version 2.4.9 +- ADMIN: Top Align Thumb Image option added - do not center thumb image in the view window. Useful for portrait oriented photos. +- ADMIN: Added a new Advanced option - Relative path to custom.css, if used - allowing inclusion of custom css override +- Ignore albums when building item list for Fancybox/Shadowbox Slideshow in Photo page. Fix issue with extra item added when start with first item. +- Fixed issue with not properly sanitized titles for links for Fancybox/Shadowbox Slideshow in Photo page +- Small adjustment to FancyBox slideshow navigation arrows +- Force min height requirement for H1/H2 elements +- Fixed spelling for g-thumlink -> g-thumblink +- Force size of the thumb link to fill crop area - situation when thumb image is smaller then view area +- Removed custom layout for User Profile page + +version 2.4.8 +- Fixed inverted state of "Disallow Search Engine Indexing (No Bots) +- Fixed JS syntax incompatibility in IE7/IE8 compatibility mode +- Fixed display of thumb title and photo description on hover in IE7/IE8 compatibility mode +- Fixed issue with Dialogs not skinned properly in Carbon/Wind themes +- Fixed issue with metadata for photo thumbs when Aspect Ratio: Actual Size and Title Display Mode: Bottom + +version 2.4.7 +- Fixed issue with some .g-block structures. + Fixed issue with avatar not properly aligned in comment section. + +version 2.4.6 +- Fixed some issues when strict error reporting is enabled for PHP +- Fixed background color for description for bottom Display Title Mode (greydragon colorpack) +- Added support for two new Thumb Sizes - Digital Ex and Film Ex - 300px wide thumbs +- Fixed issue with buttons in the block "jumping" out +- Added check in block view to verify that theme is defined + +version 2.4.5 +- Min G3 core requirement is set to v.41 +- Fixed issue with Exif dialog data integration +- Fixed issue with permission dialog +- CSS: Changes form style management. Fixed issue with breadcrumbs display in dialogs. +- CSS: Important! Colorpack files are affected +- Removed no longer required custom Login dialog logic +- JS cleanup + +version 2.4.4 + +Please drop GD themes folder before uploading a new version + +- CSS: screen.css - fixed layout naming change preventing proper display of authentification form when accessing protected areas +- CSS: Removed some temp files not required by the theme. +- Support for Fancybox added as alternative to Shadowbox +- Added support for CalendarView module + +version 2.4.3 +- Fixed issue with sidebar mode switch link being incorrect +- CSS: small style adjustment to neutralize default style effect for the search entry box + +version 2.4.2 +- Fixed issue some modules requiring scrollTo() function. +- Shadowbox is now optional. Special logic added to allow/disallow SB slideshow mode. If disabled, theme would not support full view for images to be in the popup window, new window will be used instead. +- CSS: Minor improvements for thumb layout in Overlay and Bottom Title Display mode +- ADMIN: Support for flex column layout added +- ADMIN Help: Small improvements + +version 2.4.1 +- Organize module support reenabled +- Register module support reenabled +- Partial support for Shopping Basket module +- CSS clean-up after dialog engine conversion - round #1 +- Fixed issue with Exif dialog not properly rendered + +version 2.4.0 +- Apply g-button style only to forms +- Fix to properly display videos +- Fix to account for changes in Comments module +- Favicon removed from theme's package +- Fixed uninitialized state warnings of the variables in PHP protected mode +- Album thumbs now have "lighter" background +- First draft to change how dialogs are handled - switched to standard code +- ADMIN: G3 Core version requirement is set to 32 +- ADMIN: Added missing settings initializations +- ADMIN: Fixed issue with Navigator position setting not being persisted +- ADMIN: Abstract admin form styles for reuse from regular module admin panels +- ADMIN: Added option to specify favicon location. If not specified default G3 icon is used. + +version 2.3.1 +- Hide Rotate operations for pictures since they are not supported by the theme +- Added use of common gallery.ajax.js. Fix issue with some Ajax based links. +- Layout fixes for Translation form overlay +- Changed CSS styling for buttons to provide unified coverage for buttons and links exposed as buttons. +- ADMIN: Fixed options group styles in Theme's Admin panel +- ADMIN: Advanced Settings for Thumbs and Individual Photo are moved into separate sections. +- ADMIN: New option - display meta data in Photo description section +- ADMIN: New option/fix - SEO indexing is now allowed by default. In order to prevent your site from being indexed, you can now use "Disallow Search Engine Indexing" option + +version 2.3.0 +- Adopted for Gallery 3.0RC2 changes (minor template adjustments, css class name changes, etc.) + +version 2.2.1 +- Redesigned Ready event handler for the theme to ensure proper ShadowBox initialization +- Added support for gallery_dialog() function call used by some 3rd party modules - some sync issues are solved by imposed delay of 1 second +- GPS module - better action list alignment in the sidebar + +version 2.2.0 +- Added support for slideshow mode in Photo Preview +- Fixed issue with Info side block - missing markup +- Fixed issue with Upload dialog layout with some resolutions/fonts +- ADMIN: Added option to hide breadcrumbs +- ADMIN: Added prerequisite check for Info module - required for Thumb meta data display + +version 2.1.7 +- Added support for missing images in the thumbs to allow proper operations with empty albums or albums with broken thumbs +- Some color optimizations +- Color improvements for "Add Image" dialog +- Better support for Basket module + +version 2.1.6 +- Wind colorpack adjusted to closer match default Wind theme + +version 2.1.5 +- Minor changes in ADMIN infrastructure +- ADMIN: added check for Kbd Navigation module +- ADMIN: New color pack - carbon + +version 2.1.4 +- Minor refactoring in paginator +- Added support for keyboard navigation module (http://codex.gallery2.org/Gallery3:Modules:kbd_nav) + +version 2.1.3 +- Sidebar restricted to item related pages (album, photo, movie, etc) +- Fixed issue with bottom border not applied to all instances of H1 tag +- Min footer size set to 4em +- ADMIN: "Photo: Description Display Mode" option added +- ADMIN: Added new maintenance operation - "Reset Exif Info" + +version 2.1.2 +- Fixed issue with Album thumbs - empty space under +- Thumb Item's Title Display Mode expanded to be applied to Item's description in Photo page +- More documentations in CSS files, some movements +- Some cleanup for Wind color pack +- Fixed font name typo in screen.css +- Fixed "Waiting" roller for Wind theme to match background +- Added "up" button in navigation + +version 2.1.1 +- Increased size of Add photo dialog for better display on some lower resolutions. +- ADMIN: New option: "Thumb: Item's Title Display Mode" - specifies how to display item's title in thumbs : Overlay Bottom Hide + +version 2.1.0 +- Custom Info Block to include item's description +- Image is centered when "Actual Size" aspect is used for thumbs +- Added support for color packs - included: greydragon, wind +- ADMIN: Improved error handling +- ADMIN: Disable submit button on click to prevent Dbl-click +- ADMIN: New option: Enable page cache - adds header marker for page to be cached for 60 seconds + +version 2.0.1 +- Enable BBCode/HTML support in individual photo descriptions +- Fixed main menu overlay issue when in top position +- Theme's credits moved into dedicated method +- CSS clean up +- Comments module layout enhancements + +version 2.0.0 +- Major redesign of the gallery flow. + - Added caption and metadata (Admin/optional) overlay for thumbs. + - Added description overlay in individual Photo view (look for "Learn More" marker). + - Based on Admin setting, thumbs are adjusted to fit Digital/Film/Actual size. +- Attempt to fix issue with JS load latency to prevent unhandled AJAX calls +- Added code protection for theme initialization procedure +- ADMIN: Thumb Aspect Ratio option. See help section for more info. + +version 1.8.2 +- Increased based font size +- Layout adjusted to match new settings +- ADMIN: New option - Place Login Link in the Header + +version 1.8.1 +- ADMIN: small adjustments in layout and help info +- 3rd party module's related CSS moved into contrib.css +- Adjust user profile screen to match new layout +- initial design for calendar module + +version 1.8.0 +- ADMIN: Major redesign of the layout. Help section added. +- ADMIN: New option - Show main menu for guest user +- Minimum required Gallery version set to 30 +- When configured not to use sidebar, theme is switched into 4 columns layout + +version 1.7.6 +- Organize module: CSS improvements +- Fixed issue with Chrome browser + +version 1.7.5 +- ADMIN: Added option to reset theme to default state +- CSS: some size adjustments for dialogs. Added minimum height for overlay to keep dialogs from shrinking. + +version 1.7.4 +- ADMIN: Theme Gallery 3 core requirement changed to v.26 +- ADMIN: Most of theme's settings are documented using element's title attribute - hover over to see a description +- Edit Permissions form redesigned and enlarged to fit more information + +version 1.7.3 +- ADMIN: Default states for the theme options are no longer being stored. Please save theme settings at least once to take advantage of a new functionality. +- Photo Navigator default position is set to Top Only + +version 1.7.2 +- Fix in Uploader dialog to keep items inside respected boxes +- Organize module support has been abandoned. Please use GWT Organize module instead. Added item in Prerequisites Checklist. + +version 1.7.1 +- CSS: Fixed visibility of the "Select Photo" button in "Add photo" dialog +- CSS: Fixed "ghost" line for navigation buttons when zoomed-in in IE +- Admin: fixed issue with prerequisite check not detecting deleted modules +- /views/support folder deprecated. Logic moved into Theme_View extension class for Theme_View_Core +- Theme Options Page management, generic Page code and BBCode processor moved into Theme_View class +- HACK: Info block is not displayed if there is no description for the item + +version 1.6.4 +- Admin: Added "Show Sidebar for Albums only" option +- Admin: added error visibility to the requirements validation list +- Small CSS adjustments: Fixed footer min size issue when no site credit info is displayed; added space between Credits in the footer and Footer text area. +- Few missing parts from last git sync + +version 1.6.3 +- Kohana 2.4 support +- Support for Movie files view +- Admin: Allow hide Sidebar Block header + +version 1.6.2 +- Admin: Page navigator option changed to use combobox +- Admin: Added option to hide item description in albums + +version 1.6.2 +- Small CSS adjustments. +- All operation dialogs should be visible now +- Context menu: "Rotate 90..." items are removed due to an issue with image quality affected by the operation +- Context menu: "Choose as the album cover" is now properly handled + +version 1.6.1 +- Admin: When allowed sidebar position is "Default Only", don't disregard selected Default position +- Adjust item's toolbar buttons to align properly when side bar position is fixed +- BBCode parser improved to support stripping of BBCode for Page title and breadcrumbs +- Fixed issue with main menu missing class declaration not allowing open dialogs +- Adjust context dialogs to properly show caption info +- Caption added to Full size Preview +- "New Comment" form styled +- Admin: Option to align main menu to the top and Breadcrumbs to the left + +version 1.6.0 +- Admin: Fixed issue with "Rebuild thumbs" option in theme admin +- Admin: Fixed issue with Item's toolbar not properly aligned in Quirks Mode +- Exif data dialog Layout changes +- Item context menu improvements: + - Fixed issue with submit logic + - Layout fixes for context menu dialogs + +version 1.5.8 +- Admin: First release of the Theme admin option. After theme installation, visit Appearance/Theme + Options to configure the theme. If you had older version of the theme, initial setup is also required. + The following settings are available: + - Rows per album page - theme uses 3 columns layout for pictures, therefore default page_size is computed in x3 increments + - Thumb size is restricted to 200 and therefore not available for administration + - Mark to build resizes/thumbs - allows force rebuilding of images + - Show/Hide top/bottom photo navigators + - Specify allowed and default sidebar position + - Administrator can now specify Copyright message to display in the footer + - Site logo is now default to Gallery 3 logo, but admin can provide a path to custom logo. + - Admin module validates Theme's requirements (Shadowbox module need to be installed/active) +- Sidebar session cookie is set to expire in 365 days + +version 1.5.7 +- Status message has been moved into header as popup to prevent obstruction of the main view. + jQuery is used to fade it out in 10 sec. +- Improved logic for dialogs on submit +- Theme related JS has been moved out of the page.html.php + +version 1.5.6 +- Fixed issue with tollbar buttons not properly aligned/shown when page is resized. +- Copyright info moved into DB. To change default settings add [th_greydragon/copyright] into VARS table. + +version 1.5.5 +- CSS fixes. +- Theme adjusted to be compatible with latest Git. +- Login links are moved into footer. +- Pagination module redesigned to support new structure of paging data. + +version 1.5.4 +- CSS fixes. +- Added support for Comments block. +- Improved support for Modal dialogs. + +version 1.5.3 +- Updated to match latest git. +- Exif menu customization is now part of the theme. +- Sidebar management button is disabled for current mode. + +version 1.5.2 +- Code, layout, css cleanup. +- New thumbs for buttons. +- First set of Ajax dialogs is ready and now operational: Login, user info, edit album, exit info. +- Fixed some browser related issues. \ No newline at end of file diff --git a/themes/greydragon/controllers/greydragon.php b/themes/greydragon/controllers/greydragon.php new file mode 100755 index 0000000..0ecfc4f --- /dev/null +++ b/themes/greydragon/controllers/greydragon.php @@ -0,0 +1,14 @@ + \ No newline at end of file diff --git a/themes/greydragon/css/base.css b/themes/greydragon/css/base.css new file mode 100755 index 0000000..735a999 --- /dev/null +++ b/themes/greydragon/css/base.css @@ -0,0 +1,322 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules - Main CSS ruleset + * + * Color rules for font/background/lines can be found in dedicated colorpack files + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* base.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +body { font-family: Arial, verdana, sans-serif; font-size: 0.9em; } + +a { text-decoration: none; outline: none; -moz-outline-style: none; } +a:focus, a:active, a:hover { text-decoration: none; outline: none; } +img { border: none; } +p { text-indent: 0; } +ul { list-style: none none; padding-left: 0; } + +h1 { font-weight: bold; font-size: 1.1em; padding-bottom: 1px; min-height: 1.1em; } +h2 { font-weight: bold; font-size: 1.1em; min-height: 1.1em; } +h3 { font-weight: bold; } +h4 { font-weight: bold; } +h5 { font-weight: bold; } + +.txtright { text-align: right; } +.g-metadata { overflow: hidden; } +.g-avatar { float: right; } +.g-hide { display: none; } + +.ui-icon { display: inline-block; zoom: 1; width: 16px; height: 15px; } +.ui-icon-first { background-position: -162px -178px; } +.ui-icon-first-d { background-position: -162px -162px; } +.ui-icon-prev { background-position: -178px -178px; } +.ui-icon-prev-d { background-position: -178px -162px; } +.ui-icon-parent { background-position: -226px -178px; } +.ui-icon-parent-d { background-position: -226px -162px; } +.ui-icon-next { background-position: -194px -178px; } +.ui-icon-next-d { background-position: -194px -162px; } +.ui-icon-last { background-position: -210px -178px; } +.ui-icon-last-d { background-position: -210px -162px; } +.ui-icon-signal-diag { background-position: -16px -178px; } +.ui-icon-info { background-position: -16px -144px; } +.ui-icon-plus { background-position: -14px -129px; } +.ui-icon-minus { background-position: -46px -129px; } +.ui-icon-note { background-position: -66px -98px; } +.ui-icon-closethick { background-position: -96px -128px; } +.ui-icon-left .ui-icon { float: left; margin-right: .2em; } +.ui-icon-right .ui-icon { float: right; margin-left: .2em; } + +/* base.css - Inline layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-inline li { float: left; } + +/* base.css - Header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-header { height: 90px; padding: 0; font-size: 0.9em; } +#g-logo { position: absolute; top: 8px; left: 16px; } + +.g-breadcrumbs { position: absolute; background-color: transparent; } +.g-breadcrumbs.g-default { bottom: 4px; right: 14px; } +.g-breadcrumbs.g-bottom-left { bottom: 4px; left: 21.4em; } +.g-breadcrumbs.g-top-right { top: 4px; right: 14px; } +.g-breadcrumbs.g-top-left { top: 4px; left: 21.4em; } + +.g-breadcrumbs li { display: inline; } +.g-breadcrumbs li.g-first { background-image: none; padding-left: 0; } +.rtl .g-breadcrumbs .g-first { background-image: none; padding-left: 0; } +.g-breadcrumbs li.g-active { padding-right: 0; } + +#g-header .g-message-block { position: absolute; z-index: 10; min-width: 30em; padding: 0; right: 20em; top: 34px; overflow: hidden; font: bold 9pt Arial, verdana, sans-serif; text-align: center; } +#g-header #g-login-menu { position: absolute; top: 0.2em; right: 1em; background-color: transparent; display: none; } +#g-site-status li { padding: .3em .3em .3em 30px; } + +/* base.css - Main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-main { display: block; margin: 0; } +#g-main-in { display: block; position: relative; } + +#g-column-center, #g-column-centerleft { padding: 6px 6px 6px 10px; } +#g-column-centerfull { padding: 6px 12px 6px 10px; } +#g-column-centerright { padding: 6px 10px 6px 6px; } +#g-column-left { padding: 6px 4px 6px 10px; } +#g-column-right { padding: 6px 10px 6px 4px; } + +/* base.css - Footer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-footer { padding: 6px 0 6px 0; zoom: 1; font-size: 0.9em; } +#g-footer ul { float: left; padding: 0; text-align: left; } +#g-footer li { padding: 0 0 2px 0; } + +#g-footer #g-login-menu { position: absolute; bottom: 0.5em; right: 1em; background-color: transparent; display: none; } + +#g-login-menu li { display: inline; padding-left: 1.2em; } +#g-logout-link { float: none; margin-right: 0; } + +#g-copyright { font-size: x-small; } +#g-footer #g-footer-rightside { float: right; text-align: right; margin-right: 1em; } +#g-credits { margin-left: 14px; margin-right: 14px; } +#g-credits li.g-branding a { float: left; } +#g-credits .g-first { display: none; } +#g-gallery-logo { display: block; width: 70px; height: 18px; background: transparent url('../images/gallery.png') no-repeat; } +#g-theme-logo { display: block; width: 70px; height: 18px; } + +/* base.css - Mini Mode ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.viewmode-mini #g-header { height: 2.3em; } +.viewmode-mini #g-footer { display: none; } + +/* base.css - Pagination ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-paginator { display: inline-block; width: 100%; padding: 4px 0 0 0; zoom: 1; } +.g-paginator li { display: inline; float: left; margin-left: 0; zoom: 1; } +.g-paginator a { padding: 0; } + +.g-paginator .g-pagination { width: 80%; font-size: 0.8em; } +.g-paginator .g-navigation { text-align: right; width: 20%; } + +/* base.css - Album grid ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-album-grid { padding: 6px 0 0 0; width: 100%; display: inline-block; margin: 0px auto; } +#g-album-grid .g-item { position: relative; float: left; margin: 4px 2px 4px 0; min-width: 212px; zoom: 1; } +.g-extended #g-album-grid .g-item { min-width: 314px; } +.g-column-2 #g-album-grid .g-item { width: 48%; margin-right: 0; } +.g-column-3 #g-album-grid .g-item { width: 30%; margin-right: 0; } +.g-column-4 #g-album-grid .g-item { width: 23%; margin-right: 0; } +.g-column-5 #g-album-grid .g-item { width: 18%; margin-right: 0; } +#g-album-grid .g-item p { text-align: center; } +#g-album-grid h2 { position: absolute; top: 164px; left: 12px; width: 150px; font: 100%/100% Arial, Helvetica, sans-serif; } +#g-album-grid h2 a { display: block; margin-top: 4px; font: bold 0.8em Arial, Helvetica, Verdana, Sans-Serif; letter-spacing: 0.1em; text-transform: uppercase; min-height: 2em; } + +/* base.css - Thumbs : Common ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-thumbslide { font-size: 0.9em; width: 208px; min-height: 139px; padding-top: 6px; padding-left: 6px; overflow: hidden; text-align: left; } +.g-thumbtype-sqr .g-thumbslide { height: 208px; } +.g-thumbtype-flm .g-thumbslide { height: 141px; } +.g-thumbtype-dgt .g-thumbslide { height: 158px; } +.g-thumbtype-wd .g-thumbslide { height: 120px; } + +.g-extended .g-thumbslide { width: 308px; } +.g-extended .g-thumbtype-sqr .g-thumbslide { height: 308px; } +.g-extended .g-thumbtype-flm .g-thumbslide { height: 207px; } +.g-extended .g-thumbtype-dgt .g-thumbslide { height: 233px; } +.g-extended .g-thumbtype-wd .g-thumbslide { height: 176px; } + +.g-thumbcrop { overflow: hidden; position: relative; width: 200px; min-height: 112px; } +.g-thumbtype-sqr .g-thumbcrop { height: 200px; } +.g-thumbtype-flm .g-thumbcrop { height: 133px; } +.g-thumbtype-dgt .g-thumbcrop { height: 150px; } +.g-thumbtype-wd .g-thumbcrop { height: 112px; } + +.g-extended .g-thumbcrop { width: 300px; } +.g-extended .g-thumbtype-sqr .g-thumbcrop { height: 300px; } +.g-extended .g-thumbtype-flm .g-thumbcrop { height: 199px; } +.g-extended .g-thumbtype-dgt .g-thumbcrop { height: 225px; } +.g-extended .g-thumbtype-wd .g-thumbcrop { height: 168px; } + +.g-album .g-description strong { padding-left: 16px; } + +/* Force size of the link to fill thumbcrop */ + +.g-thumbcrop a.g-thumblink { display: block; position: relative; min-width: 200px; } +.g-thumbtype-sqr a.g-thumblink { min-height: 200px; } +.g-thumbtype-flm a.g-thumblink { min-height: 133px; } +.g-thumbtype-dgt a.g-thumblink { min-height: 150px; } +.g-thumbtype-wd a.g-thumblink { min-height: 112px; } + +.g-extended .g-thumbcrop a.g-thumblink { min-width: 300px; } +.g-extended .g-thumbtype-sqr a.g-thumblink { min-height: 300px; } +.g-extended .g-thumbtype-flm a.g-thumblink { min-height: 200px; } +.g-extended .g-thumbtype-dgt a.g-thumblink { min-height: 225px; } +.g-extended .g-thumbtype-wd a.g-thumblink { min-height: 168px; } + +/* base.css - Thumbs : Overlay ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-thumbslide .g-description { display: none; position: absolute; left: 6px; top: 6px; min-height: 24px; width: 184px; overflow: hidden; z-index: 3; text-align: left; padding: 2px 8px; font-size: 0.85em; margin: 10px 0 1px 11px; } +.g-extended .g-thumbslide .g-description { width: 284px; } +.g-thumbslide:hover .g-description { display: block; } +.g-thumbslide .g-description li { display: inline; padding-right: 0.8em; } +.g-thumbslide .g-description .g-title { display: block; font-weight: bold; font-size: 1.1em; letter-spacing: 0.1em; text-transform: uppercase; padding-top: 3px; } +.g-album .g-thumbslide .g-description .g-title { padding-left: 24px; } + +.g-thumbslide .g-description.g-overlay-top { display: block; } +.g-thumbslide .g-description.g-overlay-bottom { display: block; top: auto; bottom: 6px; margin-bottom: 10px; } + +.g-thumbslide .g-metadata { display: none; position: absolute; left: 6px; bottom: 6px; padding: 2px 4px 2px 10px; width: 186px; margin: 10px 0 11px 11px; } +.g-thumbslide .g-metadata li { padding: 0; margin: 0; font-size: 0.9em; } +.g-extended .g-thumbslide .g-metadata { width: 286px; } +.g-thumbslide:hover .g-metadata { display: block; } + +/* base.css - Thumbs : Expanded View mode ~~~~~~~~~~~~~~*/ + +.g-expanded .g-thumbslide { font-size: 0.9em; width: 208px; min-height: 139px; padding-top: 6px; padding-left: 6px; line-height: 1.2em; overflow: hidden; } +.g-thumbtype-sqr.g-expanded .g-thumbslide { height: 238px; } +.g-thumbtype-flm.g-expanded .g-thumbslide { height: 171px; } +.g-thumbtype-dgt.g-expanded .g-thumbslide { height: 188px; } +.g-thumbtype-wd.g-expanded .g-thumbslide { height: 150px; } + +.g-extended .g-expanded .g-thumbslide { width: 308px; } +.g-extended .g-thumbtype-sqr.g-expanded .g-thumbslide { height: 346px; } +.g-extended .g-thumbtype-flm.g-expanded .g-thumbslide { height: 244px; } +.g-extended .g-thumbtype-dgt.g-expanded .g-thumbslide { height: 270px; } +.g-extended .g-thumbtype-wd.g-expanded .g-thumbslide { height: 214px; } + +.g-expanded .g-thumbslide .g-description { position: static; display: block; } +.g-expanded .g-thumbslide .g-description li { display: inline; padding-right: 0.8em; } +.g-expanded .g-thumbslide .g-description .g-title { display: block; font-weight: bold; font-size: 1.1em; letter-spacing: 0.1em; text-transform: uppercase; } +.g-album.g-expanded .g-thumbslide .g-description .g-title { padding-left: 24px; } + +.g-expanded .g-thumbslide .g-description.g-overlay-bottom { width: 192px; } +.g-expanded .g-thumbslide .g-metadata { bottom: 10px; } +.g-expanded .g-thumbslide .g-metadata li { padding: 0; margin: 0; font-size: 0.9em; } +.g-expanded .g-thumbslide:hover .g-metadata { display: block; bottom: 40px; } + +/* base.css - Photo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-item { float: left; height: 100%; width: 100%; } +#g-photo { padding: 6px 0 6px 0; text-align: center; float: left; height: 100%; width: 100%; } +div.g-resize { position: relative; left: 50%; float: left; padding: 5px; font-size: 0.9em; } +div.g-resize>a { float: left; overflow: hidden; } +div.g-resize>a img { float: left; } + +div.g-resize .g-description { display: none; position: absolute; left: 5px; text-align: left; padding: 10px; } +div.g-resize .g-description strong { display: block; margin-bottom: 5px; text-transform: uppercase; } +div.g-resize .g-description.g-align-top { top: 0px; margin-top: 5px; } +div.g-resize .g-description.g-align-bottom { bottom: 4px; } +div.g-resize .g-description.g-align-static { display: block; } +div.g-resize:hover .g-description { display: block; } + +div.g-resize .g-more { display: block; position: absolute; right: 16px; padding: 4px 8px; } +div.g-resize:hover .g-more { display: none; visibility: hidden; } +div.g-resize .g-more.g-align-top { top: 16px; } +div.g-resize .g-more.g-align-bottom { bottom: 20px; } + +.ul-table { text-align: center; margin: 0px auto; padding: 0; list-style-type: none; clear: both; } +.ul-table li { float: left; text-align: center; } + +#g-info { display: inline-block; width: 100%; } +#g-info .g-description { margin-top: .4em; margin-bottom: .4em; padding: .5em 1em; } +#g-movie { padding: 6px 0 6px 6px; position: relative; } + +#g-item a.g-movie { display: block; margin: 0 auto; } + +.g-description .g-metadata { padding: 0.4em 0 0 0; font-size: 0.8em; } +.g-description .g-metadata li { display: inline; padding-right: 1em; } + +/* base.css - Sidebar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* base.css - Sidebar : Common ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-block { margin-bottom: 4px; padding-bottom: 4px; position: relative; clear: both; } +.g-block h2 { padding: 6px 4px 6px 8px; font-size: 1em; } +.g-block-content { margin: 6px 6px 0 6px; display: block; zoom: 1; } + +#g-column-top .g-block, #g-column-bottom .g-block { float: left; clear: none; width: 240px; margin-left: 10px; } +#g-column-top .g-toolbar, #g-column-bottom .g-toolbar { margin-bottom: 0.5em; } +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { display: none; } + +/* base.css - Sidebar : Buttons ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-viewformat { z-index: 5; position: absolute; padding: 0; top: 6px; right: 10px; } +#g-viewformat li { float: left; margin-right: 2px; } +#g-viewformat span { display: block; width: 17px; height: 15px; line-height: 1px; text-indent: -900em; background-repeat: no-repeat; } +#g-viewformat .g-sidebar-left { background-position: -128px -210px; } +#g-viewformat .g-sidebar-top { background-position: -148px -210px; } +#g-viewformat .g-sidebar-full { background-position: -168px -210px; } +#g-viewformat .g-sidebar-right { background-position: -188px -210px; } +#g-viewformat .g-sidebar-bottom { background-position: -208px -210px; } +#g-viewformat .g-sidebar-left:hover, #g-viewformat .g-sidebar-left.g-current { background-position: -128px -225px; } +#g-viewformat .g-sidebar-top:hover, #g-viewformat .g-sidebar-top.g-current { background-position: -148px -225px; } +#g-viewformat .g-sidebar-full:hover, #g-viewformat .g-sidebar-full.g-current { background-position: -168px -225px; } +#g-viewformat .g-sidebar-right:hover, #g-viewformat .g-sidebar-right.g-current { background-position: -188px -225px; } +#g-viewformat .g-sidebar-bottom:hover,#g-viewformat .g-sidebar-bottom.g-current{ background-position: -208px -225px; } + +#g-view-menu { position: absolute; top: 6px; right: 106px; height: 16px; z-index: 5; zoom: 1; margin: 0 0 6px 0; padding: 0 0 4px 0; } +#g-view-menu.g-buttonset-shift { right: 6px; } +.g-toolbar { margin: 0 0 4px 0; } +.g-menu { margin: 0; padding: 0; text-align: left; } +.g-menu li { display: inline; } + +.g-menu-element, +.g-menu-link { display: inline; float: left; margin-right: 4px; background-repeat: no-repeat; background-position: center top; } + +.g-buttonset .g-menu-link { text-indent: -99999px; width: 22px; height: 15px; overflow: hidden; } + +#g-slideshow-link { background-position: -103px -210px; } +#g-slideshow-link:hover { background-position: -103px -225px; } + +.g-fullsize-link:hover, #g-exifdata-link:hover { background-position: left bottom; } + +/* base.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-quote { float: left; width: 300px; padding-top: 6px; font-size: 110%; } +#g-rootpage-roll { float: right; text-align: center; z-index: 1; position: relative; width: 800px; height: 540px; overflow: hidden; } +#g-rootpage-link { z-index: 10; position: absolute; height: 540px; width: 800px; top: 0; left: 0; cursor: pointer; } +#g-rootpage-roll span { z-index: 50; display: block; position: absolute; right: 16px; padding: 4px 8px; top: 20px; cursor: pointer; font-size: 0.9em; } +#g-rootpage-roll.g-full { margin-left: auto; margin-right: auto; float: none; } +#g-rootpage-slideshow div img { border: 0; } + +/* base.css - Large toolbar icons support ~~~~~~~~~~~~~~*/ + +.g-toolbar-large .g-buttonset .g-menu-link { width: 26px; height: 22px; } +.g-toolbar-large h1 { line-height: 24px; height: 24px; } +.g-toolbar-large #g-calendarview-link:hover { background-position: top center; } +.g-toolbar-large #g-viewformat { top: 9px; } + +.g-toolbar-large .g-navigation .ui-icon { width: 23px; height: 22px; } +.g-toolbar-large .ui-icon-first { background-position: 0px -240px; } +.g-toolbar-large .ui-icon-first-d { background-position: 0px -263px; } +.g-toolbar-large .ui-icon-prev { background-position: -23px -240px; } +.g-toolbar-large .ui-icon-prev-d { background-position: -23px -263px; } +.g-toolbar-large .ui-icon-parent { background-position: -47px -240px; } +.g-toolbar-large .ui-icon-parent-d { background-position: -47px -263px; } +.g-toolbar-large .ui-icon-next { background-position: -70px -240px; } +.g-toolbar-large .ui-icon-next-d { background-position: -70px -263px; } +.g-toolbar-large .ui-icon-last { background-position: -93px -240px; } +.g-toolbar-large .ui-icon-last-d { background-position: -93px -263px; } + +/* base.css - Upload dialog ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-status li.g-success { background: url('../images/ico-success.png') transparent no-repeat .4em 50%; } +#g-add-photos-status li.g-error { background: url('../images/ico-error.png') transparent no-repeat .4em 50%; color: #f00; } diff --git a/themes/greydragon/css/colorpacks/blackhawk/css/colors.css b/themes/greydragon/css/colorpacks/blackhawk/css/colors.css new file mode 100755 index 0000000..5ab71d0 --- /dev/null +++ b/themes/greydragon/css/colorpacks/blackhawk/css/colors.css @@ -0,0 +1,169 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: SlateBlue + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #101010; } +body { color: #8C8C8C; background: #101010; } + +h1 { border-bottom: #424242 1px solid; } +a { color: #6392CF !important; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-header { border: #424242 1px solid; } +#g-header .g-message-block { border: 1px #888 solid; background-color: #AAA; color: #000; } +#g-main { border-left: #424242 1px solid; border-right: #424242 1px solid; } +.viewmode-mini #g-main { border-bottom: #424242 1px solid; } + +#g-footer { font-size: 10px; border: #424242 1px solid; } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top, #g-column-bottom { border-left: #424242 1px solid; border-right: #424242 1px solid; } +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info .g-description { border: #424242 1px solid; } + +.g-thumbcrop { border-color: #424142; } +.g-thumbslide, .g-album .g-thumbslide { background: #212021; border-color: #424142 #000 #000 #424142; } +.g-thumbslide .g-description { color: #fff; border-top: 1px solid #424142; border-bottom: 1px solid #424142; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-album.g-expanded .g-thumbslide .g-description { background: transparent url(../images/ico-album.png) no-repeat 8px 4px; } +.g-album .g-thumbslide .g-description { background: #1E1E1E url(../images/ico-album.png) no-repeat 8px 4px; } +.g-thumbslide .g-metadata { border-top: 1px solid #424142; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-expanded .g-thumbslide .g-metadata { border-top: 1px solid #424142; background: #1E1E1E; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { background: #212021; border-top: 1px solid #424142; border-left: 1px solid #424142; border-right: 1px solid #000; border-bottom: 1px solid #000; } +div.g-resize .g-description { color: #fff; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #999; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #999; } +div.g-resize .g-more { border: 1px solid #999; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #888; padding: 5px; background: #555; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block h2 { border-top: 1px solid #424142; border-left: 1px solid #424142; border-right: 1px solid #000; border-bottom: 1px solid #000; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #424142; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #101415; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #101415 url('../images/section.png') repeat-x; } +#sb-counter a { color: #fff !important; font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #101010; border: #303030 1px solid; } +#g-add-photos-status { background-color: #101010; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #888 1px solid; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile .g-avatar { border: 1px solid #888; background: #555; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li a:hover { color: #000000; background-color: #303030; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #303030; border-bottom: #000000 1px solid; } +#g-site-menu li ul { border: #000000 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #212121; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #303030; } + +#g-site-menu.g-bar { border: #000000 1px solid; background-color: #212121; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #181818 none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #303030; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #303030 1px solid; } +#g-exif-data .g-even { background-color: #404040; } +#g-exif-data .g-odd { background-color: #303030; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #424242; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #888; background: #555; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #424242; color: #8C8C8C; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #424242; } +#g-comment-form { border: 1px dotted #424242; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #8C8C8C; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #424242; color: #8C8C8C; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background: url(../images/section.png) repeat-x; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #424242; } +.ui-widget-content { border: 1px solid #303030; background-color: #101010; color: #8C8C8C; } +.ui-progressbar .ui-progressbar-value { background: #424242; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/blackhawk/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..0996045a0978d28e0ac2fb83a634bc349cfab407 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/colorpack.png b/themes/greydragon/css/colorpacks/blackhawk/images/colorpack.png new file mode 100755 index 0000000000000000000000000000000000000000..96f5372f4206cfcf9cfd7ea80c5c41e1245b9ad0 GIT binary patch literal 307 zcmeAS@N?(olHy`uVBq!ia0vp^PC(4h0VEhof4a2+DVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jgCNYfV`BDOprB-lYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fSMh32(UKt&ro zT^vI+&L?{;mM~cIce#K=?~ctv$NZT;NqR6EC@;!)_GOqXBIUSG`%~|!`wlUThD?G?n}?5guf9T`!_}^bUH>g&KE8K4J@x&IL`LrB|Nk%Aev?JHP{&b>_2nP!J1na=ynEAS3j3^P66eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/ico-error.png b/themes/greydragon/css/colorpacks/blackhawk/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/ico-help.png b/themes/greydragon/css/colorpacks/blackhawk/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/loading-large.gif b/themes/greydragon/css/colorpacks/blackhawk/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 zcmbW6c|278!}n*-IkPWjhBOHchNdh{wkBC-?1V<*vZSmfT96{Cj1RMDH|I4McL~yX!;bg|+TWD*sLFDo~O26dHLjAqN{QVf=`@#Yk-hti``ww~h zY3)0>=MX~aJA}h5Kc(^e>%V^zfm&iP(*5=o1YEA#Ki?Lt@gVHLL`2oQs0nR6*lDE! zK(PrQcocf!jjqshu=~E$S78wg&9YBlbZp%f-FZ6X31%HrS@;O?lU{ioOxm?OK%oN@ zZb&&EcT}B3cEUJlktk_`wWzq`kQPYbu>m~qOa>E|9qDXIK^N>SVp2)DX@WR+By?t+vw27R1Tu1djF8 zmfShbFiV!VxmMbn$x>ayvH7qV*uBo4v6=f326Gja40mpX)dYEgeAedLE^|kklPz&Y zZP=^C(shtVq9_R!ou{Wz9{l4I5>aK=9=YP#k;=zanhbs#rG31#(D=YXqm+mHpO@Gz z6yGQ4z5Ani?Zc|u5giDZJYEv;WoyGmuS?zvSA+)Hl4QvBQ2&b`;UP0E1+Vl;H|Z#- z(b28BYgJwS{Nozmdj<9_4GYhj4p;N+pTRK`Id^ap&CaifBr+qi@ZssvL+A5W$-1`v ztNY_LIngADoo^7dvcL9JxEcfaj9o~7M%-op9q7sqPlebv+%p@Ml>7mk z;!ljsH@#}kSsT8ueVOZ*v#$)Rv<&J$K#_v|3q>&2TtLUB4va}^E6K&Ka%OIx%JENX z2tx~|U2`jLv>IMIVI5be>b0Rzy&ZVZ(HK`><|P*6rB2v?>KIunJsktHfSA}gk_IWs znGms_db%hjgK3kKgVwU9(-?gk?0NkUXS(GU3yT+jlnC}UN0XkvCeFk7K2HfUK5#5vQ~JF3XahVpJ^=CXUiES@cL|@`(s_*V^z438&pk!;I!%c%*X+x_ttod-2McHOLGgv5U4bQZH=k>B5snG{M3jXMO%ddlL2)A^n;*e^&{As(OgwSY6R3Lz1l*rdx>JY}FnZAWar zElN7^^SzGfi2TvH$pl6`OIa_37i+O~RevZAiKB?N$xzJsTW|D+9ZP-@ z6Mdaks$;Cn7pGeN!uF(@(zxzt4ExJxRxjaJwZ|*7h01th&z!G;9f>W@QPrJM4t3Lm zRgKUxlH$zaRj-QAqwFfOj1JL)UxaOH#?6MkXQJElRAd9^iV_8M;2%KyZb`hV1m?=n z+e_0!Sh7;q7qcvb4RFKz`vONIJ$BA+VtMKAN($~kt)t+D?`2$**57(nmv*>w|dqG3Q4hU-2o;O*!&%9|GFf%2h6;PQBVw5&bI9SYh?& z(Q6H>rmgYOpC3+$V+d;;TASWa_xy%d{sN375WguJYayedh)^;cu{z#h{*hB#OqCZe zeC1%(?hW7j#e%QN`?&l=&lk5~->np9@vMF-U!V|c){vfkel!-1RV$Z-3W)l1A}o;@ zTo8<=cqtv{VntkN$p2&3YFUTG&Uk8YuKjA+X6l3#RbxO|Yt+!cDDJ>#FLBBjx03YL zn}0E2B)&4jewALC#VFiGa^yl*ti9q4l+1ui$R^8uKA~Y6Zo{D@$aN;hD}LR}TwMG= z(azr(cJdiSsJ+yI%i%~trJ=SuhK1ISvK}d*OM@mdeK9`0dMUgQ=+<~xiO?3WMP^3yc zQ=Px_oHjj5 zW~1%+okQ)$GLuWlCRQk!gkCFU9D9d9W2Z!T{XFWcREg#4H9tulSH$VN%i6i#^X~PE z;Y<7y+kD&l%g$DWZ-dkUvD`y6Suyd1P*j{~3%x#eB+~1RE1(`)rYh8q8+J4l$uJb}y@6u7_dPyY zF!uf9c+b^Mht!BI+DWLA+j3i|MIoLt4IaK_#HV#{o_6}4XAA#C&hT%JREZQ;U0q8#whiK-h6W4;Dx?sAc1Brw56Driw|c}T)TX2Y^0UoNMeoTpp~8&k)+8OMWpC%P`zT;KjngI;Cu{dRaUt>##%Uz3V3-S;{KBe`K)-sfutrztheVZkn`IJM@YF^t zwN=sCTew31iXt$ z(?yADm*~v8dZX&dU{|C^eCNZWZ+T8J3!#gF zTxhS08P(0zlkhfll13rJ)Zmb{BwPX+7p@5ssQa}}!O^j635f|&Tw-Q^OtuOYmsEn| zdFR6v5%X9sig%#`V_B(8%*9>d;VPg8CJ}{0weaFIp+fN<3Oc3lul)IM{WJ#9c<`Ps z&@UWAfEesNWZG5QB6!kVpI$sqJ>I= zXl-Tl3yoK!Z-d{xumOIInR+Dh*;4*|8JBk^o9%n|f=yl7{r}d_4Kt}f{c5>_!IV^G znZ<;o)Wb{@>wR`8G}rFfy|@`@mrW&MmrQI1w(t32&>Bksz!<53^*Js#d)DqZS! zzaO{Xs;~LD&F6aoEY7*gmnO`(TvVsmjNelE@IfKPWrIW-#G4rH6aUA9!-@ zd0Xb!Vv5L3@N5N`74N%qWvJgsW6+-qms>*A?~4-BgI^moEm8q`u<_qazxnh03A|r6 zgJlI~K63rzD54DoU8LrC4Db5R>j<|cgiSm$o}XVu!uLGhz18Dq^G0*ZMATDj{sdBA zSLk{)a<=A=C&#D7OffQBiIa~&7{Q3x(Ifvh{i(#~bV@YvVqpLQ{$^ zwp&5l*aI2J*Umn0nqBYQ_T&&Jv>V$&&FznSfbNZJ#Q=d-1811n+q}qr#N+y( ze&B60^*ev6CH|xQ`EH5p9@D;zVymUkIks}49(wo;11lP(``OrY=ud)!wrZMn&1H$^ z?RR>TdbV7pafu&RJ~@66M?3%?4pRjP&N!-<761x1pvf5-VC-5CC^4J6os7xAxa6p! z&y^8)#LO!vN|eDeXLLnjL8e0$f(Vrr^YB;5bvIOqXaYXQgoLi|?TV#PQU*r;$I49r zGvKby6s1W5pfC&67aMC@(Th(=(8Bk3dH{rKh02fk4v=|m;47c8>CcBUH=!^jMM^n^ zQSI`aA>VhF9UpxPl6~0uNbF<`p)8kvc(WN&9E9q}?~%P`2oOaw82Z2Rr*dtKLO~t%ez-wJz#G(Xxa!s|r%z3Ne4Ym;>Y4Z;%E`_c-5-RC@Nf3lm zpXpCaaf$V4PasGac*xdHNs|_*4!8rrXf^DN)gNlsV=_#GfKUAA?UfrJZ$$KO^r3{qFF$PVE7sLKOp1)?T9M<0utG z6!d9{~%yB)nyyVx7@56NHqTrN0z7t`z2k) zam60RHy(LME?um6nWz5`O8DKznGh~J2a%SZ zY>dvoR4B4Sq2f#dej-#QQX!H`xd5JkzELm!JCJ*C-6bxkOrahLy!oJe8Fbvlhz^=M zjDOk*peDv~czx2)5Owm-*qd?cCiI7weXpL+%Z_=mt9I*P=i3G&!~5yb5rVA#yi&;j z0&;m&^4o|6iA!{^f#6s;M;fIO94w9ocWb2kdAygjClwfPMXWH$GJim|LNYDfKXoC_ z^A!fvm86pd6_zo3oG)iz`J-&Ng@!`2?*3#fKWKbsEdi%j;CcIp1|jS1Se5Vm)Xn4i zm+isLD_P=-;>w+MRtw6H@?2}ZY1{TaHH5R*_cfbO>-Pt8-g)=0_p?;puZ_CfuCev+ zK(;g-P>yx!(0IaVkDh>zo{Hw*aD6w?L%^CSS+$SE+@dn9_!m&%EPlPB4#Vijp@j`c zH&<(=B0qebc`}|i3Uj|sc=%m1Q#{qMTJ_$czkpnle`P(88EW>%RD4*BmB8nA(Pl86 z2&_5FbA6PC=rPRIWfa9?I9Lc+XVnq`kQ)Yp1&FvBK zaVuZe0fsbaUAu>gBHt%LEH7G_p{~Iw6#}&)r36WB5uBmbz!Yb0>j-mKkmrdn3I(ld zFLP;GujD{%Y7#eFjl?cXzf$zD48p>jSA!HTV)hh_Ue6-^L*HMfl@-KAlZuDb5@qly zGog4LP9b=?!9T))^ei~pu}QltK-#Q`(0!GiIQ7VgC6_0@cfubR0rK+fS-c zqtnd5gm_8{(}haKn^EGACuajL_(Cq>I4UOF$Liqas_L5BYjxM_8ycH#G`BbbAo>J{ z2xhea$8iufLXSvzaQjANZ||Tk`oYl_!b1qxuG{}W(ug0QozbC)Tkp)GT8)YbVBh<% z-@gC&^It!IEg?X>ymgJJJ?18ZTaz#VK^UAoGjLEuu8@{e^y&*xF0rI3nxsou0%q?S zMW-b!+>?P=sh{U^!5rtMW_4aJq_}V0wLRNpKpIxz>3RzVeT_XiGdOKOr^0P#4K7w> zne%g~8}hLJB3AO{O~>O;Ts~Z}t=7&Fo5bv@yYJF+;Og|0Ax17hT)Xj{!{9`!)hT?SJRdg)0>H(Py%PN4pSFN=! z0`v(6FYR%S_eN`@)nRF1wW=iJ{<1v{U7VaWHQJ&;lqe~L<@m$ZAL)dhDz5CGwSW1( zRmA7>8As0klo5&xZiX^QG9|3DbJ1;N-%SFCd8cWmS0C#hb}x z97q2UaRrF7m6ni{tt5jG(mH^EKmEKTk^OEIV2_tl;!Y&3`-bs?s)$?>%(4|trD+r} zxJbnIFL;Q`r0~+$GJ~hnsMiL#UO(lJ&3HSEN6?Xu2VLm`D@FDck0c}VL3*VBoc7+hnTBFO}`E0aOuL zS{7bATp2tofUtu_dBx`?=W4HMl`-h>vnw%=k+pcLy)XZ~zI3^PH@vs=0t+TTZ_c_n zRAO^X|3zdm@8S7*Q+L&Urs~5N{Tc;v^UhVnwDbKw_92d?-GxUI#!sx4Dc_nKQ=cRB z8_rCQqbr!pTUINdkHP5#jrZNCn|&ZMOHs5pcn;^`grD==eKTVpR});*QAIC-N7@YW zc-o?DEQFJX?vP5v2S;(iFIH$pRi{FCc5e~iW^jTf)Ijq@Ev4^QTOTQWD=pd*dB|fV z4lHc-5r;f!2J*chbl3_s>bCw{H3#h}lsFn7LEb}P7$Qa~F#CM~2FT{4eQN<`lSuGs z5K#nT%zI=N&^wzX5yot>cPv#+s6@plmNSx!aucVLy3#hnDcGoTz-UA63h#uDtK~^? z1Vv#X*2VmrBLUqv$BhZo<<21W@)(E&jNdEq83e^QKky2c4Fg`+YPdN8ijpzBW$>}B z$N*)bDzcC&+>?Wf+QSuuyv}tyvTr+>mpe#j%$)iwe*HAiSK)P*~gkK0F2RkZVIcL1LP^%rp+8Z+pGEiSPJ4W$pSYnB`wY5rO@F1=sH(7A{|HI|@DQvNNV(|3d_ zTMO)NT=QQ=8e?(33EPp7h)OIwvKKMC0x(WM|8&em064EhSBir5=BkTi#N$SC@xU_? zF43LR67gPdj3PGRNez>_F7iP+nhE18Hpj!;sH z#`Se4APDPOg)v5ym6Ne&&4VYA9XHrqh!7DDfS|24_k^?j^cv(#WDN{*i{}6^f;A-v zanjjbAqKHd#S{;%nh8x`h49Pd?)gRsx9i*Z_@cdD!8vFAEiuOf%9it|_Wvi4(d`3V z1Ap7N4zDP8H=yEr1iAG=l0CnnqXZ0WgTsq@_9`a5b7!iPJ&4I6%dW=g>m z2q#Z51>vUXL;^ZRH9Aeo6g)%8VjfLHMS>tDI4dZeR+ewIJYMccU8(#pM{m8^ruKW= zym-q5r1kb*>sF~_Q|=Cd_id@*VcqJXUR<{uflAHP!;STlyGfJO$tT*>S=#t5w}ol_ z!P$qe@zWRdc82)6EO?5M5RFM+tUTA5KvA*%TOoRnjrCFRWHVp{4}g`Nm)IQswNfZ+ z1xl9>r&&bjXe!YCVtdV37w)&^Ol?+XAxbPxm3i?Qrbq#cA?doIvu>co$O5uRuD{}Z z)uS%bvq-Yf>7?VOhN$ipZ(J*FpNCpJO$>NO`;|xY2s!-vyi9oK(-rF9f*v;|+|Kj* zp=;_)Be_n+;;w5>bs1{z)w}HWJ_)^5ELrvZc%d5sfH3q^6 z=EIsW9`9rTEVR2ovQZ03z*?`hT3)DLTsp!N?&3Co)V@d6_`{1>6b7JVdTUPpgd=yU zv}`pwY08D(w^J$KPTmtAi`O4*l;821JAgRRvk=0#aBz8)m&8ykv8Y3h{*&T3{NmXz zr4yq*;y8>~xfK$}G)D-`bP;258f|xCkgDCeo^q5LY%!?ymg1QT@vV{&xUo4du=zC` zaeD2DHk?NO)+9ib4D2mTqKY_B7Eg^EN6_1|c^XGd1u``8Z49x{488A#h3B4gGy5q` on`h3JtIn#Osjn#KA8uTpT|qfp)|@C-w%HVm*z)`I{jcl)0R6+R(f|Me literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/loading-small.gif b/themes/greydragon/css/colorpacks/blackhawk/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/search.png b/themes/greydragon/css/colorpacks/blackhawk/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..1bfa4115c6a75cd2420955cd1153f726db660297 GIT binary patch literal 969 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-calendar.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..bd1d03ca2eba9f9bfaea457a7a690865ecefb5b0 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zUZxYPB2^Qn`A(`&74g; z_2XH^L$`a&Bi3@xn{2Uo!D>OzALqWjKCQpbZvW38`|duU&|)63t}sG!hechQV?6Jq z51TLN=k4A1^V_N2$NlFyv=p{N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0003;NklZCx3_mh19tZI4EB6jfIWi^m}VD}wekb)7-ma<{X%6$j4{RV8zF0w_?S@ z&ZX7GwX<8A7Oq&~&BtfOV9CelG;La2XtjewXmdhr_q1s~e0-J+=0JOk+Zq$X+R~G2 zLL5rl%7BhA2MP0eCKX19lqSUH1-oUYdh)@9`8?c$6Ouq6Gc%J9A004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0t`t+K~y-)ozp*0WMve`@z1?;VPOUb5Y&)0E>gIfXk+$Y%*MtLbq$FX(Jizx z*1iGWg0a|gD-#-R3=m_xTaf6k7A#>+h-d^8)DeamX2-eDoog{noPp6|&&hM1Q=IdB ze@}7_k73bAGv%eJn?vOY{imDtTDxBP@^C3Bee&AJFGT}h8$^(g?S6Q-nUof0qa9U5 zVsT$QeJ6@$qRDrYXsqF(aZ_?FP5GJ9-dH!ST}pzMzho|WN>f8aLsOH1O>M*emZXBJ zsu9!9Yil|b9NAMFATU$bk_5q#%!YB-6pcDo(Qxc|fW%BH?UFJzcRX!YrtFbDf67jZ zds#scB&k$YP*At#1Dl@ovZB~Mbwmn=ol}&Eq=K|7FBL2J){Luex$GUUo3`dxjH^qH znlRFBYDpakClZ!@tzz4E7QO0%RqNif?+b^jro^2;bx19-f>=#OEOy_|-tx9ZFWB^k z2iDc4N?m!WBPj|ew2s$&?iUMQF^4z(Xh+LLhm;9YkjZ-HELK$VlSwa%Jz?H$e`pJW zIPWX%nP)Y}61#pA6kT`8Bb5&6znVC*Y{j#lGi%QCuK2-@mQ+IcpLMI*vW0Qan6R%c zmq`lsbLMTF;pL~YiUY%LC<%>ZXl3i-%_x$~k)L>f_U{r7`99CTN#aj`FMsuZQZ|5; hpOM>Yv{$!3`v(Rx**ddyvm^ij002ovPDHLkV1l=*D#HK( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-fullsize.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..ed76257a8cfc001029190d078470850d16cc7d2a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?{VmR zbkpwLuU|iVnr`&j(M7pgQILa=qgJ8s`7NDkhEg||^t+l@YK2%u=We;XCODzNfiH2A z_oRS6#;RP6@GZgo`@DaDh`AM9wJF%@%C9~5UwL0T9QpG5>gw;WS5B9x_;027NoN+D z7KHgp97eaYbI>gTe~DWM4fA=8($ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-info-b.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-info-b.png new file mode 100755 index 0000000000000000000000000000000000000000..880d3e88c23f73e8833d7b2c6bdc3fcc96feb2ee GIT binary patch literal 493 zcmVN2bPDNB8 zb~7$DE;u(kfL#Cp0cuG^K~xwS1;H_EQ&AWI&~snES3^<*K`GYBO~gMS?k zy7}wh$1!6O+$Nz#I(mt~O^ zD*%m|)~-vwU<4XPQACz40r1cae8d@mB8#Hv0Px(2F**QHWU-a40I;<(#tHyrSro+* z093F907Vu>wg3PPSO9=5i(at+00}GrKv6{1n*-ps5qRnu0J1Eq-YEc1oCk;Q0~p)N zf&u{c0RS+lda=`;bIVsfr~oRU(Yj%xtfPJV?dnlVs*0?tDk^}a^{LkP(Y*LIeRD6S jKt%-ruw4)De!Tn-q-c*$UB3N-00000NkvXXu0mjfWUIPP literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-info-o.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-info.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..521439ce7c35951c231bf4759dd2874fc918cffd GIT binary patch literal 938 zcmV;b16BNqP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;K%k z%ys|(0ew(RR7C&)02mk;PEJlFBqSOd8XzDbR8&+_Qc@-+CQ(sQWo2bpSXg9aWEmM5 zDk>^0EG#fEFf}zbH#avqIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w=9LqtSGM@L6U zNJvUbN=!^lPft%%Q&Ut_R9aeETwGjUUS3~cUu0xtWo2b&XJ=?=XlZF_Yinz4Y;0|9 zZEkLEZ*OmLadC2Ta&vQYbaZreb#-=jc6WDoczAevdU}0*eSUs^e}8{~fPjL6f`o*G zhK7cRhlhxWh>3}bjEszpjg5|uj*pLzkdTm)l9H2?la`j2nVFfInwp!No1LAVpP!$g zprE0lp`)Xtq@<*!rKP8*r>Uu_tE;Q5tgNlAt*)-FudlDLu&}YQv9hwVw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@)z;S5 z*VotC+1c9K+TGpV-{0Th;Na!u<>uz*=jZ2o4wQ)i000eiQchC=fEKKD8IfKqBJP%EXNC?X20K9$$o+U(W3u^QVAPXFxOl9nWi0)X&? z&1*ZdOo+0(D|K+V%&Q#9gvg2#YUVKPu?!)EoF{+s8W>&U2WRI>pcnZVO?_SuGmP+G zCzJ|*L@7kkg41$bDS*Y@Q9MlGRE$2t}mS&_C7qS&y2mPs_N$O(B0GPD`VQri#o>Ps+5+?F_zP` z(?LGTO!k8@#=aih`MIa0_s=g)Stxi1bRte8^Iq+`2OY}00000 M07*qoM6N<$f}e<{V*mgE literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/blackhawk/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/blackhawk/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/css/colors.css b/themes/greydragon/css/colorpacks/carbon/css/colors.css new file mode 100755 index 0000000..618a105 --- /dev/null +++ b/themes/greydragon/css/colorpacks/carbon/css/colors.css @@ -0,0 +1,188 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: Carbon + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #333; } +body { color: #999; background-color: #333; } + +h1 { border-bottom: #6f6f6f 1px solid; } +a { color: #999 !important; font-weight: bold; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-header .g-message-block { border: 1px #888 solid; background-color: #AAA; color: #000; } +#g-main { background-color: #3f3f3f; margin-left: 10px; margin-right: 10px; } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top { border-top: #737373 1px solid; } +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info .g-description { border: #6f6f6f 1px solid; } + +.g-thumbslide { background: #555; border-color: #303E43; } +.g-album .g-thumbslide { border-color: #6f6f6f; } +.g-thumbcrop { border-color: #303E43; } + +.g-thumbslide .g-description { color: #fff; border-top: 1px solid #303e43; border-bottom: 1px solid #303e43; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-album.g-expanded .g-thumbslide .g-description { background: transparent url(../images/ico-album.png) no-repeat 8px 4px; } +.g-album .g-thumbslide .g-description { background: #3f3f3f url(../images/ico-album.png) no-repeat 8px 4px; } +.g-thumbslide .g-metadata { border-top: 1px solid #303e43; background: #3f3f3f; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; color: #FFF; } +.g-expanded .g-thumbslide .g-metadata { border-top: 1px solid #303e43; background: #3f3f3f; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: 1px solid #888; background: #555; } +div.g-resize .g-description { color: #fff; background: #3f3f3f; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #999; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #999; } +div.g-resize .g-more { border: 1px solid #999; background: #3f3f3f; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #888; padding: 5px; background: #555; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { border: 1px solid #6f6f6f; } + +.g-block h2 { background-color: rgb(51, 51, 51); } +#g-column-bottom .g-block h2 { background-color: rgb(41, 41, 41); } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #999; background: #3f3f3f; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li a:hover { color: #000000; background-color: #333; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #333; border-bottom: #000000 1px solid; } +#g-site-menu li ul { border: #000000 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #333; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #ddf2ff; } + +#g-site-menu.g-bar { border: #000000 1px solid; background-color: #333; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #333 none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #ddf2ff; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #101415; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background-color: #333; } +#sb-counter a { color: #fff !important; font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #101010; border: #303030 1px solid; } +#g-add-photos-button { border: #303030 1px solid; color: #bbb; } +#g-add-photos-status { background-color: #101010; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile .g-avatar { border: 1px solid #888; background: #555; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li a:hover { color: #000000; background-color: #303030; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #303030; border-bottom: #000000 1px solid; } +#g-site-menu li ul { border: #000000 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #212121; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #303030; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #181818 none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #303030; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #303030 1px solid; } +#g-exif-data .g-even { background-color: #404040; } +#g-exif-data .g-odd { background-color: #303030; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #737373; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #888; background: #555; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #737373; } +#g-comment-form { border: 1px dotted #737373; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #737373; color: #BBB; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background: url(../images/section.png) repeat-x; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #333 url('../images/section.png') repeat-x; } +.ui-widget-content { border: 1px solid #303030; background-color: #333; color: #bbb; } +.ui-progressbar .ui-progressbar-value { background: #737373; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #737373 1px solid; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/carbon/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/carbon/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..0996045a0978d28e0ac2fb83a634bc349cfab407 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/colorpack.png b/themes/greydragon/css/colorpacks/carbon/images/colorpack.png new file mode 100755 index 0000000000000000000000000000000000000000..bc51d4fbf6c89ba9a3079220d7c615dea163a104 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^PC(4h0VEhof4a2+DVB6cUq=Rpjs4tz5?O(K&H|6f zVg?4jBOuH;Rhv&5C@5Lt8c`CQpH@6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/ico-error.png b/themes/greydragon/css/colorpacks/carbon/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/ico-help.png b/themes/greydragon/css/colorpacks/carbon/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/loading-large.gif b/themes/greydragon/css/colorpacks/carbon/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/loading-small.gif b/themes/greydragon/css/colorpacks/carbon/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/search.png b/themes/greydragon/css/colorpacks/carbon/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..1bfa4115c6a75cd2420955cd1153f726db660297 GIT binary patch literal 969 zcmV;)12+7LP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0009dNklz5iy(q%bSqVS0aQS#nyS!B)p~2JwYCSNwi-pf zXyQc=`WdXor1}Xw7!Pfl`10$_n5EkEpmCBXGsDjB+4;}z@<_7UiU0%)i;BNJe)5zQ z6cm#Cw5zL2^843Ma(Qu~(%dpJOO^(Abq!kLJ%|rvkW3HXi}+v$Er}j@0=1xYZe7wHCj$O}c)(ICEdVHvFX+uM6JLmm}Nvy7}a#>kf8K<9x!909cvO|5NMSXkgCGa)OL2~8#w@7XSQcX#P`0Axo- zXoltf!i9?43#ZQyS9JjOjUjArZ{zIj45?I#3q?_cEX#cC_xo{rddh{7XpCpBxz1P6 zYKh|Vz~*pq93C&0b1OWsx3>pXRk@JKg25m^Th@LY9l=T0YB{Y}D!m|fXC-92lBX(A zgT3$jJjmM4&JMP=ws3NClK+hj-j0sm$}tD4mJ3Cz4Q7iqk4>q-#>U1i0h{a}9OT94 z=jRw19fO66w5;OxP@%&OqbR{>7H=WYGTEz>$z+htX3^2v3A@9INGyiq<70j^CLN;J zwXB^UA1S9oJ$r)mwYV#hXf!XKoSNb}y-@(GmRJ=hpOoqJcZRKJ(s%ST^albwr!yE~ zt#E<}v|K@wQ9{3nhrr42ZDlPT6>VJ=9X(ZDeN{aJH9bQ$eIs=PV@r3Rkmy~xKrNCbt`Q}{ z`DrEPiAAXl0g0J;C3=3YAqr*2dZv1Ye$Op_0u{-7x;Tb#Tu-(*@TIYnk;A?rGeoFk jrsWKY8I7Mj5||kR?70MU=8OLTDrN9=^>bP0l+XkKClfE| literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/ui-icons.png b/themes/greydragon/css/colorpacks/carbon/images/ui-icons.png new file mode 100755 index 0000000000000000000000000000000000000000..ef92612b2c8c92b3f5b9c0f850f60061e0865d93 GIT binary patch literal 13162 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-calendar.png b/themes/greydragon/css/colorpacks/carbon/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..bd1d03ca2eba9f9bfaea457a7a690865ecefb5b0 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zUZxYPB2^Qn`A(`&74g; z_2XH^L$`a&Bi3@xn{2Uo!D>OzALqWjKCQpbZvW38`|duU&|)63t}sG!hechQV?6Jq z51TLN=k4A1^V_N2$NlFyv=p{N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0003;NklZCx3_mh19tZI4EB6jfIWi^m}VD}wekb)7-ma<{X%6$j4{RV8zF0w_?S@ z&ZX7GwX<8A7Oq&~&BtfOV9CelG;La2XtjewXmdhr_q1s~e0-J+=0JOk+Zq$X+R~G2 zLL5rl%7BhA2MP0eCKX19lqSUH1-oUYdh)@9`8?c$6Ouq6Gc%J9A004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0t`t+K~y-)ozp*0WMve`@z1?;VPOUb5Y&)0E>gIfXk+$Y%*MtLbq$FX(Jizx z*1iGWg0a|gD-#-R3=m_xTaf6k7A#>+h-d^8)DeamX2-eDoog{noPp6|&&hM1Q=IdB ze@}7_k73bAGv%eJn?vOY{imDtTDxBP@^C3Bee&AJFGT}h8$^(g?S6Q-nUof0qa9U5 zVsT$QeJ6@$qRDrYXsqF(aZ_?FP5GJ9-dH!ST}pzMzho|WN>f8aLsOH1O>M*emZXBJ zsu9!9Yil|b9NAMFATU$bk_5q#%!YB-6pcDo(Qxc|fW%BH?UFJzcRX!YrtFbDf67jZ zds#scB&k$YP*At#1Dl@ovZB~Mbwmn=ol}&Eq=K|7FBL2J){Luex$GUUo3`dxjH^qH znlRFBYDpakClZ!@tzz4E7QO0%RqNif?+b^jro^2;bx19-f>=#OEOy_|-tx9ZFWB^k z2iDc4N?m!WBPj|ew2s$&?iUMQF^4z(Xh+LLhm;9YkjZ-HELK$VlSwa%Jz?H$e`pJW zIPWX%nP)Y}61#pA6kT`8Bb5&6znVC*Y{j#lGi%QCuK2-@mQ+IcpLMI*vW0Qan6R%c zmq`lsbLMTF;pL~YiUY%LC<%>ZXl3i-%_x$~k)L>f_U{r7`99CTN#aj`FMsuZQZ|5; hpOM>Yv{$!3`v(Rx**ddyvm^ij002ovPDHLkV1l=*D#HK( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-fullsize.png b/themes/greydragon/css/colorpacks/carbon/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..ed76257a8cfc001029190d078470850d16cc7d2a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?{VmR zbkpwLuU|iVnr`&j(M7pgQILa=qgJ8s`7NDkhEg||^t+l@YK2%u=We;XCODzNfiH2A z_oRS6#;RP6@GZgo`@DaDh`AM9wJF%@%C9~5UwL0T9QpG5>gw;WS5B9x_;027NoN+D z7KHgp97eaYbI>gTe~DWM4fA=8($ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-info-b.png b/themes/greydragon/css/colorpacks/carbon/images/view-info-b.png new file mode 100755 index 0000000000000000000000000000000000000000..880d3e88c23f73e8833d7b2c6bdc3fcc96feb2ee GIT binary patch literal 493 zcmVN2bPDNB8 zb~7$DE;u(kfL#Cp0cuG^K~xwS1;H_EQ&AWI&~snES3^<*K`GYBO~gMS?k zy7}wh$1!6O+$Nz#I(mt~O^ zD*%m|)~-vwU<4XPQACz40r1cae8d@mB8#Hv0Px(2F**QHWU-a40I;<(#tHyrSro+* z093F907Vu>wg3PPSO9=5i(at+00}GrKv6{1n*-ps5qRnu0J1Eq-YEc1oCk;Q0~p)N zf&u{c0RS+lda=`;bIVsfr~oRU(Yj%xtfPJV?dnlVs*0?tDk^}a^{LkP(Y*LIeRD6S jKt%-ruw4)De!Tn-q-c*$UB3N-00000NkvXXu0mjfWUIPP literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-info-o.png b/themes/greydragon/css/colorpacks/carbon/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-info.png b/themes/greydragon/css/colorpacks/carbon/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..521439ce7c35951c231bf4759dd2874fc918cffd GIT binary patch literal 938 zcmV;b16BNqP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;K%k z%ys|(0ew(RR7C&)02mk;PEJlFBqSOd8XzDbR8&+_Qc@-+CQ(sQWo2bpSXg9aWEmM5 zDk>^0EG#fEFf}zbH#avqIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w=9LqtSGM@L6U zNJvUbN=!^lPft%%Q&Ut_R9aeETwGjUUS3~cUu0xtWo2b&XJ=?=XlZF_Yinz4Y;0|9 zZEkLEZ*OmLadC2Ta&vQYbaZreb#-=jc6WDoczAevdU}0*eSUs^e}8{~fPjL6f`o*G zhK7cRhlhxWh>3}bjEszpjg5|uj*pLzkdTm)l9H2?la`j2nVFfInwp!No1LAVpP!$g zprE0lp`)Xtq@<*!rKP8*r>Uu_tE;Q5tgNlAt*)-FudlDLu&}YQv9hwVw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@)z;S5 z*VotC+1c9K+TGpV-{0Th;Na!u<>uz*=jZ2o4wQ)i000eiQchC=fEKKD8IfKqBJP%EXNC?X20K9$$o+U(W3u^QVAPXFxOl9nWi0)X&? z&1*ZdOo+0(D|K+V%&Q#9gvg2#YUVKPu?!)EoF{+s8W>&U2WRI>pcnZVO?_SuGmP+G zCzJ|*L@7kkg41$bDS*Y@Q9MlGRE$2t}mS&_C7qS&y2mPs_N$O(B0GPD`VQri#o>Ps+5+?F_zP` z(?LGTO!k8@#=aih`MIa0_s=g)Stxi1bRte8^Iq+`2OY}00000 M07*qoM6N<$f}e<{V*mgE literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/carbon/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/carbon/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/css/colors.css b/themes/greydragon/css/colorpacks/greydragon/css/colors.css new file mode 100755 index 0000000..23fb5eb --- /dev/null +++ b/themes/greydragon/css/colorpacks/greydragon/css/colors.css @@ -0,0 +1,173 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: GreyDragon - Default color pack + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #1A2022; } +body { color: #BBB; background: #1A2022; } + +h1 { border-bottom: #737373 1px solid; } +a { color: #6392CF !important; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-header { border-left: #10151c 1px solid; border-right: #10151c 1px solid; background: url(../images/background-top.gif) #1A2022 repeat-x; } +#g-header .g-message-block { border: 1px #888 solid; background-color: #AAA; color: #000; } +#g-main { border-left: #10151c 1px solid; border-right: #10151c 1px solid; background: url(../images/background-bottom.gif) #1A2022 repeat-x; } +.viewmode-mini #g-main { border-bottom: #10151c 1px solid; } +#g-footer { background: url(../images/footer.png) #1A2022 repeat-x top !important; } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top { background: url(../images/background-bottom.gif) #1A2022 repeat-x; border: #10151C 1px solid; } +#g-column-bottom { background-color: #1a2022; border: #10151C 1px solid; } +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info .g-description { border: #737373 1px solid; } + +.g-thumbslide { background: #1E1E1E url('../images/image-thumb.gif') repeat-x; border-color: #303E43; } +.g-album .g-thumbslide { border-color: #43565B; } +.g-thumbcrop { border-color: #303E43; } +.g-thumbslide .g-description { color: #fff; border-top: 1px solid #303e43; border-bottom: 1px solid #303e43; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-album.g-expanded .g-thumbslide .g-description { background: transparent url(../images/ico-album.png) no-repeat 8px 4px; } +.g-album .g-thumbslide .g-description { background: #1E1E1E url(../images/ico-album.png) no-repeat 8px 4px; } +.g-thumbslide .g-metadata { border-top: 1px solid #303e43; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-expanded .g-thumbslide .g-metadata { border-top: 1px solid #303e43; background: #1E1E1E; } +.g-album .g-thumbslide, .g-photo .g-thumbslide { background-color: #1E1E1E; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: 1px solid #888; background: #555; } +div.g-resize .g-description { color: #fff; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #999; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #999; } +div.g-resize .g-more { border: 1px solid #999; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #888; padding: 5px; background: #555; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { border: 1px solid #737373; background-color: #101415; } +.g-block h2 { background: url(../images/section.png) repeat-x; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #999; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background: #101415 url('../images/ajax-loading.gif') no-repeat center center; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #101415 url('../images/section.png') repeat-x; } +#sb-counter a { color: #fff !important; font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #101010; border: #303030 1px solid; } +#ag-add-photos-button { border: #303030 1px solid; color: #bbb; } +#g-add-photos-status { background-color: #101010; border: #303030 1px solid; } +.uploadifyQueueItem { color: #000; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile .g-avatar { border: 1px solid #888; background: #555; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li a:hover { color: #000000; background-color: #303030; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #303030; border-bottom: #000000 1px solid; } +#g-site-menu li ul { border: #000000 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #212121; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #303030; } + +#g-site-menu.g-bar { border: #000000 1px solid; background-color: #212121; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #181818 none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #303030; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #303030 1px solid; } +#g-exif-data .g-even { background-color: #404040; } +#g-exif-data .g-odd { background-color: #303030; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #737373; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #888; background: #555; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #737373; } +#g-comment-form { border: 1px dotted #737373; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #737373; color: #BBB; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background: url(../images/section.png) repeat-x; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #101415 url('../images/section.png') repeat-x; } +.ui-widget-content { border: 1px solid #303030; background-color: #1a2022; color: #bbb; } +.ui-progressbar .ui-progressbar-value { background: #737373; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #888 1px solid; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/greydragon/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/greydragon/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..0996045a0978d28e0ac2fb83a634bc349cfab407 GIT binary patch literal 4782 zcmZ|TYgAKbx(Dz#I~S6jgj~3V0BI6JNCHGc5{bCcT**aDLr5S+)PRC`EnceB+Bsn- zgaku`2o^fvAeV|lEm~`>y#>LFmeYaW+i@JF+UnSLsK?c@U2~=S8#es;&vUoG{(4EvX1zdSQ@5ckkX@SorbBA1}Q5 z=6`|3ys;k*kw~@PV^PUE7&6b*`ZBN&1ly2Tp|1{wJgadHwI^Hj2tHDvO z)7T6J(tIo?ww3$n_D4koald!~>h-nwTLUeyIN085c_JLlTH;$(M)Nv*BY>R0424Tq zJ5VR&><6sm{FT7C+NuIh1Q|mUiqv|J)w&cQrZ?INRIhBgCQlzL2<`kyRNCi@i%&`u zf+RY@CpAGpiiqWKD=|4eTXNZd*YHnPFeM|opq=&4FO~N_+Nby_;)r6ur>1i_j!q?U zJwWTHNdzNNv}MMV*hfe-(RolHDNLo!v`I8coQH^+RdX}@Mz40`UC*FTq25?cft}CaA|L_3Z$LnlJLYf z&EnuZh3diyB&P@O5=M%s+)pNE=aNzd>(VieEf~iheS9s;bGr@FQ7nD6AzVd&NiSaWx76q zq*iq^Gct@|N&Z&WNl;uxLK2g=mQ%MaCxx*glw8%Yj7?PNMca#1UM$DYOHjB+6nvLY zNbGUYw^^TTElJ3;yRZ1A_1e9{$zw}OFeaz(ab%ez5+)-<{0UKK)eBv|p8KzM zcv1}=0zMPEY~uv&xf1A;4op7oB^L0E_#iE97*eChW+)>q0hW4|jDW>EN&}1e$22;o zhK3Yfv}gJOo`Z-+2QjO>)ly`708&R$JOpOvqONWaPktDAhdeNubT-l!NE2wFV}$j) z8GQRwN`CkM1;#!GSWb-rrwGEq$_gJnQ|evc9RZG19ttOs4CvCW<^8~H$&?*^Vn-#g zrLTp@z>>Tt#q5SnMtOFPB}@?a0)1WP8f?xos^#f;4(hDbz3)}>B|JH(&cXUv)pWqj ztl56qpG(Y9;N<3jW#jV3%wT!L_>KGAvUt^Uy6WP@P1BG>WKn1%T21GUK-)x5?Vv4^ zBO~4*mg(%oZ0kaYc!QcwBjh%Qa_+POSt5I;7lnj2iUs0 zN}yvT#hh_D3fPq(%7T)rio;Z~6BR28S2|K8`ZZ5gy#`EVo!{lo%@PBfIAM zv~^9Zk*89T;aNY8m=V917<3SQ6Zg4{7Yd)@E43G+`k^>JL17sLQ!1lgJ3U};q%*0M zEz=Vh)sZ&Q@*_UYPQ8suwWHL~`OW$oUZM%3qyOsdDVw)Ayuh zmi5{DqZQ}A`(I}KZZ0NHzM>*3i7TtO&}okx`^rAxGDzR`vs_j>iUaMUD$7 zGuJ_5z^GCoLL$EseljmEY!EvK-$@j%T&Z80P^U+sESa>0pi4BeK&4FR!&XZGJ7o`d zNvmF_RAwR9{HA3)su+I{2u0J29VEsJxm%(t3xCqV7o^w~+Ckt|86Eyop510+N|?#H z?t!bFZOWRz4|GCgbp&J77c_j)F!f^m=4;&ZC88j}Ur6s=kOtf6f(01UX1P|LcJM{1?iGq_*Hh0{KlCg0C{l4r)_AHOaMsl#2M~a+?>REnAz4^ zqCG!Le_03LU-9{KhXU!@yZ2&d#_nO(*T?ns>=cQwgbqq^i=u}qS5FFH;tyF}nUPx> zQ`bAz;l1a+Q~#F9gvTHwtQc}7B^-ntKBZ3T<**~DsiF@!aViK^77+STPK6%8DjpRW z3yYC4z*Z_Dh-Z_>s-O+CVA|2QIjqD)gSIdSi<(_zznqihfI(&XS+65)1;DPfq`F&$ z6f&8O^!mk;y1azT0r`FAx2d~!*5GhZIMR^cO`O6fv~w2K5q+dN)7VDDbxh+Jxom}N z_w?;hnli7!v2cfRD=82T^_1qL@8xKjVvA((rlqaDh2sWn#}$SVX-ll>y3^VpzmzE! zMNrASrr@IQwD(3Vu2F% z$)bJ=do5@R6*E;hkeUB^$KhMr(_G4~zG{Y#YY91-B+QjpOKpdi1W2#lvESK}&CjyG zzci8fn{eD?gq=`KSRWHc^ggoE>D4J}CdQr_VZ*dkns;WK%wf3aDYjNT9KI3Jp)fi9M@&<6)jgir+Bd<4vJb(S zP3Z%3cn~<84Jcs#CN`QFcYr-!a6^BPi`l!^M!z*g>vEEZ=}@!rRjz0~D`60$-8;yy z+;&g+J2mk!)HEbUO=X6ICW4PmHhYEo2ufpPy-W&>5_H0T6w9UpS{B6s#4=^*q}auV zX=I9=R<0z6&1NYY8*21sSLKBY*(u7h&_GJ7^bX-`q?|(fk4`kVB%ch<2wdUb{_k`d*-w=t8{DnM612;cR=~}s?ziBj=7ZV zXD?7NjZSmo=B=LT+kTK zZP)$&{UbewS^B7>VMjPf6Z;5kvsWyPpi+4^>R^X}oI~wLS%&TyWj9PFBPRi5Fqmj; zHVb5tjbWNodh}(vnJPpG6!MAK>|vPkIUxk;g~XquuP}j`U0!j^Z$?ZAyf_sHe8w3SC7 z?wo)15jqGpk(9f!i;b1~bl+lH<2o2({A-b)jN|356>E*au9eKOKWkxY(yg%?NVP zV1R+c<%n^004ZdGXfO+b*{}i#0tWSgp6pHJwu^=(I9k+>um^Ix+C+Xn2Ux4U51|s$@{fS+c${c#HEAw06?)b1~ zHoUZozx`X&F<-t$I!b>i8@?H;eh^>$`NjM)CLEWVF<)Dwx9W^qpNP>(Zz+mT*GJJn zD*;kzZ7RtfVrzWTnM)$IuLBZQa|E4H2*&Fw*N;=^UBjh5iuezWy#&YFh0Cu-i8(F>W({c^Yu-EFNx zV+{&uvBn++D<93-5HcYa8>AsJX9Ae^TZ>@xDM)TOj?$2WKHdJkdsINc5Vp)orD81G zHPy1TsA&09@_-a_xLl52zx(;dwV$=J6b-D!e{^7!73|b#lxW6cZ?c`{h~Q7$6t~c$ zVh{|&sg&fd4)twUByIQKRZWMvb}Wsox0p1eaHm)$(l3+=@WK)slE0tZ%*({CJEIZ?NnW^L~Z+z{{x@2R|o(A literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/background-bottom.gif b/themes/greydragon/css/colorpacks/greydragon/images/background-bottom.gif new file mode 100755 index 0000000000000000000000000000000000000000..1f675f32be8ed188ed8e920e5bdc0820851b2d5e GIT binary patch literal 1040 zcmZ?wbhEHbWMq(H`py6WjEsy-j7&hl%*@Qf%mPHLEI`D{#>xgn>}>2DY#bcy9GvW& zTpU2e1w`DO+&r8-JX}1y+`N3;eEd8>#4o_hFUTt($SWwsCn(G(B+M@?!Y?c;07N39 zf}&!AqT+&L;zD8)!s3#`5|SbkQX-PlqEbL4BPJ~?CL=2@BPT8^F9AeyK%^ikuPCLU z1a;#mH5vjm2mu|CnV`JD!10wqTY|x1!-9j&9Ku>LCpIi}ZedjNn&Yu?(a|m@BQA*p z8y6q%m*?z|@!X_xl1YPiMa;>fr;XD&l1|N$G;TaQo2%&6nVk!kpPz3l$su}c!HPh3 zkI8Da2c~GYa0IA&%(W_Qy1H6eBjak+!qwN;i5=?VtzNk1<|c_tNhc0$Tg%2P{pi%) z0}I#1?v}NxxN-V>^ZosGjx7>8iwYhJb_n+?9Gv0Od3=KW>=`+aTArTPFv|8jxN~#* zIW4DdzP*b|GR0N|ulBpUXzT0ix-lopJ}%n!_V)I~7j1%zx4*w{m~vu<>TVIoa~%j99-O-+&o-7 zyxhEeJbe5-`~tiJf_#F){K6svBBFw#VuE7gLShmk5>g_P(xOr_V$!nWGIA1f@{;n3 zQVL2^iptVTDl*EdvMOqFs_Js88uDtI3hG)48d{2)+KQSwN?N+g+IlM5daAkxP#29- zqai?-5YPeH0?G>v9L@}k95Nmo794Em;AP`bNMLAWV&hZrSdhTj%*H3@(4mmX)XF8M kmvCZ1B6B;RoLvKlViHTIkec5DkA+FB-D3JNEG!Jx0Ody@>i_@% literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/background.gif b/themes/greydragon/css/colorpacks/greydragon/images/background.gif new file mode 100755 index 0000000000000000000000000000000000000000..b8083564eefae82ff216a242edd47c6ae4914396 GIT binary patch literal 1098 zcmZ?wbhEHbWMn8|`py6WjEsy-j7&hl%*@Qf%mPHLEI`D{#>xgn>}>2DY#bcy9GvW& zTpU2e1w`DO+&r8-JX}1y+`N3;eEd8>#4o_hFUTt($SWwsCn(G(B+M@?!Y?c;07N39 zf}&!AqT+&L;zD8)!s3#`5|SbkQX-PlqEbL4BPJ~?CL=2@BPT8^F9AeyK%^ikuPCLU zB&DbY^Zrm3K=rJ$jusHv@}siUN&tEOkDZD<1Z%_ub*0z`*^ z4oD>^FEDWYXJF)z@z}87U^53V8;3!I10yqsh)%+T2aPS9qB;pDHY_~ME~xA^!((BS zYqz*j#+40)%dj3 z-Bca6uDZH9j61{hz}D5**RdZ`lJMU4<_1f~Wvz(QWpA6d7d+mV>M%X8d3S~Ei@UqO zH^%Q5P~w>8u%qB1XNR!=f&()OTaQnWkDlRE`Kk5v4E^LAdkmY?&r6x)NcdJUw_jcn zSpMR{!mY3QHzXfs6I`^dI>ya7v&(&6UzkhIeyMBS=y`$ZqUtC_^eo)S>=lh4p$0sNzxBdP7gw$5 z?CN2bPDNB8b~7$DE;i7Ety%y80HaAnK~yNurIXhV!Y~X)i&gEjj>2J#h`1h7?Hov-NQik834j?fT*YFtd;}E%fe45I zf*`31FXQ#Q=t&Cty{&X zUZ3CE3)CD*nsOU$FMz7icJ|*0-2KyrsJ6#fUdT`traxkiFQU#pW?WbbTL1t607*qo IM6N<$f~_L4YybcN literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/footer.png b/themes/greydragon/css/colorpacks/greydragon/images/footer.png new file mode 100755 index 0000000000000000000000000000000000000000..04d5ee540e93e773ee421344adf7fa75848c16c2 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^j6ht&!3-qlmuoEn2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl{SNcITwWnidMV_;}#VPN>O+y9PAvN?3`R2K*R+^+??DzoIE^SJiOez zeB6BeJp4c;z$+lgD=5S#D9kS;%r7h=AS@~%A}S~7WUg8>25}cn_Ql40p$`Fv4 znOCCc=Nh6=W~^tr*LCqppb`^L7sn8e>&XTQzs?_NVEX^~$=~+NHzHOjaeT7x(pYt( q-bD6>!7dQBLhryUvosZXU|3CAtoLO}sOv+Zeg;ohKbLh*2~7YHl27LV literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/ico-album.png b/themes/greydragon/css/colorpacks/greydragon/images/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..ac87ec4fbf6acb75ac29259e60d8a9a0992cbef0 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA3y|d6q_!SNv7|ftIx;Y9?C1WI$O`0h7I;J! zGca%qfiUBxyLEqng6t)pzOL*yIe{8wlsqH7fI^Zbt`Q}{`DrEPiAAXl0g0J;C3=3Y zAqr*2dZv0NcD-lHfQn9fx;TbNTrR!1-|KLKgxkmXN8((Zi^|H1i>6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/ico-error.png b/themes/greydragon/css/colorpacks/greydragon/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/ico-help.png b/themes/greydragon/css/colorpacks/greydragon/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/image-thumb.gif b/themes/greydragon/css/colorpacks/greydragon/images/image-thumb.gif new file mode 100755 index 0000000000000000000000000000000000000000..bc3a192fa9e10b7fb3b7f814fb03397c8811b33a GIT binary patch literal 830 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/loading-small.gif b/themes/greydragon/css/colorpacks/greydragon/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/search.png b/themes/greydragon/css/colorpacks/greydragon/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..1bfa4115c6a75cd2420955cd1153f726db660297 GIT binary patch literal 969 zcmV;)12+7LP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0009dNklz5iy(q%bSqVS0aQS#nyS!B)p~2JwYCSNwi-pf zXyQc=`WdXor1}Xw7!Pfl`10$_n5EkEpmCBXGsDjB+4;}z@<_7UiU0%)i;BNJe)5zQ z6cm#Cw5zL2^843Ma(Qu~(%dpJOO^(Abq!kLJ%|rvkW3HXi}+v$Er}j@0=1xYZe7wHCj$O}c)(ICEdVHvFX+uM6JLmm}Nvy7}a#>kf8K<9x!909cvO|5NMSXkgCGa)OL2~8#w@7XSQcX#P`0Axo- zXoltf!i9?43#ZQyS9JjOjUjArZ{zIj45?I#3q?_cEX#cC_xo{rddh{7XpCpBxz1P6 zYKh|Vz~*pq93C&0b1OWsx3>pXRk@JKg25m^Th@LY9l=T0YB{Y}D!m|fXC-92lBX(A zgT3$jJjmM4&JMP=ws3NClK+hj-j0sm$}tD4mJ3Cz4Q7iqk4>q-#>U1i0h{a}9OT94 z=jRw19fO66w5;OxP@%&OqbR{>7H=WYGTEz>$z+htX3^2v3A@9INGyiq<70j^CLN;J zwXB^UA1S9oJ$r)mwYV#hXf!XKoSNb}y-@(GmRJ=hpOoqJcZRKJ(s%ST^albwr!yE~ zt#E<}v|K@wQ9{3nhrr42ZDlPT6>VJ=9X(ZDeN{aJH9bQ$eIs=PV@r3Rkmy~xKrNCbt`Q}{ z`DrEPiAAXl0g0J;C3=3YAqr*2dZv1Ye$Op_0u{-7x;Tb#Tu-(*@TIYnk;A?rGeoFk jrsWKY8I7Mj5||kR?70MU=8OLTDrN9=^>bP0l+XkKClfE| literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/ui-icons.png b/themes/greydragon/css/colorpacks/greydragon/images/ui-icons.png new file mode 100755 index 0000000000000000000000000000000000000000..41ce8ffe7f143a3cc55de9a790e6c074b569f21e GIT binary patch literal 13160 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-calendar-b.png b/themes/greydragon/css/colorpacks/greydragon/images/view-calendar-b.png new file mode 100755 index 0000000000000000000000000000000000000000..c5a12480fc56ddd439be72998f410e9775933ca2 GIT binary patch literal 653 zcmV;80&@L{P)N2bPDNB8 zb~7$DE;u(kfL#Cp0t!h)K~xwS1;I^gTxA#l(DUB=+{sLC(tOdWAi5Dnss+0cM8Sn9 zE?jl*zi{QQ;7{=vxO7(#7XdLvur0J&u+W&;G?~my=4S54>pA7dH0tlax_AGb<3FyW zjymeHzW>7)U;la(b<|Nu{oSYE{&@HG;p?hScYb=y8wa=Fe)RO;1(4l+f8_8<0!(-B zeDL_m%d>x^d--$6-gIgSl5Af%kw8|PI&sSbF>~fmW4}3-C57H+l3x@coBG5fr3*1= z{H^rdOhT4CRyvU-WJ?pzysH;px0`xTzc-*nXy(Q>owLQBOA0jS>x2PbIIC{%EVY{M{guVkFaS=t<&m^ z9Y_W@Wj8Q)pb?0S*4$j9*D53h3I&p+kc>=ZF<_)JHc=Yf(wL$*wQ>_-YN?dPfGcY= zozlY0l^GT;ENoz5f-OXkkxgscO09h}yONcCbGx!^&)Uc!1{5lx6ha6UN|g{Og-$Yv zUMV}%nkx+c!#OyW&Cq*gQ>hb6e;K1fR=GCPV?%2sqtdzb%1Rvh*?|Ng$pDfJ$S(XY njq-;+Rsu-K04PA`p(FnTyhhmEY#Hrb00000NkvXXu0mjftic{Y literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-calendar.png b/themes/greydragon/css/colorpacks/greydragon/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..bd1d03ca2eba9f9bfaea457a7a690865ecefb5b0 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zUZxYPB2^Qn`A(`&74g; z_2XH^L$`a&Bi3@xn{2Uo!D>OzALqWjKCQpbZvW38`|duU&|)63t}sG!hechQV?6Jq z51TLN=k4A1^V_N2$NlFyv=p{N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0003;NklZCx3_mh19tZI4EB6jfIWi^m}VD}wekb)7-ma<{X%6$j4{RV8zF0w_?S@ z&ZX7GwX<8A7Oq&~&BtfOV9CelG;La2XtjewXmdhr_q1s~e0-J+=0JOk+Zq$X+R~G2 zLL5rl%7BhA2MP0eCKX19lqSUH1-oUYdh)@9`8?c$6Ouq6Gc%J9A004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0t`t+K~y-)ozp*0WMve`@z1?;VPOUb5Y&)0E>gIfXk+$Y%*MtLbq$FX(Jizx z*1iGWg0a|gD-#-R3=m_xTaf6k7A#>+h-d^8)DeamX2-eDoog{noPp6|&&hM1Q=IdB ze@}7_k73bAGv%eJn?vOY{imDtTDxBP@^C3Bee&AJFGT}h8$^(g?S6Q-nUof0qa9U5 zVsT$QeJ6@$qRDrYXsqF(aZ_?FP5GJ9-dH!ST}pzMzho|WN>f8aLsOH1O>M*emZXBJ zsu9!9Yil|b9NAMFATU$bk_5q#%!YB-6pcDo(Qxc|fW%BH?UFJzcRX!YrtFbDf67jZ zds#scB&k$YP*At#1Dl@ovZB~Mbwmn=ol}&Eq=K|7FBL2J){Luex$GUUo3`dxjH^qH znlRFBYDpakClZ!@tzz4E7QO0%RqNif?+b^jro^2;bx19-f>=#OEOy_|-tx9ZFWB^k z2iDc4N?m!WBPj|ew2s$&?iUMQF^4z(Xh+LLhm;9YkjZ-HELK$VlSwa%Jz?H$e`pJW zIPWX%nP)Y}61#pA6kT`8Bb5&6znVC*Y{j#lGi%QCuK2-@mQ+IcpLMI*vW0Qan6R%c zmq`lsbLMTF;pL~YiUY%LC<%>ZXl3i-%_x$~k)L>f_U{r7`99CTN#aj`FMsuZQZ|5; hpOM>Yv{$!3`v(Rx**ddyvm^ij002ovPDHLkV1l=*D#HK( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-fullsize.png b/themes/greydragon/css/colorpacks/greydragon/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..ed76257a8cfc001029190d078470850d16cc7d2a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?{VmR zbkpwLuU|iVnr`&j(M7pgQILa=qgJ8s`7NDkhEg||^t+l@YK2%u=We;XCODzNfiH2A z_oRS6#;RP6@GZgo`@DaDh`AM9wJF%@%C9~5UwL0T9QpG5>gw;WS5B9x_;027NoN+D z7KHgp97eaYbI>gTe~DWM4fA=8($ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-info-b.png b/themes/greydragon/css/colorpacks/greydragon/images/view-info-b.png new file mode 100755 index 0000000000000000000000000000000000000000..880d3e88c23f73e8833d7b2c6bdc3fcc96feb2ee GIT binary patch literal 493 zcmVN2bPDNB8 zb~7$DE;u(kfL#Cp0cuG^K~xwS1;H_EQ&AWI&~snES3^<*K`GYBO~gMS?k zy7}wh$1!6O+$Nz#I(mt~O^ zD*%m|)~-vwU<4XPQACz40r1cae8d@mB8#Hv0Px(2F**QHWU-a40I;<(#tHyrSro+* z093F907Vu>wg3PPSO9=5i(at+00}GrKv6{1n*-ps5qRnu0J1Eq-YEc1oCk;Q0~p)N zf&u{c0RS+lda=`;bIVsfr~oRU(Yj%xtfPJV?dnlVs*0?tDk^}a^{LkP(Y*LIeRD6S jKt%-ruw4)De!Tn-q-c*$UB3N-00000NkvXXu0mjfWUIPP literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-info-o.png b/themes/greydragon/css/colorpacks/greydragon/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-info.png b/themes/greydragon/css/colorpacks/greydragon/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..521439ce7c35951c231bf4759dd2874fc918cffd GIT binary patch literal 938 zcmV;b16BNqP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;K%k z%ys|(0ew(RR7C&)02mk;PEJlFBqSOd8XzDbR8&+_Qc@-+CQ(sQWo2bpSXg9aWEmM5 zDk>^0EG#fEFf}zbH#avqIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w=9LqtSGM@L6U zNJvUbN=!^lPft%%Q&Ut_R9aeETwGjUUS3~cUu0xtWo2b&XJ=?=XlZF_Yinz4Y;0|9 zZEkLEZ*OmLadC2Ta&vQYbaZreb#-=jc6WDoczAevdU}0*eSUs^e}8{~fPjL6f`o*G zhK7cRhlhxWh>3}bjEszpjg5|uj*pLzkdTm)l9H2?la`j2nVFfInwp!No1LAVpP!$g zprE0lp`)Xtq@<*!rKP8*r>Uu_tE;Q5tgNlAt*)-FudlDLu&}YQv9hwVw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@)z;S5 z*VotC+1c9K+TGpV-{0Th;Na!u<>uz*=jZ2o4wQ)i000eiQchC=fEKKD8IfKqBJP%EXNC?X20K9$$o+U(W3u^QVAPXFxOl9nWi0)X&? z&1*ZdOo+0(D|K+V%&Q#9gvg2#YUVKPu?!)EoF{+s8W>&U2WRI>pcnZVO?_SuGmP+G zCzJ|*L@7kkg41$bDS*Y@Q9MlGRE$2t}mS&_C7qS&y2mPs_N$O(B0GPD`VQri#o>Ps+5+?F_zP` z(?LGTO!k8@#=aih`MIa0_s=g)Stxi1bRte8^Iq+`2OY}00000 M07*qoM6N<$f}e<{V*mgE literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/greydragon/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/greydragon/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/css/colors.css b/themes/greydragon/css/colorpacks/roundrobin/css/colors.css new file mode 100755 index 0000000..6878554 --- /dev/null +++ b/themes/greydragon/css/colorpacks/roundrobin/css/colors.css @@ -0,0 +1,192 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: Wind - White Hawk color pack + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #FFFFFF; } +body { color: #555; margin-top: 1em; padding-left: 0px; padding-right: 0px; background: transparent url(../images/bg-body.jpg) top left; border-radius: 10px; box-shadow: 4px 4px 12px #333; } + +a { color: #555 !important } +a:hover { text-decoration: underline; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-main-in { overflow: visible; } +#g-header { border-bottom: #050505 1px solid; background: transparent url(../images/bg-header.jpg) repeat-x top left; border-top-left-radius: 10px; border-top-right-radius: 10px; } +#g-header .g-message-block { border: 1px #ccc solid; color: #000; } +#g-footer { border-top: #050505 1px solid; background: transparent url(../images/bg-header.jpg) repeat-x top left; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; } + +#g-column-left { position: relative; float: left; right: 40px; top: 16px; background: transparent url(../images/bg-header.jpg) top left; border-radius: 6px; padding-top: 4px; box-shadow: 4px 4px 12px #333; } +#g-column-right { position: relative; float: right; left: 40px; top: 16px; background: transparent url(../images/bg-header.jpg) top left; border-radius: 6px; padding-top: 4px; box-shadow: 4px 4px 12px #333; } + +.g-sidebar-left #g-column-centerright { position: relative; left: -16px; } +.g-sidebar-left #g-view-menu { right: 120px; } +.g-sidebar-left #g-viewformat { right: 24px; } + +.g-sidebar-right #g-column-centerleft { position: relative; left: 16px; } +.g-sidebar-right #g-view-menu { top: 22px; } +.g-sidebar-right #g-viewformat { top: 22px; } +.g-toolbar-large.g-sidebar-right #g-viewformat { top: 26px; } + +#g-gallery-logo { background-image: url('../images/gallery.png'); } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +#g-rootpage.g-sidebar-left #g-column-centerright, +#g-rootpage.g-sidebar-right #g-column-centerleft { left: 0px; padding-left: 26px; } +#g-header #g-login-menu { top: 0.6em; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info h1, #g-album-header h1 { border-bottom: #ccc 1px solid; } +#g-info .g-description { border: #ccc 1px solid; } + +.g-thumbslide { border-color: #ccc; } +.g-album .g-thumbslide { border-color: #ccc; } +.g-thumbcrop { border-color: #ccc; } + +.g-default .g-thumbslide .g-description { color: #000; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-expanded .g-thumbslide .g-description { color: #fff; background: transparent; border: none; } +.g-album .g-thumbslide .g-description { background-image: url(../images/ico-album.png); background-repeat: no-repeat; background-position: 8px 4px; } +.g-thumbslide .g-metadata { border-top: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: 1px solid #ccc; } +div.g-resize .g-description { color: #000; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #ccc; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #ccc; } +div.g-resize .g-more { border: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #ccc; padding: 5px; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { } +.g-block h2 { border-bottom: 1px solid #ccc; background: rgba(255, 255, 255, 0.5); border-radius: 5px; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #fff; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #e8e8e8; color: #000; } +#sb-title-inner { color: #000; } +#sb-counter a { font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #fff; border: #303030 1px solid; } +#g-add-photos-button { border: #303030 1px solid; } +#g-add-photos-status { background-color: #fff; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile h1 { border-bottom: #ccc 1px solid; } +#g-user-profile .g-avatar { border: 1px solid #ccc; background: #fff; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; color: #000; } +#g-site-menu li { background-color: #ccc; } +#g-site-menu li ul { border: #ccc 1px solid; } +#g-site-menu li ul li { border: #ccc 0px solid; background-color: #ccc; } + +#g-site-menu>ul>li { background-color: transparent; } + +#g-site-menu.g-bar { border: #ccc 1px solid; background-color: #ccc; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #e8e8e8 none; border: 1px #ccc solid; } +.g-item .g-context-menu li li a:hover { background-color: #e8e8e8; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #ccc 1px solid; } +#g-exif-data .g-even { background-color: #e8e8e8; } +#g-exif-data .g-odd { background-color: #FFFFFF; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #ccc; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #ccc; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #ccc; } +#g-comment-form { border: 1px dotted #ccc; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form.g-short-form li { margin-left: -2px !important; } +#g-quick-search-form input[type="text"] { background-color: #FFF; border: 1px solid #ccc; color: #666; border-top-left-radius: 4px; border-bottom-left-radius: 4px; } +#ag-quick-search-form input[type="submit"] { border: #c5dbec 1px solid; text-indent: 0; width: auto; height: auto; font: 80% arial, helvetica, clean, sans-serif; font-weight: bold; padding-top: 3px; padding-bottom: 3px; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +#g-search-results h1 { border-bottom: #ccc 1px solid; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background-color: #e8e8e8; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #e8e8e8; color: #666666; } +.ui-widget-content { border: 1px solid #303030; background-color: #fff; color: #000; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: #303030; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #ccc 1px solid; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/roundrobin/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..53dd589fa194f5db985e4301c7a73ed4f1b9ad99 GIT binary patch literal 2545 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 CgqPp| literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/bg-header.jpg b/themes/greydragon/css/colorpacks/roundrobin/images/bg-header.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f33f0c62ed9c2e492d7e796c41199c3164efd90b GIT binary patch literal 13609 zcmeG?30PA{w{x=+2us*RMGZTMKoa&S0to@aA`np2--;o*gh)tY78bQGRBc6D6;Tx2 zMZ~3A_q8s#;x4#Ut1W7&3)Z66eaV}9Ljqdc{;&Pt`@Z)*FJ$J-IcLtCnK`qa8N+vm z8{{ZKi98R0)Kt(H0AK;=2mnL~AwUWPqzg>IVT`r}p>*I0kjK6Qh8Yp34j6JFJpdV( z13)d((+saie7o?l0h9n-;cqL#!C^-TpZi=6NF8~9f|6XJUf3TgQwV^Mohgo$s&Y|g zdcI1h(&nqwOnzo4Gh42ds*1IM!(y|ztZ*(noXKKw*^%7f5CBNC0iZ&;Bo>FmUS_Hr z)O#7hT%L3pu@i>8*hfK#9XeCG)(aWkSuaFmt{1Ek0Wrxy#uCi3iF=IVKq8D`sm9pw zo#7Wi$Lo^APX&nK0kFYSKspKIGkg!G0J?>R1tZl6AY;5ctZES2DvB1XBn1%802rwJ~3=3!yQX=9G2n>YCKn&Mm zC8>tPNHo-vjNl(s82g9-A&|%vss+u`3VEN100PlOv;znUAreRgGL>RMCeni;kwGN6 z*|W*98Dah$6*R2W zg>`Ehd=q`NWy+yu{jJCGK9#jox6V6!;iunLZ98(Y^~sRDqG|K%wjaIp^V9HzY+3Q= zRjYR#yL|f@0}u#MTN17ll|l~1Rd8e5lb{A;+#SfA$#Wbr4GxOVw+DOX-q4g)@H3qx z+K`7{6iflCcW6TsRAOZ}sbFxJ4!vns;g2=&=~TgR70`)znG6sO+9n8-3I~W@)UNvJ z*`&(Kt3^VuATQ4fVY1irRSzpFl7@Uc_g>Y_>H!s^{g*Q9UU-4pRZU3)Duiin*%>*!wwYS&8SWgh!djsv5%^ zeIE&vk1q0r0-=cWZ4ra2c^TKe{97t=#tQv%9ADNwUoA|UUGwnO+}9#u(hbgV&x)#x zz6S7#gBRiz)TeEQaI4TO+R)UNIdLP+vtl02=Mk+!G`H?m^Rd%j{-;BHnh!k`dIhYe zHEZTi_Y*cJ{^IAk>WKm53RnIL3DJh;wt>Q?l#0rwZ^n7Gw{ntlTB@Tjcvii9R8eIB zBQt$wJ*nK|xoU2m(91u~ajOA{7Kb14@_$n*9Jt1Fwc$crq%dGW!|>M?qJ8qF8@hrKdZ%cKD5tF2}LtjW16m-@Z_hX}Dte zg`U+p{R9WHKm<>iO2Vct0J^y%!vV3USAsdlCWbFWMjkJm$IfZ=7aP-`Gv-9vyclOS zfU^Y8&&6qTVQ2?`*hB$eBQ&wO$94*vty}3QZ=e)EAmyEEXm3_*g7d>QEC6 zgE1WB$9YrLJVmZbrNAWH;&L(?J+KsLjm zQ$PDI`lYFLa+OjG>Gl{WU#(M`#6lf%HRgm!rcE^`_!=d@GojRVCQ@=0S~F#kOjl%1 z2nrQ(<^-%}r)Zv}K$ey}S^~>AHlV3x;K~GBNy=nORr=f*RSTBHzXXl)cQ~Hn_k28! zG;6R@7w;ibU_D{}cnT@=LwJ!^p)=uQwniIv8gp0{p%R@+6DQV*u^Qk?rpwZ`rcT3P zj1$Iqho+!;W-;b6A&>r@Vul$hSnm;k!C^a)U@*W1mtczVp7q9Q zHl1>!Cw26>HIBn9y9DR#Zcg{cr9Q^fG(3a>f?En)s@5 zcnaIln6x#H7Z#2o!UfWp#&pLxus*lI^H|`Rj?qMjfx_Ugqvd;J5Wbx-=I((diPf4y^i=T$Nra)xJ0WBsw;v;gcg~v8lctRN0MK)EYQR&t1peQPhTqaj`j6Av^6O*2X zLzWg|ghKD0z9)Fx)7rkExo3lsVsW?H^VGd5Nsmzi41)>!#O6B_D4 zm7;lKJw7qgicpR21MEXg=y%zza%Fs#LZ#`_xD2CwUV@nbvw%S=CDzt7ok|UtLoI4D z42))}fQIxtEIn7Hg9i0GycO)?{P)@M@#u>Q19bQ!M7QIxaqKzbFlNHWaf@*P;$;|M zg99@T_(S>upoe1~Zuec__Wk4b{^R!kX=n}P9Qh@51xhPz>qTGMov)`R5mqxi~ho-Vp)qFHxo;X&6 zW{w?{B^g^FiIloW4`dD~;g%Gt3sIezSyHG_YPls*?znI+gfVoGI}>No6-2q?4hZJZ z)O03ar9qjYfvf-tD~!bqV+XQ>L&C$u`!O*OOAw0_#O4IB!@0p6E{nzN_}pP>8fhL^ z6c^u77EDFCcT}plxHzylI8ddL1+gO|BQY5qP5|Tx(3UE7;*tQR*25$r4%JFDa{N5O z#3aJKvR)VE4mCAap-^oW`@yy{F-j$7J~doC@xrB&AXI@CqDq|>wksQ}zDa0ms+s+R zVhan++*+NW2x|0a9j3+Bv>*|xRp~VnR8Ry<^e`2s)rru~rukrD?`DVW=FDo7>+8ei zo5{G@m`aprv>#@dz@wf<9H0>w2f$TTCs)d_c46T)Rde|oR1D86S@5i4GLO!qZx_!S zR!j#s3J*7Elsjf90j#h94kwEf3>|XN8|Tl$%*Du>3QbQ6PeEOo!=XuKnf!L|Fsr2U zywbm9l}fmIDovpnc8t7GEJK4vt5F$VTxu#;sMPAjN(m~Ai*kp$2Fm49ZX`P_I3yyL z7tfAl#l^GP5qwshfFI9~5Jbj@NAO}zdE-lhIt zh!uoIgoXt}UE>6T(C}aZJC4PQj|}5QM)F`ocjm_TQmHB_?3m!Lcp;yku2JR56_B8X zUIeC4zz<_bhQWRdWV6d{OQT1zfeITDHfy3>3+%#(oQaPSu2_P(1)|&~m?fc7_YSoD1Ksi0&0!Q-oR30*e_~)pHmxd8S1i_`u`<|o ze{Q`&f26fmT=eHU^I}6IA|m+_{LqMC+zdikA^h0LP+nwkd?<$(VXE(YI!9uIA|x34 zs!ewO-`2UKAtm`@r3~wrAoqVz3*JAf1t<7_qZSgC5<6UU_J>-mfs>aG#iq7AjjE6- z#%xp~#tbf~NGa`DMa`ptsZ%k#Obmb6TvAjc@6zpEi!tlK{7)A6*H#A2>mOLz|4#q> zWi9@Cy8Zq5{@|MM9~vt`*xtf8Wd*%In;Fw_MoWmtj0<10xgVOhc>l)efeScS`nQ%5 zW4T6W#ot^;FiXcP+ht>ALc!e{2Aa2t15MkxkMYMA_}Bs;Ti|00d~AV_E%5)S1v(u~ zs1lwlilH0HaFae19u;%aMQQQE6anrNqbH`wl_~KS+!M1z-9 z@YY8x(W+B3QG5O_T&h{bWN5B zUgnYp!21KbtP7mm1=hjq7|09wDs?G-LBaHu_%WfUEP|Pc7Av4wwo8%LVLzcX-Fq#^6thUHJYC#QN4qf1H8$8RC4Z6W5uu6Q^1MuQK7KFL8D! zE_WdSJEj8Qa1fmQ~+aj?6UQaN^{ zWy+QBxM#XZ_?y|fNWeg&T|>a3_APMC2?Ta$9Rcx|Q-I`P1&AY-Knh~+w-nkC=m!TN zyU%T--9s4C@$j91FbgILS~-443izTdrbMqPGP01chzy?!*aAn;9rOksz!wAn4hRSR zK@1RpB#;KOz%VcpUT)`uLU@f`490`WU>cYKW`lX48Y~61U=7#+HiI2tFE|K}f|KAJ zxCp)nEua;&fp+i|yn>hTRKyx_K)NG+5HG|Z;UE#nKtzC~AR=TKG76C)N<@#0M?OPl zAQeb8vK(21Y(jP+2a!hPJaPrOf!swNAukC;0-fMU=tb}*1Q8+#v4mto7U2_uj4*~U zmN13z6=4Bk1z|m5JK-SVB;g{Vh0sQL0v{1t5uJ%{!~kLhkxxt`4kzXjHN*+Ta^igA z3gQOhZsIXwGqHtupZJ1AAvutkqySQXQX*+ENkSS!nn0RKswUNwwv!H%nn^cE?WDJ4 zYqBfZpUfo-$wSF9axr-tc|N(0yp4Q>e39HreoCQGoGCt(a7rR&7-ckN9AzeDF=Zp= z0OdU87Uc<*O6^Ydr$$lJsA8&)I*q!Jx}Lh9+C*)oKDV&4=wrdLh_@JSp|mKom~XMx zVxL8m#chjMG&`CXjY~_TNol3DS+rW(ZrWK|EA5pf!_vnx$}-DxwB=;W1(q8uk62!_ zd~9W9Km)$RyV9((Cz7c>3sSKx}N?OeKq|6{R;iDwY9akb&U0J zYn}C1)@!T}S^r@D+{VEs&_-w@wV7yBW3%0+$>xDA&DP5{)^?=rSljuwTWrtT-nXOK zdE4>r#C8+xYV3B|UAB9|aA2?*X^cX~OvYM9Bjb)e)!y4)U@x_wV!zV&p5U_**k?e4RI=Qs&V?(sl}P-?CmUcRyfac z-t2tI`DM3W-D10;-KKZj(5c_++#_PBR%f-bnMx`r=(|j&&@rrx)NObx{6%Kxvq3Q<@%&o?_LSL)V&t=I@Ifa zZ|B}Iy+`-1?7gq|-98R|2KJHnsqC}A&poCSGnT1fE?^#Jw!68yCA#U|mb;yCd*$xq zKG?m?eWUwz4@-{-k35e`j|Pu+&pw{1p5r~&d0zFRc|~~TdsTTI^Lpm(wK>HTKh)(j`3aLd%=(57vWdnx7hDoUqau|zWIG?`kwVC_=ow+{TKV6 z??>(z*-zPTMZe1d^nloaqJVV)Hv*jlQv%BZcLY8N@(datG$-g-&|6k0OTnsTeb2UM zC$Y=eyV;L8eK`_N4d+6zb#Q#}#NeI54@3Mz(2yk|--SAariOkV+7S9CEIdpTwju0p zxM%pN@I~R5BOD{rBW6Y%k0eL(A}2=fjeNlk?=yluQ^d@lb} z{((4RTtZxV+!=wrV6dQC@I$bO}n1%lRhSWPX;9;J)Iv?+5!1)(>tNVmoBSkTpY|WyfV#WVZ|r8v5zblf!xp zlMmZDoH~5S@Veno{w4U=ynnTh2putP#HCMsJ}LR6ab%B?ijm*u*yf0Hwu~Z=${w|L z)N65?c!l^$t}u5|Zo7mpsgkrwW2BYRyJ!?zf!@xG%B#q`Ba4#FmEFyc&Yz!uU(T0T z%O8$T9KCe(vx2mO)ddDcwqj$UMd7HzT}pdpf%34bx2i;SUhS`*rfwO-9W!rCyCzvv zr$w}%Xm{!y;b!WT-d8_Wf1_w%QBBeF;vvObN*E=|l2fI9OQ)CK9veS))i}~P$+(8` zZsRA9zwv48r^_cG6LKdsO!SyIWn$~3gh}<2EhiUDK3&Ett0?>Jv+U1yPw6#f(v(|M z6Q-`4W;0DQ?egdSKVSL<=?nQ6XQl^FUpW13xwQPm4AzYKGhWY>%slZW`^yDi8otW= z>ddULSxaV9W-Di3niD;zzJgIPw&K>@)VbR$nU&?0zs<{;*Em09{?aPTDt%SUf|Lb2 z7kVz7z3_E)e)Yu~Ud_fuu8XEGdbU`)xM@kuk_}6HEuFFSDl&Yit? z8LHf4us)klz}fq(AxL zY2njX&&r>7e_sD0;>EF-*)MOuDt=9Uz2J@Co851d-(E8m!l!u;fLq7AcWf^JpWNFK z3B;~%+yMR*oL?}rFn_N?jFE_QY< zfAcAPgZU{ud^>J@3V#@s!J`oJ?xqJJP~XGAdfCCp@z_(qP717eN$PxH_o&j^V#ef(j zF+B$O0WcLTo8&l&FdLpc{49BuIBd5Jh(L_B9k7%x!zi$V{rz9!8j8c_f^z*@1 zt_D}e`NqYK$o(X~qQra4fh#tN#}~TwWG-h^1fQEThv(Md?h)o)8d&S@);;^gacTX` z`bVP<#|eBl9?zRl`R2u)f{m56DOvT^E)!Yh)%B0Y%KOy1a*n^{g@j1e<9}p7@+;aA zeDLi+@+ncC0T^pXphN>dW92$Q1cBIg+x&E@lSi#n`XQ(E9NM6QU7~9j`|qrGkdM4K zw{&FN^@OY|SJ?MjR^D8EyyyDT)zpj0^K4Y)lrOu@7&>Y1$a|B1s@a;qYHLaQAg+Z58f?Lfh6{{s{H)ofMMu32T(^%{OK?OJJl|4ms> zkc_lipZop6vFfiD9yySC4r!RaC-00!+SOOnMh<8=%d6W(CT+Wt{Mm}!9FCKGc6#E) zdE@q6txerGIPp!Eed;8?pL%kRR1(N1IaTfl$cYW*af*ANSIidFa+Wta zHmBFx1>Qi5vxvECZ$Hd(dx$c(Pp&L`I_jid0MbA5g5Q^ksc$@jH*Z{7uRWOibn5iR zc~@`zojO>**W>dfVLA61>M-v|`DC6jbTk1cpj5t>(x&F-euByCfa*?GAYIP;y zV5(s4nk{uc3-vz2!7Z839BS5{J}X+IYE1w6)UvP}f}#}AZC=LVbxRvFs}Ge=vT03Q zGYH{2c}(xSYTM9z2ea{{ zg;1}&q3h!ZeO=^#{lculiCfnWYz-bL+RInoBmS`N$kD0IPmex0d9QK&^b>(Kf1vVSDfjHtjMhEAKQ_+K*%D;9@?U|dxzPXs literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/colorpack.png b/themes/greydragon/css/colorpacks/roundrobin/images/colorpack.png new file mode 100755 index 0000000000000000000000000000000000000000..12fea30e1fa2f98936a6df6a288cd652b57468e2 GIT binary patch literal 475 zcmV<10VMv3P)<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900CD?L_t(YOWl?+YK1@$hW8L2!4r4_Z((7d*3#C(O7H}N*abTY z=}m8AAvSsd5kai%Ooj|B!|uF&#Nx&GmPN$X+4<(5e^I=>#1KI7{p14>RE%*P%d%v- zq-?nQ@%es*37Ie$zV8pipkwHw0mHwmh&lWj0|k+4TpA+?0>^Q}FkF^JCMvVnF(@0> z2EW1^_Nr)Wh+v3@jm@i(B#C8Nd7h_f+B6NVx9*L*>6&4b8X2(JI3^5O^E}VC?V>2Y zen;Q;Z1YHO&|02I1yj6L^^<{98gxZibW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE-^4L^m3s900E^*L_t(YOWl^=ih@8C#(Ua*fVxc+yr>NcgW9^Vwe&)W1QQ`5 zHG=TZg`gJ&-SjHEhh`au8ON4oY26MHI?b{3n{U1|HeQ}08bI;!&jS#Cj^TP%9X=pI z6-E#QmSrVL0`s=pZ5+pxX29_0Dxw;=7>C1QHk%oS;d$O_wVKc8j^mt8C$jEZV_Ytm z{eHh(E`8r$uh&5Gev8Fo0pr)}6_bz{xJ{s6(Jj8lDWng{6gK^C3Yt)^2CVmHvw?D5 z*PTwMZ$ym8V_ny?EMqaKCP4vErSs~em{At5{owHujG`z&gwbdOP8bXZuea#;`|#cC z^%O;ct#v#ec^Fs$vVl{jd{YfpMiQQUNC`$1MVh8bk_0-~w%u;GJDrXwif}O;4#6SF z?iFfKOUSNhwK6O2Fwn_P*v4ds|ALZWx3gG3W8voCJ?gEV!grJ7_3m(Kc(b6 zH7E;ly@5zz3w66)@b_dgfm^CUm0FyIe9TBy!`ubCp63TrbLIsP8AC4TE)zE1Hcc*p$&NOLexb!oS400000NkvXXu0mjfk{#|Q literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/ico-album.png b/themes/greydragon/css/colorpacks/roundrobin/images/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..ac87ec4fbf6acb75ac29259e60d8a9a0992cbef0 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA3y|d6q_!SNv7|ftIx;Y9?C1WI$O`0h7I;J! zGca%qfiUBxyLEqng6t)pzOL*yIe{8wlsqH7fI^Zbt`Q}{`DrEPiAAXl0g0J;C3=3Y zAqr*2dZv0NcD-lHfQn9fx;TbNTrR!1-|KLKgxkmXN8((Zi^|H1i>6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/ico-error.png b/themes/greydragon/css/colorpacks/roundrobin/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/ico-help.png b/themes/greydragon/css/colorpacks/roundrobin/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/loading-large.gif b/themes/greydragon/css/colorpacks/roundrobin/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/loading-small.gif b/themes/greydragon/css/colorpacks/roundrobin/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/search.png b/themes/greydragon/css/colorpacks/roundrobin/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..d9592d8f1115c86534f0c4ce505929a289e2db2f GIT binary patch literal 550 zcmV+>0@?kEP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 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 EA3PHMPyhe` literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-calendar-b.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-calendar-b.png new file mode 100755 index 0000000000000000000000000000000000000000..f3ab6aacc6165c52cac97c9cffd6f906f48946c3 GIT binary patch literal 891 zcmV->1BCpEP)N2bPDNB8 zb~7$DE;u(kfL#Cp0b)>0R7GN9Vq;@tWMpK<#>Udp(%9J8-{0Ts>+6V!h>3}brKP2& zrl!8WzP!A=zP`S|z`*nK^VZhZ+}zyg=;-O`>1JkTXJ=<)UPbaZrqfq{a8 zf`x^JhlhuYi;IkmjE#+rj*gCxkB^a&k(rs9nwpxNoSdGXo}i$hp`oFoqN1atqo$^& zr>Cc=sHmx_sj8}~tE;Q5tgNlAt*)-Fv9YnVw6wOiwzs#pxVX5vxw*Q!y1To(yu7@< zy}iD^zQ4b}z`(%4!NJ4B!^FhI#l^+O#>U6T$H>UY$;rve%F4^j%goHo&CSiu&d$%z z&(P4&(b3V;($dq@)6~?|)z#J3*4Ee8*Vx$D+1c6J+S=RO+uYpT-QC^Z-rnEe-{9cj z;o;%p;^O1ulq(=H}<;=jiC@>gww2>+9_7?CtIC?(XjI@9*&N@bU5S^78Wb z_V)Mp_xSkuAzVq{0000LbW%=J78VveMNp2Yv9YnSy}`u9#o5{7?EnAQSO5S4X-Pyu zR2Ufr!8>!)Koo${@9tj7mSh{-U^CF9p@5;G<4^FvshMFy0R>GmfD^|LDPDOWmvg*G zRe^|5`z#`&i)>CB=c~~Gn@AAAO=8OW@$;Xzy8*=3`d7fZ&A;te?e{;Y-v<+y-^;B7 z>puPRy;^v>J!HY;w~HoN{PA#8lytqPc!Rx&f!SS2qJGvPAQS;Gp~&3Jm*=_|0)Qa^ zltx$Y!X>B+UEeY+&Qr!_+C6D5wip{fEDtkI?S1I`I@hl?QDTfG#~4m`yVEpYEvKs* zR${WS+a2WER_cA5Yt@W4vo57nt);xOIsG~)YQ%gFIXZDThlrE98MRRBwDDydw&cxa zgKh^OwD5dACO@1mM~34tp>LQSG*h?NxsR*kQZB3W(rg*4q6MewRaF&Vsp2(D(d=y> z&#pXhfSn!5kF8Js&6tZ9TvjtJ9()-ed;P!*0T2Ta1FV0k@XZ4V27rTf!+%YA#%UdP RU7-K~002ovPDHLkV1f!9>U#hH literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-calendar.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..a4d038ad71e62eb14f54a163be949a5ba1ea615d GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zU-L15RjOeSEA?V8lq5U ztY@lcVQ$?J3sh9>>EaloaX$IQ5iSWU$qfuE47!|D5>r||4!J%(y3`>cEUHK8&5;Mk zC!CmYIN-EHkK#3+bvz4sPVyXeS!tHGA&G-+R-D6>EN?dUHix!~lB+jrJ5_xOS`=O~ z?v~_K;8qsNQ*-*7#>S#@NZ{A%WAE~kn8g@M!{_~Bu`*i(w4TA!)z4*}Q$iB}Nx)Jc literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-comments-b.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-comments-b.png new file mode 100755 index 0000000000000000000000000000000000000000..aa91298f16ba09a036b96dd3b6f0973b169c7900 GIT binary patch literal 600 zcmV-e0;m0nP)N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000)&j`m zEbxddW?Q^ULSCC*7OE4+d>bIDf%$#!m+6V5RR5eCrmnJ$I|Q lnO!+?qw{skh)?w!_*u02E*_6_*92P3;OXk;vd$@?2>{>(WSIZ} literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize-b.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize-b.png new file mode 100755 index 0000000000000000000000000000000000000000..fad5e53e108e9ca0385ee006d8a43d8d30204020 GIT binary patch literal 670 zcmV;P0%84$P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0q;pfK~y-)ozlx{R6!8N@!#n=i5X`yMq$vn5EMm3M2+A|QE=f(aH|jF1Go`a zzJxnPbfvfuL~ti4M$q8>g2v1xll1B1;+&CObfI6<-38rM|Ei++4`p{}n^&eUH#!;C z?(w-^Wv_R$cg6jypHuk{T1t;^A*$)F`^$MG;@!inS&e|9Ati9r`mT5#QwR6}M zpt5O8t-KKRBwcOE$jGu)D{LSV1j&R|d6e|^O*kZIYAO{5z8MGtzj;9>*=ki@h=!5{ zEqm&&^^GiBmI*as>{{3+$qPweY3P|59nkX4lA=zla;p+8Bt=CUCkvEOlfZS%xew2Um;Vyj6}QIS^l6f!~Z&{Ip^n|I2r z^PYO)wC^72>+8rwaa>cZ^A3IrGV?x}bHbe6-Z*B#b3@ToRZ|iT#oy(Q+dFjM7bnfy zg*oqh6t%=Ey(EGpt(|0(rhL#gjTuLMu_!4NLaF%U_?L#3HGHk#4?AGRQbn>Z{#p$@ z(A3q{waZTXz4EDQgujp~4J}we%Z#?~l2Vd~-h|^`Z{n33te<)&9MMz^^2V*V2hU_@ zmCE|VT5G*~rr}jt-pj+a#m?hPjn1E&u~Bi5ZhyG`3y1mlKl%NXp8x;=07*qoM6N<$ Ef``W`p#T5? literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..cc4fbba233a9d0e54961649eff6bbf2a215b8be6 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?h zMPZ&Ujv*T7*G{<2%b>u)967%-;=+Oz0;@k>-9OJ)Rkck?Z9&i1t-_{l&XcacOnQ~R z_I7dAffc{6-+in$nbp5tbfVuT!#9)p4wo1%vj|-Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+6A`RQ1Gbf_h=o!T*S%0$+C^=p(Wje_ zG}?Ne)pvNlvpBp*h`wqMltx4MqQyWxSP$sRWa_rKsWM}MR)HhF@SAf!(84@>P>$UB zN7RSHxjbLFUTsVsO*T<16gapxL9vi!1Lf zN|=Ps)nO5cIn;1*@$lGTpF>V)vx`TKA_gIX%%KpO60?4p3RS8&I2`wuwnr8n1%)tS zLPUrxiD1(rgN4N^HZ~P0dqgD>6v9La`6Ad%5GR3&Ns=T>Qg+eMP>IP8F+#qW^)+H> z=;#>4F?*8@40LofVnk6{ToXp#kYWO}Z?exKCJEx`=%}b@QzA8P$cZV^WU!^Yjl~LS z7BMl1qn(?>B74g?&5&Xli!6DHQhr8(95xndl2|Nk2qA<}Csr?Qay+Jt!&50A<4~nU z0h=7@u0A5uktnTE!C{@3eerzHI%`y^P{Ew}o94l|>*L|#<4J04Qlo~)=EbsoCDHjI zE9bILg9c4nJg3Pn4PLQMa{51KWsljd9gcZNhYoK!V(To|bnf18h5G}Q(WU!O>cx7w gUMi+1SFauHAG-~MiTl%uTL1t607*qoM6N<$f?|g!uK)l5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-info-o.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-info.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..4bdb724efb067139ab8af07ab43e37f647001293 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?xNjM zqC`&@#}JM4ODDu~9WdZ%-dlHWGIw9p_4#X>*4Sy(d2|@coK9$;WwDOs^?``LV%o>F zc0UdX%h|r;Yo4^|{hQP0`%Ge~XZ6-Udgoa8%kRzX&!#MW0G8LiYo@(#vwrqLyO(lJ Vl>#?g{s1jw@O1TaS?83{1OSBET%-U1 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/roundrobin/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/roundrobin/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/css/colors.css b/themes/greydragon/css/colorpacks/slateblue/css/colors.css new file mode 100755 index 0000000..c684319 --- /dev/null +++ b/themes/greydragon/css/colorpacks/slateblue/css/colors.css @@ -0,0 +1,176 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: SlateBlue + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #1c242e; } +body { color: #BBB; background: #1c242e; } + +h1 { border-bottom: #737373 1px solid; } +a { color: #6392CF !important; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-header { border-left: #10151c 1px solid; border-right: #10151c 1px solid; background: url(../images/background.jpg) #1c242e repeat-x; } +.viewmode-mini #g-header { border-bottom: #10151c 1px solid; } +#g-header .g-message-block { border: 1px #888 solid; background-color: #AAA; color: #000; } +#g-main { border-left: #10151c 1px solid; border-right: #10151c 1px solid; } +.viewmode-mini #g-main { border-bottom: #10151c 1px solid; } +#g-footer { background: #000; font-size: 10px; } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top, #g-column-bottom { background-color: #1a1e27; border: #10151C 1px solid; border-top: none;} +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info .g-description { border: #10151c 1px solid; background-color: #1a1e27; } + +.g-thumbslide { border-color: #303E43; } +.g-album .g-thumbslide { border-color: #43565B; } +.g-thumbcrop { border-color: #303E43; } + +.g-default .g-thumbslide .g-description { color: #fff; background: #1E1E1E; border-top: 1px solid #303e43; border-bottom: 1px solid #303e43; opacity:.85; -ms-filter: "alpha (opacity=85)"; filter: alpha (opacity=85); } +.g-expanded .g-thumbslide .g-description { color: #fff; background: transparent; border: none; } +.g-album .g-thumbslide .g-description { background-image: url(../images/ico-album.png); background-repeat: no-repeat; background-position: 8px 4px; } + +.g-thumbslide .g-metadata { border-top: 1px solid #303e43; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +#g-album-grid.g-panel .g-album .g-thumbslide, #g-album-grid.g-panel .g-thumbslide { border-width: 1px; border-style: solid; border-left-color: #666; border-top-color: #666; border-right-color: #10151C; border-bottom-color: #10151C; } +// #g-album-grid.g-panel .g-album .g-thumbslide, #g-album-grid.g-panel .g-thumbslide { border-width: 1px; border-style: solid; border-left-color: #666; border-top-color: #666; border-right-color: #202020; border-bottom-color: #202020; } + + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: #10151c 1px solid; background: #4a4e67; } +div.g-resize .g-description { color: #fff; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #999; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #999; } +div.g-resize .g-more { border: 1px solid #999; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #888; padding: 5px; background: #555; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { border-width: 1px; border-style: solid; border-left-color: #303e43; border-top-color: #303e43; border-right-color: #10151C; border-bottom-color: #10151C; background-color: #1a1e27; } +.g-block h2 { background: #1c242e; border-bottom: #273444 1px solid; border-top: #273444 1px solid; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #999; background: #1E1E1E; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #101415; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #101415 url('../images/section.png') repeat-x; } +#sb-counter a { color: #fff !important; font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #101010; border: #303030 1px solid; } +#g-add-photos-status { background-color: #101010; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #888 1px solid; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile .g-avatar { border: 1px solid #888; background: #555; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li a:hover { color: #000000; background-color: #303030; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #303030; border-bottom: #000000 1px solid; } +#g-site-menu li ul { border: #000000 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #212121; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #303030; } + +#g-site-menu.g-bar { border: #000000 1px solid; background-color: #212121; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #181818 none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #303030; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #303030 1px solid; } +#g-exif-data .g-even { background-color: #404040; } +#g-exif-data .g-odd { background-color: #303030; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #737373; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #888; background: #555; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #737373; } +#g-comment-form { border: 1px dotted #737373; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #737373; color: #BBB; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background: url(../images/section.png) repeat-x; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #101415 url('../images/section.png') repeat-x; } +.ui-widget-content { border: 1px solid #303030; background-color: #1a2022; color: #bbb; } +.ui-progressbar .ui-progressbar-value { background: #737373; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/slateblue/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/slateblue/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..0996045a0978d28e0ac2fb83a634bc349cfab407 GIT binary patch literal 4782 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/background.jpg b/themes/greydragon/css/colorpacks/slateblue/images/background.jpg new file mode 100755 index 0000000000000000000000000000000000000000..7ec958a78f88fee71c1323163080b4e5516b3850 GIT binary patch literal 907 zcmex=X!XqN1l2cOC(lau%ic3n% z$}1|Xnp;}i+B-VCCQY6)b=ve9GiNPYykzOJeA&aSFc^aar4&0M~|O8efIpt%U2&ieg5+G+xH(oe}VkP$iNH_GKkO6{3QtV7ZVE$ zGYdP&UyMxUAdd^Ouqqm|2{{I`Cl(4T88vc8f z2KE_o9%~}YXK;@p{B?_ghnW!=dCYL1Eo{?G72I{80C!-V>eBH@`EYwd&o znS@_oSzow!?d})*_x{cLef!xJm3^0g-=Fkvugw?p_3K~MAL?4Wr%L|vpNuuUT=&wq zzy8l~ZPDs{yXLR|8Kg9r*7>jeb5_*9;*0(A9~T`&_ngna{-0s3YuLS7_SgSR0$AlO z|L)yY-)_HDRR5c5`(OL|2e(82Gd#Ja9T%_h_x$PezkY7ibp5-!X0QF(zxT_wiUfuw Mhy=Pa)c?N;03I|btN;K2 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/colorpack.png b/themes/greydragon/css/colorpacks/slateblue/images/colorpack.png new file mode 100755 index 0000000000000000000000000000000000000000..d3fd9930e1bf42d29144f6523ee276288af4118b GIT binary patch literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^PC(4h!3-qReO_h&DVB6cUq=Rpjs4tz5?O)#oB*E? zS0F7SA|j)rr=p@_WMt&v;1C`j9vvN>mX?;EpI=^H-q6s{($dn^)z#bEJA3x*dGqEi zSg>H_%9R^7Y}mhl|A7MsPMhyym|Bf{ris} zKYsuI{olWT|Ns9lUEBb22WNptWHAE+-yslY6xHx*018T$xJHx&=ckpFCl;kL1SDqW zmFW4ohA5O7>zV4AU1(k#1yr=y)5S4FR$SOP3dI^3G<6yYc@ldS$FwV$*QYo*cxwE%)jJnv{g)Uq1UlRE+&b)R^{m|tg!2;*R?zQ>(9TF zOa@|>-AZ%$7_a0CroR_weE0ID^Of6=we3#?a9@`%ye>X*g-x9HW>Juz7(8A5T-G@y GGywo;B(gyO literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/footer.png b/themes/greydragon/css/colorpacks/slateblue/images/footer.png new file mode 100755 index 0000000000000000000000000000000000000000..04d5ee540e93e773ee421344adf7fa75848c16c2 GIT binary patch literal 376 zcmeAS@N?(olHy`uVBq!ia0vp^j6ht&!3-qlmuoEn2^0spJ29*~C-V}>VM%xNb!1@J z*w6hZkrl{SNcITwWnidMV_;}#VPN>O+y9PAvN?3`R2K*R+^+??DzoIE^SJiOez zeB6BeJp4c;z$+lgD=5S#D9kS;%r7h=AS@~%A}S~7WUg8>25}cn_Ql40p$`Fv4 znOCCc=Nh6=W~^tr*LCqppb`^L7sn8e>&XTQzs?_NVEX^~$=~+NHzHOjaeT7x(pYt( q-bD6>!7dQBLhryUvosZXU|3CAtoLO}sOv+Zeg;ohKbLh*2~7YHl27LV literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/ico-album.png b/themes/greydragon/css/colorpacks/slateblue/images/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..ac87ec4fbf6acb75ac29259e60d8a9a0992cbef0 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA3y|d6q_!SNv7|ftIx;Y9?C1WI$O`0h7I;J! zGca%qfiUBxyLEqng6t)pzOL*yIe{8wlsqH7fI^Zbt`Q}{`DrEPiAAXl0g0J;C3=3Y zAqr*2dZv0NcD-lHfQn9fx;TbNTrR!1-|KLKgxkmXN8((Zi^|H1i>6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/ico-error.png b/themes/greydragon/css/colorpacks/slateblue/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/ico-help.png b/themes/greydragon/css/colorpacks/slateblue/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/loading-large.gif b/themes/greydragon/css/colorpacks/slateblue/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 zcmbW6c|278!}n*-IkPWjhBOHchNdh{wkBC-?1V<*vZSmfT96{Cj1RMDH|I4McL~yX!;bg|+TWD*sLFDo~O26dHLjAqN{QVf=`@#Yk-hti``ww~h zY3)0>=MX~aJA}h5Kc(^e>%V^zfm&iP(*5=o1YEA#Ki?Lt@gVHLL`2oQs0nR6*lDE! zK(PrQcocf!jjqshu=~E$S78wg&9YBlbZp%f-FZ6X31%HrS@;O?lU{ioOxm?OK%oN@ zZb&&EcT}B3cEUJlktk_`wWzq`kQPYbu>m~qOa>E|9qDXIK^N>SVp2)DX@WR+By?t+vw27R1Tu1djF8 zmfShbFiV!VxmMbn$x>ayvH7qV*uBo4v6=f326Gja40mpX)dYEgeAedLE^|kklPz&Y zZP=^C(shtVq9_R!ou{Wz9{l4I5>aK=9=YP#k;=zanhbs#rG31#(D=YXqm+mHpO@Gz z6yGQ4z5Ani?Zc|u5giDZJYEv;WoyGmuS?zvSA+)Hl4QvBQ2&b`;UP0E1+Vl;H|Z#- z(b28BYgJwS{Nozmdj<9_4GYhj4p;N+pTRK`Id^ap&CaifBr+qi@ZssvL+A5W$-1`v ztNY_LIngADoo^7dvcL9JxEcfaj9o~7M%-op9q7sqPlebv+%p@Ml>7mk z;!ljsH@#}kSsT8ueVOZ*v#$)Rv<&J$K#_v|3q>&2TtLUB4va}^E6K&Ka%OIx%JENX z2tx~|U2`jLv>IMIVI5be>b0Rzy&ZVZ(HK`><|P*6rB2v?>KIunJsktHfSA}gk_IWs znGms_db%hjgK3kKgVwU9(-?gk?0NkUXS(GU3yT+jlnC}UN0XkvCeFk7K2HfUK5#5vQ~JF3XahVpJ^=CXUiES@cL|@`(s_*V^z438&pk!;I!%c%*X+x_ttod-2McHOLGgv5U4bQZH=k>B5snG{M3jXMO%ddlL2)A^n;*e^&{As(OgwSY6R3Lz1l*rdx>JY}FnZAWar zElN7^^SzGfi2TvH$pl6`OIa_37i+O~RevZAiKB?N$xzJsTW|D+9ZP-@ z6Mdaks$;Cn7pGeN!uF(@(zxzt4ExJxRxjaJwZ|*7h01th&z!G;9f>W@QPrJM4t3Lm zRgKUxlH$zaRj-QAqwFfOj1JL)UxaOH#?6MkXQJElRAd9^iV_8M;2%KyZb`hV1m?=n z+e_0!Sh7;q7qcvb4RFKz`vONIJ$BA+VtMKAN($~kt)t+D?`2$**57(nmv*>w|dqG3Q4hU-2o;O*!&%9|GFf%2h6;PQBVw5&bI9SYh?& z(Q6H>rmgYOpC3+$V+d;;TASWa_xy%d{sN375WguJYayedh)^;cu{z#h{*hB#OqCZe zeC1%(?hW7j#e%QN`?&l=&lk5~->np9@vMF-U!V|c){vfkel!-1RV$Z-3W)l1A}o;@ zTo8<=cqtv{VntkN$p2&3YFUTG&Uk8YuKjA+X6l3#RbxO|Yt+!cDDJ>#FLBBjx03YL zn}0E2B)&4jewALC#VFiGa^yl*ti9q4l+1ui$R^8uKA~Y6Zo{D@$aN;hD}LR}TwMG= z(azr(cJdiSsJ+yI%i%~trJ=SuhK1ISvK}d*OM@mdeK9`0dMUgQ=+<~xiO?3WMP^3yc zQ=Px_oHjj5 zW~1%+okQ)$GLuWlCRQk!gkCFU9D9d9W2Z!T{XFWcREg#4H9tulSH$VN%i6i#^X~PE z;Y<7y+kD&l%g$DWZ-dkUvD`y6Suyd1P*j{~3%x#eB+~1RE1(`)rYh8q8+J4l$uJb}y@6u7_dPyY zF!uf9c+b^Mht!BI+DWLA+j3i|MIoLt4IaK_#HV#{o_6}4XAA#C&hT%JREZQ;U0q8#whiK-h6W4;Dx?sAc1Brw56Driw|c}T)TX2Y^0UoNMeoTpp~8&k)+8OMWpC%P`zT;KjngI;Cu{dRaUt>##%Uz3V3-S;{KBe`K)-sfutrztheVZkn`IJM@YF^t zwN=sCTew31iXt$ z(?yADm*~v8dZX&dU{|C^eCNZWZ+T8J3!#gF zTxhS08P(0zlkhfll13rJ)Zmb{BwPX+7p@5ssQa}}!O^j635f|&Tw-Q^OtuOYmsEn| zdFR6v5%X9sig%#`V_B(8%*9>d;VPg8CJ}{0weaFIp+fN<3Oc3lul)IM{WJ#9c<`Ps z&@UWAfEesNWZG5QB6!kVpI$sqJ>I= zXl-Tl3yoK!Z-d{xumOIInR+Dh*;4*|8JBk^o9%n|f=yl7{r}d_4Kt}f{c5>_!IV^G znZ<;o)Wb{@>wR`8G}rFfy|@`@mrW&MmrQI1w(t32&>Bksz!<53^*Js#d)DqZS! zzaO{Xs;~LD&F6aoEY7*gmnO`(TvVsmjNelE@IfKPWrIW-#G4rH6aUA9!-@ zd0Xb!Vv5L3@N5N`74N%qWvJgsW6+-qms>*A?~4-BgI^moEm8q`u<_qazxnh03A|r6 zgJlI~K63rzD54DoU8LrC4Db5R>j<|cgiSm$o}XVu!uLGhz18Dq^G0*ZMATDj{sdBA zSLk{)a<=A=C&#D7OffQBiIa~&7{Q3x(Ifvh{i(#~bV@YvVqpLQ{$^ zwp&5l*aI2J*Umn0nqBYQ_T&&Jv>V$&&FznSfbNZJ#Q=d-1811n+q}qr#N+y( ze&B60^*ev6CH|xQ`EH5p9@D;zVymUkIks}49(wo;11lP(``OrY=ud)!wrZMn&1H$^ z?RR>TdbV7pafu&RJ~@66M?3%?4pRjP&N!-<761x1pvf5-VC-5CC^4J6os7xAxa6p! z&y^8)#LO!vN|eDeXLLnjL8e0$f(Vrr^YB;5bvIOqXaYXQgoLi|?TV#PQU*r;$I49r zGvKby6s1W5pfC&67aMC@(Th(=(8Bk3dH{rKh02fk4v=|m;47c8>CcBUH=!^jMM^n^ zQSI`aA>VhF9UpxPl6~0uNbF<`p)8kvc(WN&9E9q}?~%P`2oOaw82Z2Rr*dtKLO~t%ez-wJz#G(Xxa!s|r%z3Ne4Ym;>Y4Z;%E`_c-5-RC@Nf3lm zpXpCaaf$V4PasGac*xdHNs|_*4!8rrXf^DN)gNlsV=_#GfKUAA?UfrJZ$$KO^r3{qFF$PVE7sLKOp1)?T9M<0utG z6!d9{~%yB)nyyVx7@56NHqTrN0z7t`z2k) zam60RHy(LME?um6nWz5`O8DKznGh~J2a%SZ zY>dvoR4B4Sq2f#dej-#QQX!H`xd5JkzELm!JCJ*C-6bxkOrahLy!oJe8Fbvlhz^=M zjDOk*peDv~czx2)5Owm-*qd?cCiI7weXpL+%Z_=mt9I*P=i3G&!~5yb5rVA#yi&;j z0&;m&^4o|6iA!{^f#6s;M;fIO94w9ocWb2kdAygjClwfPMXWH$GJim|LNYDfKXoC_ z^A!fvm86pd6_zo3oG)iz`J-&Ng@!`2?*3#fKWKbsEdi%j;CcIp1|jS1Se5Vm)Xn4i zm+isLD_P=-;>w+MRtw6H@?2}ZY1{TaHH5R*_cfbO>-Pt8-g)=0_p?;puZ_CfuCev+ zK(;g-P>yx!(0IaVkDh>zo{Hw*aD6w?L%^CSS+$SE+@dn9_!m&%EPlPB4#Vijp@j`c zH&<(=B0qebc`}|i3Uj|sc=%m1Q#{qMTJ_$czkpnle`P(88EW>%RD4*BmB8nA(Pl86 z2&_5FbA6PC=rPRIWfa9?I9Lc+XVnq`kQ)Yp1&FvBK zaVuZe0fsbaUAu>gBHt%LEH7G_p{~Iw6#}&)r36WB5uBmbz!Yb0>j-mKkmrdn3I(ld zFLP;GujD{%Y7#eFjl?cXzf$zD48p>jSA!HTV)hh_Ue6-^L*HMfl@-KAlZuDb5@qly zGog4LP9b=?!9T))^ei~pu}QltK-#Q`(0!GiIQ7VgC6_0@cfubR0rK+fS-c zqtnd5gm_8{(}haKn^EGACuajL_(Cq>I4UOF$Liqas_L5BYjxM_8ycH#G`BbbAo>J{ z2xhea$8iufLXSvzaQjANZ||Tk`oYl_!b1qxuG{}W(ug0QozbC)Tkp)GT8)YbVBh<% z-@gC&^It!IEg?X>ymgJJJ?18ZTaz#VK^UAoGjLEuu8@{e^y&*xF0rI3nxsou0%q?S zMW-b!+>?P=sh{U^!5rtMW_4aJq_}V0wLRNpKpIxz>3RzVeT_XiGdOKOr^0P#4K7w> zne%g~8}hLJB3AO{O~>O;Ts~Z}t=7&Fo5bv@yYJF+;Og|0Ax17hT)Xj{!{9`!)hT?SJRdg)0>H(Py%PN4pSFN=! z0`v(6FYR%S_eN`@)nRF1wW=iJ{<1v{U7VaWHQJ&;lqe~L<@m$ZAL)dhDz5CGwSW1( zRmA7>8As0klo5&xZiX^QG9|3DbJ1;N-%SFCd8cWmS0C#hb}x z97q2UaRrF7m6ni{tt5jG(mH^EKmEKTk^OEIV2_tl;!Y&3`-bs?s)$?>%(4|trD+r} zxJbnIFL;Q`r0~+$GJ~hnsMiL#UO(lJ&3HSEN6?Xu2VLm`D@FDck0c}VL3*VBoc7+hnTBFO}`E0aOuL zS{7bATp2tofUtu_dBx`?=W4HMl`-h>vnw%=k+pcLy)XZ~zI3^PH@vs=0t+TTZ_c_n zRAO^X|3zdm@8S7*Q+L&Urs~5N{Tc;v^UhVnwDbKw_92d?-GxUI#!sx4Dc_nKQ=cRB z8_rCQqbr!pTUINdkHP5#jrZNCn|&ZMOHs5pcn;^`grD==eKTVpR});*QAIC-N7@YW zc-o?DEQFJX?vP5v2S;(iFIH$pRi{FCc5e~iW^jTf)Ijq@Ev4^QTOTQWD=pd*dB|fV z4lHc-5r;f!2J*chbl3_s>bCw{H3#h}lsFn7LEb}P7$Qa~F#CM~2FT{4eQN<`lSuGs z5K#nT%zI=N&^wzX5yot>cPv#+s6@plmNSx!aucVLy3#hnDcGoTz-UA63h#uDtK~^? z1Vv#X*2VmrBLUqv$BhZo<<21W@)(E&jNdEq83e^QKky2c4Fg`+YPdN8ijpzBW$>}B z$N*)bDzcC&+>?Wf+QSuuyv}tyvTr+>mpe#j%$)iwe*HAiSK)P*~gkK0F2RkZVIcL1LP^%rp+8Z+pGEiSPJ4W$pSYnB`wY5rO@F1=sH(7A{|HI|@DQvNNV(|3d_ zTMO)NT=QQ=8e?(33EPp7h)OIwvKKMC0x(WM|8&em064EhSBir5=BkTi#N$SC@xU_? zF43LR67gPdj3PGRNez>_F7iP+nhE18Hpj!;sH z#`Se4APDPOg)v5ym6Ne&&4VYA9XHrqh!7DDfS|24_k^?j^cv(#WDN{*i{}6^f;A-v zanjjbAqKHd#S{;%nh8x`h49Pd?)gRsx9i*Z_@cdD!8vFAEiuOf%9it|_Wvi4(d`3V z1Ap7N4zDP8H=yEr1iAG=l0CnnqXZ0WgTsq@_9`a5b7!iPJ&4I6%dW=g>m z2q#Z51>vUXL;^ZRH9Aeo6g)%8VjfLHMS>tDI4dZeR+ewIJYMccU8(#pM{m8^ruKW= zym-q5r1kb*>sF~_Q|=Cd_id@*VcqJXUR<{uflAHP!;STlyGfJO$tT*>S=#t5w}ol_ z!P$qe@zWRdc82)6EO?5M5RFM+tUTA5KvA*%TOoRnjrCFRWHVp{4}g`Nm)IQswNfZ+ z1xl9>r&&bjXe!YCVtdV37w)&^Ol?+XAxbPxm3i?Qrbq#cA?doIvu>co$O5uRuD{}Z z)uS%bvq-Yf>7?VOhN$ipZ(J*FpNCpJO$>NO`;|xY2s!-vyi9oK(-rF9f*v;|+|Kj* zp=;_)Be_n+;;w5>bs1{z)w}HWJ_)^5ELrvZc%d5sfH3q^6 z=EIsW9`9rTEVR2ovQZ03z*?`hT3)DLTsp!N?&3Co)V@d6_`{1>6b7JVdTUPpgd=yU zv}`pwY08D(w^J$KPTmtAi`O4*l;821JAgRRvk=0#aBz8)m&8ykv8Y3h{*&T3{NmXz zr4yq*;y8>~xfK$}G)D-`bP;258f|xCkgDCeo^q5LY%!?ymg1QT@vV{&xUo4du=zC` zaeD2DHk?NO)+9ib4D2mTqKY_B7Eg^EN6_1|c^XGd1u``8Z49x{488A#h3B4gGy5q` on`h3JtIn#Osjn#KA8uTpT|qfp)|@C-w%HVm*z)`I{jcl)0R6+R(f|Me literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/loading-small.gif b/themes/greydragon/css/colorpacks/slateblue/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/search.png b/themes/greydragon/css/colorpacks/slateblue/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..1bfa4115c6a75cd2420955cd1153f726db660297 GIT binary patch literal 969 zcmV;)12+7LP)Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0009dNklz5iy(q%bSqVS0aQS#nyS!B)p~2JwYCSNwi-pf zXyQc=`WdXor1}Xw7!Pfl`10$_n5EkEpmCBXGsDjB+4;}z@<_7UiU0%)i;BNJe)5zQ z6cm#Cw5zL2^843Ma(Qu~(%dpJOO^(Abq!kLJ%|rvkW3HXi}+v$Er}j@0=1xYZe7wHCj$O}c)(ICEdVHvFX+uM6JLmm}Nvy7}a#>kf8K<9x!909cvO|5NMSXkgCGa)OL2~8#w@7XSQcX#P`0Axo- zXoltf!i9?43#ZQyS9JjOjUjArZ{zIj45?I#3q?_cEX#cC_xo{rddh{7XpCpBxz1P6 zYKh|Vz~*pq93C&0b1OWsx3>pXRk@JKg25m^Th@LY9l=T0YB{Y}D!m|fXC-92lBX(A zgT3$jJjmM4&JMP=ws3NClK+hj-j0sm$}tD4mJ3Cz4Q7iqk4>q-#>U1i0h{a}9OT94 z=jRw19fO66w5;OxP@%&OqbR{>7H=WYGTEz>$z+htX3^2v3A@9INGyiq<70j^CLN;J zwXB^UA1S9oJ$r)mwYV#hXf!XKoSNb}y-@(GmRJ=hpOoqJcZRKJ(s%ST^albwr!yE~ zt#E<}v|K@wQ9{3nhrr42ZDlPT6>VJ=9X(ZDeN{aJH9bQ$eIs=PV@r3Rkmy~xKrNCbt`Q}{ z`DrEPiAAXl0g0J;C3=3YAqr*2dZv1Ye$Op_0u{-7x;Tb#Tu-(*@TIYnk;A?rGeoFk jrsWKY8I7Mj5||kR?70MU=8OLTDrN9=^>bP0l+XkKClfE| literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/ui-icons.png b/themes/greydragon/css/colorpacks/slateblue/images/ui-icons.png new file mode 100755 index 0000000000000000000000000000000000000000..41ce8ffe7f143a3cc55de9a790e6c074b569f21e GIT binary patch literal 13160 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-calendar-b.png b/themes/greydragon/css/colorpacks/slateblue/images/view-calendar-b.png new file mode 100755 index 0000000000000000000000000000000000000000..c5a12480fc56ddd439be72998f410e9775933ca2 GIT binary patch literal 653 zcmV;80&@L{P)N2bPDNB8 zb~7$DE;u(kfL#Cp0t!h)K~xwS1;I^gTxA#l(DUB=+{sLC(tOdWAi5Dnss+0cM8Sn9 zE?jl*zi{QQ;7{=vxO7(#7XdLvur0J&u+W&;G?~my=4S54>pA7dH0tlax_AGb<3FyW zjymeHzW>7)U;la(b<|Nu{oSYE{&@HG;p?hScYb=y8wa=Fe)RO;1(4l+f8_8<0!(-B zeDL_m%d>x^d--$6-gIgSl5Af%kw8|PI&sSbF>~fmW4}3-C57H+l3x@coBG5fr3*1= z{H^rdOhT4CRyvU-WJ?pzysH;px0`xTzc-*nXy(Q>owLQBOA0jS>x2PbIIC{%EVY{M{guVkFaS=t<&m^ z9Y_W@Wj8Q)pb?0S*4$j9*D53h3I&p+kc>=ZF<_)JHc=Yf(wL$*wQ>_-YN?dPfGcY= zozlY0l^GT;ENoz5f-OXkkxgscO09h}yONcCbGx!^&)Uc!1{5lx6ha6UN|g{Og-$Yv zUMV}%nkx+c!#OyW&Cq*gQ>hb6e;K1fR=GCPV?%2sqtdzb%1Rvh*?|Ng$pDfJ$S(XY njq-;+Rsu-K04PA`p(FnTyhhmEY#Hrb00000NkvXXu0mjftic{Y literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-calendar.png b/themes/greydragon/css/colorpacks/slateblue/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..bd1d03ca2eba9f9bfaea457a7a690865ecefb5b0 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zUZxYPB2^Qn`A(`&74g; z_2XH^L$`a&Bi3@xn{2Uo!D>OzALqWjKCQpbZvW38`|duU&|)63t}sG!hechQV?6Jq z51TLN=k4A1^V_N2$NlFyv=p{N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000Px#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBUy7j#8fbW?9;ba!ELWdKlNX>N2bPDNB8b~7$Dy+xzR0003;NklZCx3_mh19tZI4EB6jfIWi^m}VD}wekb)7-ma<{X%6$j4{RV8zF0w_?S@ z&ZX7GwX<8A7Oq&~&BtfOV9CelG;La2XtjewXmdhr_q1s~e0-J+=0JOk+Zq$X+R~G2 zLL5rl%7BhA2MP0eCKX19lqSUH1-oUYdh)@9`8?c$6Ouq6Gc%J9A004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0t`t+K~y-)ozp*0WMve`@z1?;VPOUb5Y&)0E>gIfXk+$Y%*MtLbq$FX(Jizx z*1iGWg0a|gD-#-R3=m_xTaf6k7A#>+h-d^8)DeamX2-eDoog{noPp6|&&hM1Q=IdB ze@}7_k73bAGv%eJn?vOY{imDtTDxBP@^C3Bee&AJFGT}h8$^(g?S6Q-nUof0qa9U5 zVsT$QeJ6@$qRDrYXsqF(aZ_?FP5GJ9-dH!ST}pzMzho|WN>f8aLsOH1O>M*emZXBJ zsu9!9Yil|b9NAMFATU$bk_5q#%!YB-6pcDo(Qxc|fW%BH?UFJzcRX!YrtFbDf67jZ zds#scB&k$YP*At#1Dl@ovZB~Mbwmn=ol}&Eq=K|7FBL2J){Luex$GUUo3`dxjH^qH znlRFBYDpakClZ!@tzz4E7QO0%RqNif?+b^jro^2;bx19-f>=#OEOy_|-tx9ZFWB^k z2iDc4N?m!WBPj|ew2s$&?iUMQF^4z(Xh+LLhm;9YkjZ-HELK$VlSwa%Jz?H$e`pJW zIPWX%nP)Y}61#pA6kT`8Bb5&6znVC*Y{j#lGi%QCuK2-@mQ+IcpLMI*vW0Qan6R%c zmq`lsbLMTF;pL~YiUY%LC<%>ZXl3i-%_x$~k)L>f_U{r7`99CTN#aj`FMsuZQZ|5; hpOM>Yv{$!3`v(Rx**ddyvm^ij002ovPDHLkV1l=*D#HK( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-fullsize.png b/themes/greydragon/css/colorpacks/slateblue/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..ed76257a8cfc001029190d078470850d16cc7d2a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?{VmR zbkpwLuU|iVnr`&j(M7pgQILa=qgJ8s`7NDkhEg||^t+l@YK2%u=We;XCODzNfiH2A z_oRS6#;RP6@GZgo`@DaDh`AM9wJF%@%C9~5UwL0T9QpG5>gw;WS5B9x_;027NoN+D z7KHgp97eaYbI>gTe~DWM4fA=8($ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-info-b.png b/themes/greydragon/css/colorpacks/slateblue/images/view-info-b.png new file mode 100755 index 0000000000000000000000000000000000000000..880d3e88c23f73e8833d7b2c6bdc3fcc96feb2ee GIT binary patch literal 493 zcmVN2bPDNB8 zb~7$DE;u(kfL#Cp0cuG^K~xwS1;H_EQ&AWI&~snES3^<*K`GYBO~gMS?k zy7}wh$1!6O+$Nz#I(mt~O^ zD*%m|)~-vwU<4XPQACz40r1cae8d@mB8#Hv0Px(2F**QHWU-a40I;<(#tHyrSro+* z093F907Vu>wg3PPSO9=5i(at+00}GrKv6{1n*-ps5qRnu0J1Eq-YEc1oCk;Q0~p)N zf&u{c0RS+lda=`;bIVsfr~oRU(Yj%xtfPJV?dnlVs*0?tDk^}a^{LkP(Y*LIeRD6S jKt%-ruw4)De!Tn-q-c*$UB3N-00000NkvXXu0mjfWUIPP literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-info-o.png b/themes/greydragon/css/colorpacks/slateblue/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-info.png b/themes/greydragon/css/colorpacks/slateblue/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..521439ce7c35951c231bf4759dd2874fc918cffd GIT binary patch literal 938 zcmV;b16BNqP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;K%k z%ys|(0ew(RR7C&)02mk;PEJlFBqSOd8XzDbR8&+_Qc@-+CQ(sQWo2bpSXg9aWEmM5 zDk>^0EG#fEFf}zbH#avqIXOByIy*Z%JUl!-Jv}}?K0iM{KtMo2K|w=9LqtSGM@L6U zNJvUbN=!^lPft%%Q&Ut_R9aeETwGjUUS3~cUu0xtWo2b&XJ=?=XlZF_Yinz4Y;0|9 zZEkLEZ*OmLadC2Ta&vQYbaZreb#-=jc6WDoczAevdU}0*eSUs^e}8{~fPjL6f`o*G zhK7cRhlhxWh>3}bjEszpjg5|uj*pLzkdTm)l9H2?la`j2nVFfInwp!No1LAVpP!$g zprE0lp`)Xtq@<*!rKP8*r>Uu_tE;Q5tgNlAt*)-FudlDLu&}YQv9hwVw6wIfwY9dk zwzs#pxVX5vxw*Q!y1To(yu7@)z;S5 z*VotC+1c9K+TGpV-{0Th;Na!u<>uz*=jZ2o4wQ)i000eiQchC=fEKKD8IfKqBJP%EXNC?X20K9$$o+U(W3u^QVAPXFxOl9nWi0)X&? z&1*ZdOo+0(D|K+V%&Q#9gvg2#YUVKPu?!)EoF{+s8W>&U2WRI>pcnZVO?_SuGmP+G zCzJ|*L@7kkg41$bDS*Y@Q9MlGRE$2t}mS&_C7qS&y2mPs_N$O(B0GPD`VQri#o>Ps+5+?F_zP` z(?LGTO!k8@#=aih`MIa0_s=g)Stxi1bRte8^Iq+`2OY}00000 M07*qoM6N<$f}e<{V*mgE literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/slateblue/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/slateblue/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/css/colors.css b/themes/greydragon/css/colorpacks/whitehawk/css/colors.css new file mode 100755 index 0000000..cd02f40 --- /dev/null +++ b/themes/greydragon/css/colorpacks/whitehawk/css/colors.css @@ -0,0 +1,172 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: Wind - White Hawk color pack + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #FFFFFF; } +body { color: #666666; padding-left: 10px; padding-right: 10px; } + +a { color: #666666 !important } +a:hover { text-decoration: underline; } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-header { border-bottom: #ccc 1px solid; } +#g-header .g-message-block { border: 1px #ccc solid; color: #000; } +#g-footer { border-top: #ccc 1px solid; } + +#g-gallery-logo { background-image: url('../images/gallery.png'); } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info h1, #g-album-header h1 { border-bottom: #ccc 1px solid; } +#g-info .g-description { border: #ccc 1px solid; } + +.g-thumbslide { border-color: #ccc; } +.g-album .g-thumbslide { border-color: #ccc; } +.g-thumbcrop { border-color: #ccc; } + +.g-default .g-thumbslide .g-description { color: #000; border-top: 1px solid #ccc; border-bottom: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-expanded .g-thumbslide .g-description { color: #fff; background: transparent; border: none; } +.g-album .g-thumbslide .g-description { background-image: url(../images/ico-album.png); background-repeat: no-repeat; background-position: 8px 4px; } +.g-thumbslide .g-metadata { border-top: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: 1px solid #ccc; } +div.g-resize .g-description { color: #000; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #ccc; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #ccc; } +div.g-resize .g-more { border: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #ccc; padding: 5px; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { border: 1px solid #ccc; } +.g-block h2 { border-bottom: 1px solid #ccc; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #ccc; background: #FFFFFF; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #fff; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #e8e8e8; color: #000; } +#sb-title-inner { color: #000; } +#sb-counter a { font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #fff; border: #303030 1px solid; } +#g-add-photos-button { border: #303030 1px solid; } +#g-add-photos-status { background-color: #fff; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile h1 { border-bottom: #ccc 1px solid; } +#g-user-profile .g-avatar { border: 1px solid #ccc; background: #fff; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li { background-color: #FFFFFF; } +#g-site-menu li ul { border: #ccc 1px solid; } +#g-site-menu li ul li { border: #ccc 0px solid; background-color: #FFFFFF; } + +#g-site-menu.g-bar { border: #ccc 1px solid; background-color: #FFFFFF; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #e8e8e8 none; border: 1px #ccc solid; } +.g-item .g-context-menu li li a:hover { background-color: #e8e8e8; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #ccc 1px solid; } +#g-exif-data .g-even { background-color: #e8e8e8; } +#g-exif-data .g-odd { background-color: #FFFFFF; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #ccc; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #ccc; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #ccc; } +#g-comment-form { border: 1px dotted #ccc; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #ccc; color: #666; } +#ag-quick-search-form input[type="submit"] { border: #c5dbec 1px solid; text-indent: 0; width: auto; height: auto; font: 80% arial, helvetica, clean, sans-serif; font-weight: bold; padding-top: 3px; padding-bottom: 3px; } +#g-quick-search-form input[type="submit"] { background: transparent url(../images/search.png) no-repeat center top; border: none; } + +#g-search-results h1 { border-bottom: #ccc 1px solid; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background-color: #e8e8e8; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #e8e8e8; color: #666666; } +.ui-widget-content { border: 1px solid #303030; background-color: #fff; color: #000; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: #303030; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #ccc 1px solid; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar-b.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/view-fullsize-b.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/whitehawk/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..53dd589fa194f5db985e4301c7a73ed4f1b9ad99 GIT binary patch literal 2545 zcma*pX;2hr8VB%~zPqQp=@B)`y1PS96NXtx1_oS2g;AJ+5se@Q;|&UOs2qwM!p4Ca zhJiUal?ExBdstaT~?f3m?cZgNh{frmzMrfcJ8)3 z;P)BJevgQNtw(cfF&90SnBnnr_M&xm@O%6 zzG;!w8(-4o!w_SKEsx_t8i2dHA{$xug+5j_t}~5!rEMsQGpY^uf8#e!ez!6*c<$`# z%2he_t-h<5RT`BLN|GpKWC}6HY^k+5Dom~L=dCyXf!71bXd=Do;)LbM zv+gGZ*&l+=TYuPh^HJ+{Um3v9W8Dqi zZsIDi!j*rKg;1w`oCOc;={#&)!ZF-E-<0u^i2Q3W!xltD%v-T4#;x)CfF(1Ouv)`p z>uUosDu9aCbKX*^H)pSF(Clw+wK}`3LC8Vd5wn~@j##n&8u(Or9|$_$-*q^|8tR^Ze!v`8XRU12fiFxN&Z^HeB_6{>ZFruBWn5U6U_WQI--B zG~o}Ys+mlEb+PC3o7FVVvN+9%m7%O}Y_c3WoYls|wT3|PzzV{wM+0F|$H`%9CT0Y^ za*mZIUl3}$c$+|-?~lU1Lc0B}sn(uvcimZ5#)MR#za@NWsrn^X=yb^$k3_>|w9gkR z>#sW<_Ea0KR$g0dg}fy7K69z6?%wR47d!o@ zGKEctobW(W=VY|Az1{V$NH$hYU5!_r3z~t<1_3#$IhT`+-0m8Lu3WANjbGvNg1vn1 z=E&h$lM^*FtCrg64J+q9{~$Yc&oK@)FJ9|wdu`CBEMKgD->DcQRuxrUW36azX6kqE z(WAIz&9a^4uqfQXZ?4*+k}M^TI=80q9GA}G8+>bb(fyeR`Q-S93>Q-=OX7E#U^f4~jWk3u>uE&r}55)J9D8+*U}{&~xy z+xheT3lqZ$_0RMat&nbp<_ki!f?+E=jik2kBu@#UnX z0AcCVU-1x`*#iFAGPG4?H)8U+YtUJCS?At3FP6 zWjMo76`C~5oga!z%d+xx$x-ljIYP1$9YjNGd0H&jsWL7XsM^)8O;wB>PVnYYXxtSh|$ifidD)RGQ}R zwHJrNIdVjTqdEklY&;>>dZRxDK`F>#B8Ki@pp8f7rwM2mppszvcw{I`Q1%>g09l6Ekr2-S;;<|g2awum zsj!Q?)Pbyi5x+M!F@WFk6jsdhHiry`x0GIzjy;Yj%rtk*Y|Rg9EEqf3wBpTM<@>(0 zk0}s;bd@I0{9$O~|I{qUIC4vLX&EGrCS`%OyAe_n3}9mSiO7}(QE&#Jdx176W`mkS qJBjK|(6Aas*VCO0)PD%QJkkj;=v4CXc=>?~L(zUgw$5 z?CN2bPDNB8b~7$DE;u(kfL#Cp0H#SqK~yNurIYIp!XONV@p`;X=NwMw zedqn((H||NF>1nS0|}6RJ+$DEZ4S&dMO^k_4Ukoe1;o5n0!gw;(C`HT3`Hy^%e$x$ z1cWCJ8L~sboJPcEv@4FW7A9P&2qHf`A~+kD-k*DMHa|7BCNK_r5jJkRDz2*czY6?N z(KYMS%hV#oMisU?W{L>1Zf!Z!J3`+4BM(t;56`|K!(M0RAIY{iUF~0Sc00xX00000 LNkvXXu0mjf-~O`f literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/gallery.png b/themes/greydragon/css/colorpacks/whitehawk/images/gallery.png new file mode 100755 index 0000000000000000000000000000000000000000..3ba425d3e27db964e1f8fc3409baa45aa3da02cd GIT binary patch literal 1383 zcmeAS@N?(olHy`uVBq!ia0vp^PC(4h!3-qReO_h&DVB6cUq=Rpjs4tz5?L7-m>B|m zLR^93X=!OiMMcHM#WgiGwY9Z%b#?Xi^$iUT&CSj2?d=^M9i5$>U0q#0Jw1JWeG?{3 zm^g9blqplDPMtb!+O+A@r_Y!%W6qp8bLY;TH*enj`STYnSg>&6!bOV~End8M`SRtf zR;^mIX3g5QYd39KzG1_LjT<*^+O%oQmMz=2Z{N9d=kDFR_w3oTckkYP`}XbMzyILD zgGY`WId<&W@#Du&oH%jvX*>y9adhC>RX^s)Rti z|J`T?21bUGAiv=MBO5RTe`i+(1}bNPM`SSr1K&XqX529``z=sVvcxr_Bsf2W#+||+4)Wy}c zW5J*Q<-P4J9-87F;b)g-f4VevriX$KXFxz}N3LXH$7d_2_ilo!Mg<+G@7%fFCLHco z!}R*etX=zfgxVMwTo_y&!Whmx>5&nXZ<_1Ip*Z#V;fyEHD8yZd|cX6?5}tp)G6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/ico-error.png b/themes/greydragon/css/colorpacks/whitehawk/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/ico-help.png b/themes/greydragon/css/colorpacks/whitehawk/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/loading-large.gif b/themes/greydragon/css/colorpacks/whitehawk/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/loading-small.gif b/themes/greydragon/css/colorpacks/whitehawk/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/search.png b/themes/greydragon/css/colorpacks/whitehawk/images/search.png new file mode 100755 index 0000000000000000000000000000000000000000..bb323e583312333d77f1225fedc40f29081fac01 GIT binary patch literal 571 zcmV-B0>u4^P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0gOpRK~y+Ty_MZ+!axv(bD>XJeFecg1#h*e=>rG~qM$}?#I~`|FHI=|lr@trke&>&EZ| z_WOM*(XWdHK|nsA$JcTh4A|{HDk$|b|!GPs*8L3nXi^bxH!|`}TI-RD# zz>?csi#o6@i`{PLLJx-ntu48G%;kcA6e9JBEmB8fL}H~`VXv002ov JPDHLkV1gcL>s0^% literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/ui-icons.png b/themes/greydragon/css/colorpacks/whitehawk/images/ui-icons.png new file mode 100755 index 0000000000000000000000000000000000000000..db1ec71b62f9b9659b9102c8c816941c97906006 GIT binary patch literal 9914 zcmZv>2UJtf);4}p=u!j)rA9hRQRzK20i_oK>C&V`TIeJM5J9QZrHgc=Nbf{M0g(>U zn}C2+2|biA{@#1<|Gxk4o3*lL&aBMd&))OQo_+RtrK6=vNzOn!i8LM=^hX!sJb)iZN2()gI|% z?O_M#SUWyP3Tmksz`TV8MFl0{GL^jmz%8z>tYF|fwPhXbYMz>E082C1@01kG>}bj-l4Ehbp+iuhJwI?$Np_L)ngvb9ogBmaOH7Y?frkwp;~zCLpN2#MS?~PmpD{9IDMS+w(MI z=gLhm0qnn;(#sh%e#=lWs;-+7;2k8RK%$9hf!DXsyi9l5yZ)@as2gYaGJH~6zzIvB zC(Wb!h(14ExHT*`(7|9+m{!Q~ZM@c9*$7P8mnuf}#JLS<;-W3{`+ zw3rd5K|0VfdOjKO6$d49UY4jBt!QRJP61$kIapC2_Q&`K zcK12}Fh)QZTK;X@|Lzw+DqkP~=KeMGssb+&@#t>yVapOoZTu@N#~zJq&{FlvxUwY0 zRrmWY!`xVKOa3e!$N*7+ki6-H@m1hF*f{Ga!rI&_|FsA&K?bD8Ez6|eU2VaMB~6mt z1b>lg7pLv+B{S>kq61a2lYTd%>{P<3ssL-fMG4;Gz3e607OwXOJpV+xfE$0A-*Qx? z1R@aBKYC3+%;C!UHR1appuG0#wT!3fA>Bd$8~1-b75Rv49G_Qx5Hx&tVYBzZb2T`& z!}0}0ba?rF$M&bsoUmV|!1cF|Z7wS)Hn{@2(mFxMkF7q_##dD2gG|IL?k@z+=CZZz zXmqDz0?p=CvrgQ=mIM7FypfNj0uxQMMPY15R_Q@nembL{k3?A}8G={5cI0r_Lb}A2 zIh;mh8H783`c_Gz*Hq?SCF!r;lG_8tWhPm9xz%5-8CVrCPCnaI0>-Av5H5;}I?(X2cK ztHfoGDB*UX7Vklhw1DSZ+D#jEj}*qZ*mbO2VTkE;PwpNqQ)gQC&A2Rp`%nZ!5LmE;S`(vXL7`35Rwkzi>CNDAo3DP$nM*hScC|{Xoa;S~M6N zI#>l?{yj~S4Zg-Ua{ny4_krf~M^&43&|iu`+wdkMQ!bx6*1;hv`~vceR)=#yta3+- zKLrD8>*g5Xe&Ni@-ARkV;km=|4x1__ZC_?aSU{efy20kRPWbVxKf4Rnzj2lbI;?DMw;3e8{_dm?Ek8K;GN=yu# zua;yxQx1WPXK7;US+#yp4H>WN%&t<_}e$`m?n;g-8wbsqj#M)j0m-QS|md z*MrcIIvJtrE%Z#o>`*s7NY>jS4`%DnFYDd??WYgABYj^K9YFeyK88AwJGnMy%W95YZ}I zx%9jxdvKc8Et=2CJ=Wi^kS#nS%T)q&>8xCM3p6q4PmdqvF>H;ugr_-8cSCdB(7(kc zRJnus$#Q-_RjQ)vaa#;ZAd%3EYdHl{b+#DN;aeSO1UTZvG8}L!DF_9DqI72P5zm5N zUsS%(!dm;)ETU*JzkQO$44~M024`9zVP9I2mgcD5P80b4*%WCIMF9Ao$hyf;M_Uw= z1_y5q%gu6QZ=FigVu#4$k>@1~1ZywVA5hd{O6)Giks0tx_bex8g$n^z3z$F*6wB`n zWIpN7<^eskpK-tUQ!mVUs4PV42jJvEk^>X%(}FXg3f3?P@$Mi3Q69SDbjg~^7*`5K z3mGv&VBQ)sEB76D77Rj)tXu;9b??uK-Sd#>Mmts#oqY%Fi;j_Xnwfn2U6u?#eImiXsW1RZyCf_ez@e|48 z_9a|x*mlVZQ;b&;mCdxy~<_4;O@XUEm2Tg0L89}kHdg=Y$d$z$x+&ZI(vzj8)Hv^hZQ zS#}>SOnR*EYL?0{RvZgn%GpX=n$5&KNt0BcDx{Im+wAG0IygYa+9dSk z8$FAgwZaX|H?<;}t!eYsy2HKST=}L2m}ODdOXnl9!yw;qV6*+$>cQ9oaQzL7_RsIG za8tgjust~I5DQAX2n^ku=4m;WQobLdZ(MryjXmNAG;Wl^${4anUN5Wr>*lqbG?6z2 z_Bw98IuKux89A2cYrp=eGB8I7ZX9vfi{1+#S&8nz;LdLW=tnZ7k)?~9u7 zRYl*UaOaj!50Z@AKYJf$RdB;!w-s+k>N!}cjGTNC3$iSS zE-caIB;LH9eMrgDVE;~@J0FO>#|0#;F5F@qfd|aq+aVuf*hKo?hSa(Kd|iwS_aAjQ z_&71i;7v8$CM-e*cflEXH2Y~o2iJ>9M#XYVJo!;w?m)S9qpDm>B&;ba*MQ z8BH8@EBN(dt&q-UJA8>QkC0kC`dUi`!VoL!LV}rxoyFEj{wGRzGoetZ@cBSo9~;ug zr`oxq)f>*OnRe}txw(1NMoX_(I6Da_C&qn5Qyf+4vGPq@<6yh>XfC!;I~xs1k^){= z{BhI2^)x|*vF1Zylvzz$HO*qCz{ZG`l0kqz-e*q4Mr2+OW*;2>IGtqeJs{$7tKs5w z^qb+R?jN9$HA@J1>DUYENWlPGiLlzrj?GQ^rFBc?5Gw2e%Jx-SN$cuT@c3EcM(=)goh=F^r&lEI!cHwl7xiNm5qZm1ti zh6Vnxk~k)Q2dlq5JYui!%VM8!-*RQl+S;^iU+w)(=bwShnIf-4lYa)9@<8w}=9xNB zBrYNMMEF463A#^rY`!J(X^fL;qyhI_gUrDaQOXlO#=K2b6M|>++ylM!sDPWa@IHGx zu3~!K1ZPVrD9y$E^`#frLl-ARC2vHLfnJO(tgNi0_CRJ}!u|zgvA5=aeRiOY>cnc5 zZa4Yf2J7U1$)koL9;8t^ZV2{&8!+KEuNbg>R?-mjUQvS->n*4p>7=QiDWWC{aGwmT znS6(9gzwS>e7Vc`vd$M&tvi;k&)8UJ;0y@57*sDi4G@ zqMvPh2Ld{-02Ps9>&W7Mo)K(jjBkJVKxzh09O^*RsuE8AR0Bvx9KVT=io0;2TCToT zD2G|=lP~)1Iz{FSUxRKc@mPtWfISCzf)@4_9Zv~TW!1I%)f#_`0I?T4BS8*<_RMs& zI^TaX+uxuqPp*qXJ)9y*&W**-=O4b&XM+b6Nk55;xDlm>T^G*LR&^S!07O2F9|~Jt z0r{HHN+Ew1?F!rrv`6UiSgE8yk#jL(LfOw4k*`tX1DF!V7Z2}mK;q;UU*~EAc7X|0 zjyf7yGLxrsw4^z|gm)-eTtjnw;A___Zg~HUq38k(5+ZazzoA<1RU2}?+74E`tj}Bf zaVY`7EW1SkI$OzW5+D34$n8>9D2pCFM@QINO;g*%5ibp3fH>)6+ngg-zvVZvng>71 zOpk)ZXWTvq{c~_W+H}QK^rzliavi3NuqO@G|{7PJ;PNxYMTSgfrT z(nuHE%04lU4O*PGIc|uyu4p}++N_`R-;ipPE#If+IDHX^>>n-GFO$wSLk53EUU0-n zJWYrx%9t>e2m4H500JPvulQ#Z4em=5VGI`CQ`6Iv)IrBe-u;rRmBIru!V{`FIHlGB zw-a`sL!57CLA2*;KWZmNdi&V7C!Qs)hdYioN!fA?SHuS+Z1PKE8fFUk}L z)*tKhSXA3n*6N4u8YaGy3893507vM8hu{{|y{DZpzk@NO$&HG3boWJ`^B=in43I2n z{>|Ute_|l$0*5_mzdYZmb`8Q$Z!RZj+w){1X{FEiMhM9ZxaBaSz(;~gd zmJJYlG?Fwt#AeYv|C99)&wPV!$|W@2X+=NiJ5K{zzc2=Wmhym*sNH_W0eqYtm|tKk zvuKs#t-!4gILy4eNj?4bnPpApU28D@6E&KK1}i#lR-G;#M6vT7Y_^7hNi%V(-AUf1y3KJ84EP8rYj zUYg8=jw{e~EGLUaduB2`bE{oc$PSA!OURTiJv%ai=ty2x56Ce+0t&X!POKR|bAF#L zGcz-r{jz_&n)#)w?ug!QT%C9%)Ou~1Xa{1okMH5h&KQt~us!BpWlO(HkNS|?B*M!P zbUKnnab?&Q}wf!2`#g4G>QLrs)#9Q8VgrpYeSV^(eg5I^6tg?F$ zthyGcB{Sj|-Dm)qMD_#Ezhj(M{c~H}B6CQ@kC!lnU~D+g}KH4`t|`aY@1v+E$~?UPz`vnw8nK# z?`RomcQ*+gxjrbWP;XhOd&ij#s9oxLJ6>VQ76rd*`1>OywM$x@N#`rwIXA6Isej&xSW$;U2Mn-PoP2ooz~z#eEmv%nH~hD>)W+=)Xc-rt6t>O4RAyo-29gXF-?R)y{s# zCvbk&!s9n~Ns*7jZ}flrsd0nJH`qAQ$TNfy^Lw#t{q#4qW~dg0Te<`H2u~@~Z>EK3 zbf1pK@O1sc-C1Ko>Ch1ZmCbHXY#MYl7QSNaa#T9}C7mjJX^+x^V{NhX4|KAcisnMSU)MZOi%CmD_R-1xtMGOZXn#Y>omPYt`-lyrq?v;tT{wGsPqMw}9dJ; zXWFvoeNHEvUSx-1?qjC@=%!l`m@Z@fzutfE0+ckN6BG|=bdI144_W&@#L_}-L!N0U z|7e0?REkT9RvrKyCFO`1vD9r%;H|{Y6I!EHA7%~0yHyQugqGw(4_KzinuJ?COH!Nq z$+&t@8k!!8HH*N$1PsP0R@wJ&#&o$-c-?-D`ks8&$(5$JFHJX`IEkE+AgKvNBeKc` zQi8=Y75Sxto>+8B#znUE1is|oPjFe*1Rg6dzybc3q{tBW8ou&r?lRq-cw!sy-PSf$ zuv_Mah?^OlhJEufA30Q(NPE{{B%5Q1kuvayXC z+&%RQfgGW)Pb9@OO2n166-Tr0>q6j^Ipw5)D1hU>ataKR=uCVoUxVIk#!>gh+~m-Hjjc3isG7AXn+S`u%;G3^ZjoT{GXO{cD(jJHnkWw4(x*x zTd3jUSu&FQgcHETp99}08R~%5aAV8r=NS2k6+e#l(4PlQITi*302insUR8JlkMw8s z^T~t*)s0bVPb?yt(|(+BbhYERn?tWZ<~uyi^qISPw!O7QNpCXI;^$de#7?MbfYvr# zr|Y8M*lGbC_pMO0pc<~SkE&Ffu7UAKa{;mE=Q}|TJ8gKu075jIL>d>l{Z4 zFu=1OH&gK7jhEBw_umxH9WX@$&p30;jt%?cmf?>5?>DgO-Ug>q>tcjGZ4&}d(9qXN ztAGg!B#kQI`RluN&E2(^luRKn+RhKBH$PL$+XfwfW}8SBFa@vju;*~SArv$-7c*)f zjJa}xX)-Ojq^Op2D@xOo(DBh4q;OyS&eg*{`s8nObVd}g@Pb2GmicN2?Mm`HlClC- z$Dc^ppq%hXf$}G{wM@BKQEO=lDnx6!pW!U!&29TNzUoN)aC20 z>UURz5}3Qkf|+#ZNkGcZO#`na<#@I!m8mpYP=D_Z*R~VxfXnkENLSG5df_DDX1O{F zMW6Iq5<8dZ3*WK<-zbkOsnqnumQ8)2W&kK!vd_2P3Z8$&r z;Oc4PD3G`GN)#xWsxWK3zjkcej+Vs}Ts?4cI^Is48PtxS-3gHcJ>*4k4RQgqRHa#Qh$aOZA{o4k0#s<=r8*ObFUBrpJKBCofOD1zS%y{6*%I62#W_AS4a?-( z^67AUmMM@tuL5GAlrs?K2&Gv)j^G(=AkdkX1_KA1=8F&fkXVf+#e4+@O|vsleQBZ~ z(4a9;a#N={=-2nR!8jjp@2AYbLM@H>o&;uw3`@K`sLF;y4z?9)2ak?uXA?Q}rG2sg zp8BakEAv}ZQ`5xppQXv}HyniTLZsMg^dc0~2oN%SI1Tl`&ju#&QviNou}b$3W!hn; zKFR6)VwJ`_ZG77Z^z`83EbU4Av(@apk9k9Rv>UM_gKXp2e@$O;MHld`ChA;Xft(97 z>a@>gTk3D51Oxs{^tW_o;1x0Gki7L+x{6X?>5_e;F9HvX;|!%v$#Tos5?=C`&pW%F z&&gy3DPF9)pQG0s4h|3pbbGn=QBdp^R?Lu;OTnpLlCRmYq@6~4#Rgt2Xy(s{ii&i> z>HW86^95%w@a3;N3(ok4?>E&vT3-Kf%i%Y+?$pE7XiQ9u4_iRgt$M0C{A(H{v(hdK zN_=-#)IXpv@8O+<3kCM?S1L*Tc*6rama}lBGKgQ@DI?Z{Q(Dy^U660?$c}r`r`WLBY9vK;hPV}v$h9+f;a)20&884Gm9ljk-#K2OC*Q0jSk)%m+AF!qyo_%>Nqbbn<-+ zwUTlk%mc&&(h1c<#sX@%hm8F?MsDAnG$Mbi_sM)R21y>iRkLUx^f{Lp!w5GY2h5g; zvDON}8sr&94xj-@0ZY&zS%e%RmIBeQADog8x*WQ+`vVxDx~>Z z%hF^ssW_*qA!}J?1e;HfVES_6n9c<%B4_+-mznVwL^U0zCw)2`H+?OJvkOcxUkB1X z$1jC3qkCL-H#d)Ad0XR?ux@G|34aL2u22j8;xsDEx zRdRp!iUcqUe6txiEG2OQxX#EIrcct{nE}$A3(}ljMtG}&_jb*^i4nB|00VMjf*XNU z3P3~>^p7{}$-mx!f*tiFk9j&DH6Lc4e4VQo-wxQw%yd2XzU-erJJf!nxEfD2K6|!z z2j73aCw~qxf|lC03gE~W5}KxoxDIkb<+^?qmiD<9U+B~FJq!JdOL$Q#uNl=Pco@kO zBx=dOdEk_e9zh#Tb0+r7xG2HCLMz>dPTy}gUlw1sUIuS%eiD$L45i+&rIu+4mE9er zs*_Y%W0p!ms-?Kh)UOxEG6=LDz3{KoG(Fww6Vv9&7k4Hoz6bi=ia1ER^H~1-kAvrS zrQ>q+-`=~7&63!yq^TPF_#9zfP1ekY*IRdbuwP$~nNGA2ITv(J|ERBU#p^ojP8JB9 z7n~!_w5oX%y_-lR``$3uoZo%FpEjjcEj0ZS9z|yLqwi63N`)`nfIDpJ2ukTfVu@aycys2J=aF*{8lf6j)=CFbIEyv9gCaR?T?94XweT8#t50H)aqF4sJ|F5e6)+czhT`}OL2-=40?pRbW`YNG;mYcbA>=O+x8R%Ip@ zN*${Fv)>x&A9L`BUs_$(Gt(zo9*JF%u$W+#QxQr);})_~oc-U6|pp$fa=7 z=qfO&SuHTmuN>iOV3>{hCWcrS--<1F)q~{Va`Cdynp1TD|B&?y`ZluK-4HrC&zn)Q z=>sa>dRGm6)ouBo_**`+VM&)lp<}-hP$v;EN2bim>#QXAz>y2una3lZhINjQ+8u+C zs98CnN?yLjh_*^$J#W9nrB~EPwP1QaiH^ z#;c}ZAY?#(9ot~@MmfymcQnQ1btBDJm4aC(1Er;z5 z(D}a0knj^rN%t#^f2(nYP#h|(rVwO4x+pHpywE;yNw3>aKU7_vn9S#>h7RrRhj3s5`mRI zwVLbi{{?u02FuXEd_+j~PI$UlD%}$lx zU0S}kK~iP*da=q~9Mh#R6AF0@Zl;z?dc~g8*H1O^>k^p`)&Ugxk;AJ0F%lq!g25O# zjFcj#a^Z^gr(6FFNGYfs$-!`Aw--d=Fn-^s#=Dok>jxU2L%Jp_!YdaN5BWcb@Jy;2 zyG00t^1_G;!N-w2Sp)q14Kb*c$^~k<8iBYE9U=Nt)KZRO)}KZ;Irt?yO?7l8C4IJj zQ6hQRf?I)&9VE zR{~$vJw8H7QSL#AZiAE*&*SZzRA(y}z6C}#X1TBtywpz+K91i1!xBo)s*;&Rk$r4> zAuqu18-Fh0Fic6I#V!?8qfP$?x>o<(cvl1*vCSnFyKTtB@2i*fx_#*%e>fZOj(cBn z|JkBbnM|T6CHzkU?+(pjqR&t^l+~6lV4|Pl>_f&jS${G-x#1%_N$`)-eKLxRz4F$N zhf!{(RPpZKo$=COqlUGDo-7#i>9i99%hAK5bgXL+Zy zv71R2{>U5>rsHMC<^HZ2H9^p#MLQYY5fXG7Q08vD%lT?^xRodx_RJZiUQ|a5~1d#RAc!J^T zKS|+U&z~5(jo0vm5&6`{RxZ%IAR^H2A6iNf9P&TBr6KJIAxMCRR4x#h8w|UB7Ye?~ ae@Tr7N@e3^+jIVAvg#^Y%H@hyA^!&i@^RGw literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-calendar-b.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-calendar-b.png new file mode 100755 index 0000000000000000000000000000000000000000..f3ab6aacc6165c52cac97c9cffd6f906f48946c3 GIT binary patch literal 891 zcmV->1BCpEP)N2bPDNB8 zb~7$DE;u(kfL#Cp0b)>0R7GN9Vq;@tWMpK<#>Udp(%9J8-{0Ts>+6V!h>3}brKP2& zrl!8WzP!A=zP`S|z`*nK^VZhZ+}zyg=;-O`>1JkTXJ=<)UPbaZrqfq{a8 zf`x^JhlhuYi;IkmjE#+rj*gCxkB^a&k(rs9nwpxNoSdGXo}i$hp`oFoqN1atqo$^& zr>Cc=sHmx_sj8}~tE;Q5tgNlAt*)-Fv9YnVw6wOiwzs#pxVX5vxw*Q!y1To(yu7@< zy}iD^zQ4b}z`(%4!NJ4B!^FhI#l^+O#>U6T$H>UY$;rve%F4^j%goHo&CSiu&d$%z z&(P4&(b3V;($dq@)6~?|)z#J3*4Ee8*Vx$D+1c6J+S=RO+uYpT-QC^Z-rnEe-{9cj z;o;%p;^O1ulq(=H}<;=jiC@>gww2>+9_7?CtIC?(XjI@9*&N@bU5S^78Wb z_V)Mp_xSkuAzVq{0000LbW%=J78VveMNp2Yv9YnSy}`u9#o5{7?EnAQSO5S4X-Pyu zR2Ufr!8>!)Koo${@9tj7mSh{-U^CF9p@5;G<4^FvshMFy0R>GmfD^|LDPDOWmvg*G zRe^|5`z#`&i)>CB=c~~Gn@AAAO=8OW@$;Xzy8*=3`d7fZ&A;te?e{;Y-v<+y-^;B7 z>puPRy;^v>J!HY;w~HoN{PA#8lytqPc!Rx&f!SS2qJGvPAQS;Gp~&3Jm*=_|0)Qa^ zltx$Y!X>B+UEeY+&Qr!_+C6D5wip{fEDtkI?S1I`I@hl?QDTfG#~4m`yVEpYEvKs* zR${WS+a2WER_cA5Yt@W4vo57nt);xOIsG~)YQ%gFIXZDThlrE98MRRBwDDydw&cxa zgKh^OwD5dACO@1mM~34tp>LQSG*h?NxsR*kQZB3W(rg*4q6MewRaF&Vsp2(D(d=y> z&#pXhfSn!5kF8Js&6tZ9TvjtJ9()-ed;P!*0T2Ta1FV0k@XZ4V27rTf!+%YA#%UdP RU7-K~002ovPDHLkV1f!9>U#hH literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-calendar.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..a4d038ad71e62eb14f54a163be949a5ba1ea615d GIT binary patch literal 260 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Krjj7P zU-L15RjOeSEA?V8lq5U ztY@lcVQ$?J3sh9>>EaloaX$IQ5iSWU$qfuE47!|D5>r||4!J%(y3`>cEUHK8&5;Mk zC!CmYIN-EHkK#3+bvz4sPVyXeS!tHGA&G-+R-D6>EN?dUHix!~lB+jrJ5_xOS`=O~ z?v~_K;8qsNQ*-*7#>S#@NZ{A%WAE~kn8g@M!{_~Bu`*i(w4TA!)z4*}Q$iB}Nx)Jc literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-comments-b.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-comments-b.png new file mode 100755 index 0000000000000000000000000000000000000000..aa91298f16ba09a036b96dd3b6f0973b169c7900 GIT binary patch literal 600 zcmV-e0;m0nP)N2bPDNB8 zb~7$DE;&Fvu*(1d0o6%FK~xwS1;I;?4OsvH;IFDqk?z~B^bGNcR}h_eO+}<)$x4*000000E&y-hFAVP zT@MQs005`~^v$>1->-zhVq+&C?v@U zPaO4!%8c{4X~ucn!q{^!jgUkkiB|AP^Fsl^> z5&)pr1L(B=1N5>^sG9YTd7%RU0Q8_#J7geDLVf?$!s()rWdH#16Hur<%lUCAuPzVo moeDz$0DvAqJLw<1z4jYK(833QeTxGC0000)&j`m zEbxddW?Q^ULSCC*7OE4+d>bIDf%$#!m+6V5RR5eCrmnJ$I|Q lnO!+?qw{skh)?w!_*u02E*_6_*92P3;OXk;vd$@?2>{>(WSIZ} literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize-b.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize-b.png new file mode 100755 index 0000000000000000000000000000000000000000..fad5e53e108e9ca0385ee006d8a43d8d30204020 GIT binary patch literal 670 zcmV;P0%84$P)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00009 za7bBm000ic000ic0Tn1pfB*mh8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8b~7$DE;u(k zfL#Cp0q;pfK~y-)ozlx{R6!8N@!#n=i5X`yMq$vn5EMm3M2+A|QE=f(aH|jF1Go`a zzJxnPbfvfuL~ti4M$q8>g2v1xll1B1;+&CObfI6<-38rM|Ei++4`p{}n^&eUH#!;C z?(w-^Wv_R$cg6jypHuk{T1t;^A*$)F`^$MG;@!inS&e|9Ati9r`mT5#QwR6}M zpt5O8t-KKRBwcOE$jGu)D{LSV1j&R|d6e|^O*kZIYAO{5z8MGtzj;9>*=ki@h=!5{ zEqm&&^^GiBmI*as>{{3+$qPweY3P|59nkX4lA=zla;p+8Bt=CUCkvEOlfZS%xew2Um;Vyj6}QIS^l6f!~Z&{Ip^n|I2r z^PYO)wC^72>+8rwaa>cZ^A3IrGV?x}bHbe6-Z*B#b3@ToRZ|iT#oy(Q+dFjM7bnfy zg*oqh6t%=Ey(EGpt(|0(rhL#gjTuLMu_!4NLaF%U_?L#3HGHk#4?AGRQbn>Z{#p$@ z(A3q{waZTXz4EDQgujp~4J}we%Z#?~l2Vd~-h|^`Z{n33te<)&9MMz^^2V*V2hU_@ zmCE|VT5G*~rr}jt-pj+a#m?hPjn1E&u~Bi5ZhyG`3y1mlKl%NXp8x;=07*qoM6N<$ Ef``W`p#T5? literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..cc4fbba233a9d0e54961649eff6bbf2a215b8be6 GIT binary patch literal 275 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?h zMPZ&Ujv*T7*G{<2%b>u)967%-;=+Oz0;@k>-9OJ)Rkck?Z9&i1t-_{l&XcacOnQ~R z_I7dAffc{6-+in$nbp5tbfVuT!#9)p4wo1%vj|-Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+6A`RQ1Gbf_h=o!T*S%0$+C^=p(Wje_ zG}?Ne)pvNlvpBp*h`wqMltx4MqQyWxSP$sRWa_rKsWM}MR)HhF@SAf!(84@>P>$UB zN7RSHxjbLFUTsVsO*T<16gapxL9vi!1Lf zN|=Ps)nO5cIn;1*@$lGTpF>V)vx`TKA_gIX%%KpO60?4p3RS8&I2`wuwnr8n1%)tS zLPUrxiD1(rgN4N^HZ~P0dqgD>6v9La`6Ad%5GR3&Ns=T>Qg+eMP>IP8F+#qW^)+H> z=;#>4F?*8@40LofVnk6{ToXp#kYWO}Z?exKCJEx`=%}b@QzA8P$cZV^WU!^Yjl~LS z7BMl1qn(?>B74g?&5&Xli!6DHQhr8(95xndl2|Nk2qA<}Csr?Qay+Jt!&50A<4~nU z0h=7@u0A5uktnTE!C{@3eerzHI%`y^P{Ew}o94l|>*L|#<4J04Qlo~)=EbsoCDHjI zE9bILg9c4nJg3Pn4PLQMa{51KWsljd9gcZNhYoK!V(To|bnf18h5G}Q(WU!O>cx7w gUMi+1SFauHAG-~MiTl%uTL1t607*qoM6N<$f?|g!uK)l5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-info-o.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-info.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..4bdb724efb067139ab8af07ab43e37f647001293 GIT binary patch literal 286 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%0VEiBdp33fDVB6cUq=Rpjs4tz5?O(Kg=CK) zUj~LMH3o);76yi2K%s^g3=E|P3=FRl7#OT(FffQ0%-I!a1C(GY3GxeOU?`h>)&j`m zEbxddW?xNjM zqC`&@#}JM4ODDu~9WdZ%-dlHWGIw9p_4#X>*4Sy(d2|@coK9$;WwDOs^?``LV%o>F zc0UdX%h|r;Yo4^|{hQP0`%Ge~XZ6-Udgoa8%kRzX&!#MW0G8LiYo@(#vwrqLyO(lJ Vl>#?g{s1jw@O1TaS?83{1OSBET%-U1 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/whitehawk/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/whitehawk/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/css/colors.css b/themes/greydragon/css/colorpacks/wind/css/colors.css new file mode 100755 index 0000000..2e53eb1 --- /dev/null +++ b/themes/greydragon/css/colorpacks/wind/css/colors.css @@ -0,0 +1,175 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * ColorPack: Wind - Wind theme-like color pack + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* styles.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { background-color: #ccc; } +body { color: #000; background-color: #ccc; padding-left: 10px; padding-right: 10px; } + +a { color: #33629f !important } +.ui-icon, #g-slideshow-link { background-image: url(../images/ui-icons.png); } + +#g-site-status li { border-bottom: 1px solid #ccc; color: #333; } +#g-site-status .g-error { background: #f6cbca url('../images/ico-error.png') no-repeat .4em 50%; } +#g-site-status .g-info { background: #e8e8e8 url('../images/ico-info.png') no-repeat .4em 50%; } +#g-site-status .g-success { background: #d9efc2 url('../../../../images/ico-success.png') no-repeat .4em 50%; } +#g-site-status .g-warning { background: #fcf9ce url('../images/ico-warning.png') no-repeat .4em 50%; } + +/* styles.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +#g-header { background-color: #e8e8e8; border-bottom: #ccc 1px solid; } +#g-header .g-message-block { border: 1px #888 solid; background-color: #aaa; color: #000; } +#g-main { background-color: #fff; } +#g-footer { background-color: #e8e8e8; border-top: #ccc 1px solid; } +#g-theme-logo { background: transparent url('../images/colorpack.png') no-repeat; } + +/* styles.css - Album Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-top, #g-column-bottom { background-color: #e8e8e8; } +#g-column-top .g-toolbar h1, #g-column-bottom .g-toolbar h1 { border: none; } +#g-info h1, #g-album-header h1 { border-bottom: #ccc 1px solid; } +#g-info .g-description { border: #888 1px solid; } + +.g-thumbslide { background: #e8e8e8; border-color: #707E83; } +.g-album .g-thumbslide { border-color: #707E83; } +.g-thumbcrop { border-color: #707E83; } + +.g-default .g-thumbslide .g-description { color: #000; border-top: 1px solid #707E83; border-bottom: 1px solid #707E83; background: #e8e8e8; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +.g-expanded .g-thumbslide .g-description { color: #fff; background: transparent; border: none; } +.g-album .g-thumbslide .g-description { background-image: url(../images/ico-album.png); background-repeat: no-repeat; background-position: 8px 4px; } + +.g-thumbslide .g-metadata { border-top: 1px solid #707E83; background: #e8e8e8; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* styles.css - Photo Layout ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +div.g-resize { border: 1px solid #888; background: #e8e8e8; } +div.g-resize .g-description { color: #000; background: #e8e8e8; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div.g-resize .g-description.g-align-top { border-bottom: 1px solid #999; } +div.g-resize .g-description.g-align-bottom { border-top: 1px solid #999; } +div.g-resize .g-more { border: 1px solid #999; background: #e8e8e8; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } +div#g-movie .g-movie { border: 1px solid #888; padding: 5px; background: #e8e8e8; } + +/* styles.css - Sidebar Blocks : Common ~~~~~~~~~~~~~~*/ + +.g-block { border: 1px solid #ccc; } +.g-block h2 { background-color: #e8e8e8; } + +/* styles.css - Sidebar Blocks : Buttons ~~~~~~~~~~~~~*/ + +.g-fullsize-link { background: url("../images/view-fullsize.png") top left no-repeat; } +#g-exifdata-link { background: url("../images/view-info.png") top left no-repeat; } + +/* styles.css - Root Page ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage-roll span { border: 1px solid #999; background: #e8e8e8; filter:alpha(opacity=85); opacity:.85; -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=85)"; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +/* styles.css - Photo Slideshow ~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-body { background-color: #fff; } +#sb-title { border-left: #303030 1px solid; border-right: #303030 1px solid; background: #e8e8e8; color: #000; } +#sb-title-inner { color: #000; } +#sb-counter a { font-weight: bold; font-size: 11px; } + +/* forms.css - Add item ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-photos-canvas { background-color: #fff; border: #303030 1px solid; } +#g-add-photos-button { border: #303030 1px solid; } +#g-add-photos-status { background-color: #fff; border: #303030 1px solid; } + +.uploadifyQueueItem { color: #000; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile h1 { border-bottom: #ccc 1px solid; } +#g-user-profile .g-avatar { border: 1px solid #888; background: #fff; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu ul { border: #000000 0 solid; } +#g-site-menu li { background-color: #bdd2ff; } +#g-site-menu li a:hover { color: #000000; background-color: #cfdeff; } +#g-site-menu li:hover, +#g-site-menu li.iemhover { border: #303030 1px solid; background-color: #cfdeff; border-bottom: #cfdeff 1px solid; } +#g-site-menu li ul { border: #cfdeff 1px solid; } +#g-site-menu li ul li { border: #C0C0C0 0px solid; background-color: #bdd2ff; } +#g-site-menu li ul li:hover, +#g-site-menu li ul li.iemhover { border: #C0C0C0 0 solid; background-color: #ddf2ff; } + +#g-site-menu.g-bar { border: #cfdeff 1px solid; background-color: #bdd2ff; } +#g-site-menu.g-bar li:hover, +#g-site-menu.g-bar li.iemhover { border-bottom-color: transparent; } + +.g-item .g-context-menu { background-image: url(../images/ui-icons.png); } +.g-item .g-context-menu:hover { background: #bdd2ff none; border: 1px #888 solid; } +.g-item .g-context-menu li li a:hover { background-color: #ddf2ff; } + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - Exif ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data table { border: #303030 1px solid; } +#g-exif-data .g-even { background-color: #A0A0A0; } +#g-exif-data .g-odd { background-color: #C0C0C0; } + +/* modules.css - Info module ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata .g-description { border-top: 1px solid #ccc; } + +/* modules.css - Image block ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-image-block img { border: 1px solid #888; background: #555; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments .g-author { border-bottom: 1px solid #202628; color: #999; } +#g-comments-link { background-image: url(../images/view-comments.png); } +#g-comment-detail>ul>li { border: 1px dotted #ccc; } +#g-comment-form { border: 1px dotted #ccc; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-view-menu #g-calendarview-link { background-image: url(../images/view-calendar.png); } +#g-view-calendar-form ul { border: 1px #888 solid; } +table.calendar { border: #a2adbc 1px solid; color: #616b76; } +table.calendar th { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; background: #d9e2e1; color: #616b76; } +table.calendar td { border-bottom: #a2adbc 1px solid; border-right: #a2adbc 1px solid; } +table.calendar td.title { background-color: #a2adbc; color: #fff; } +table.calendar td.title a { color: #fff !important; } +table.calendar td a { color: red !important; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form input[type="text"] { background-color: transparent; border: 1px solid #ccc; color: #666; } +#g-quick-search-form input[type="submit"] { border: #c5dbec 1px solid; text-indent: 0; width: auto; height: auto; font: 80% arial, helvetica, clean, sans-serif; font-weight: bold; padding-top: 3px; padding-bottom: 3px; } +#g-search-results h1 { border-bottom: #ccc 1px solid; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#checkout legend { background-color: #e8e8e8; } + +/* forms.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.ui-dialog .ui-dialog-titlebar { background: #ccc url('../images/section.png') repeat-x; } +.ui-widget-content { border: 1px solid #303030; background-color: #fff; color: #000; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; background: #303030; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~*/ + +#g-column-centerfull #g-login { border: #888 1px solid; } + +/* Large toolbar icons support ~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-toolbar-large #g-view-menu #g-calendarview-link { background-image: url(../../../../../../modules/calendarview/images/ico-view-calendarview.png); } +.g-toolbar-large #g-slideshow-link { background: url(../images/view-slideshow-b.png) no-repeat top center; } +.g-toolbar-large .g-fullsize-link { background: url(../images/ico-view-fullsize.png) no-repeat top center; } +.g-toolbar-large #g-exifdata-link { background: url(../images/view-info-b.png) no-repeat top center; } +.g-toolbar-large #g-comments-link { background: url(../images/view-comments-b.png) no-repeat top center; } + +.g-thumbcrop a.g-meta-exif-link { background-image: url(../images/view-info-o.png); } \ No newline at end of file diff --git a/themes/greydragon/css/colorpacks/wind/images/ajax-loading.gif b/themes/greydragon/css/colorpacks/wind/images/ajax-loading.gif new file mode 100755 index 0000000000000000000000000000000000000000..53dd589fa194f5db985e4301c7a73ed4f1b9ad99 GIT binary patch literal 2545 zcma*pX;2hr8VB%~zPqQp=@B)`y1PS96NXtx1_oS2g;AJ+5se@Q;|&UOs2qwM!p4Ca zhJiUal?ExBdstaT~?f3m?cZgNh{frmzMrfcJ8)3 z;P)BJevgQNtw(cfF&90SnBnnr_M&xm@O%6 zzG;!w8(-4o!w_SKEsx_t8i2dHA{$xug+5j_t}~5!rEMsQGpY^uf8#e!ez!6*c<$`# z%2he_t-h<5RT`BLN|GpKWC}6HY^k+5Dom~L=dCyXf!71bXd=Do;)LbM zv+gGZ*&l+=TYuPh^HJ+{Um3v9W8Dqi zZsIDi!j*rKg;1w`oCOc;={#&)!ZF-E-<0u^i2Q3W!xltD%v-T4#;x)CfF(1Ouv)`p z>uUosDu9aCbKX*^H)pSF(Clw+wK}`3LC8Vd5wn~@j##n&8u(Or9|$_$-*q^|8tR^Ze!v`8XRU12fiFxN&Z^HeB_6{>ZFruBWn5U6U_WQI--B zG~o}Ys+mlEb+PC3o7FVVvN+9%m7%O}Y_c3WoYls|wT3|PzzV{wM+0F|$H`%9CT0Y^ za*mZIUl3}$c$+|-?~lU1Lc0B}sn(uvcimZ5#)MR#za@NWsrn^X=yb^$k3_>|w9gkR z>#sW<_Ea0KR$g0dg}fy7K69z6?%wR47d!o@ zGKEctobW(W=VY|Az1{V$NH$hYU5!_r3z~t<1_3#$IhT`+-0m8Lu3WANjbGvNg1vn1 z=E&h$lM^*FtCrg64J+q9{~$Yc&oK@)FJ9|wdu`CBEMKgD->DcQRuxrUW36azX6kqE z(WAIz&9a^4uqfQXZ?4*+k}M^TI=80q9GA}G8+>bb(fyeR`Q-S93>Q-=OX7E#U^f4~jWk3u>uE&r}55)J9D8+*U}{&~xy z+xheT3lqZ$_0RMat&nbp<_ki!f?+E=jik2kBu@#UnX z0AcCVU-1x`*#iFAGPG4?H)8U+YtUJCS?At3FP6 zWjMo76`C~5oga!z%d+xx$x-ljIYP1$9YjNGd0H&jsWL7XsM^)8O;wB>PVnYYXxtSh|$ifidD)RGQ}R zwHJrNIdVjTqdEklY&;>>dZRxDK`F>#B8Ki@pp8f7rwM2mppszvcw{I`Q1%>g09l6Ekr2-S;;<|g2awum zsj!Q?)Pbyi5x+M!F@WFk6jsdhHiry`x0GIzjy;Yj%rtk*Y|Rg9EEqf3wBpTM<@>(0 zk0}s;bd@I0{9$O~|I{qUIC4vLX&EGrCS`%OyAe_n3}9mSiO7}(QE&#Jdx176W`mkS qJBjK|(6Aas*VCO0)PD%QJkkj;=v4CXc=>?~L(zUUcGwt=FOY;@85s? z`0@Mq@BjY&`~UyHTlI%(pnaSL9+AZi419+`m{C;2s{tq|S>hT|5}cn_Ql40p$`Fv4 znOCCc=Nh6=W~^tbXLg}^Z4^+^Bu^K|5RLQ63Ckr6HfRTPEO7JSKJ?>_!#)8`hBTJh zB3D=pG+mmcH%Ks+u|~QT7!;p!jA=|`v6gTW=twx8%EGT~zg|K~=Yzz;Gku3SQp403 z0|PyG7=$U`_$aM-?!cj=+RTA&%e1E)*{LeBv6VGM_~8ZyCPB?L2R%!AG_+55oeEBC o;h4XH$;Rn~_gs-@f?bRZih8N6DV=qXfv#ilboFyt=akR{00*p{T>t<8 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/ico-album.png b/themes/greydragon/css/colorpacks/wind/images/ico-album.png new file mode 100755 index 0000000000000000000000000000000000000000..ac87ec4fbf6acb75ac29259e60d8a9a0992cbef0 GIT binary patch literal 351 zcmeAS@N?(olHy`uVBq!ia0vp^0w6XA3y|d6q_!SNv7|ftIx;Y9?C1WI$O`0h7I;J! zGca%qfiUBxyLEqng6t)pzOL*yIe{8wlsqH7fI^Zbt`Q}{`DrEPiAAXl0g0J;C3=3Y zAqr*2dZv0NcD-lHfQn9fx;TbNTrR!1-|KLKgxkmXN8((Zi^|H1i>6eu&)uW=Q7Xo| zWA@_khq6m{?A&S5q0ljHmVJDXY*3-+{iizZ%>4OGF?VN4?l$6ilYV{ip{4eW-1%{9 zO{?~1yo%H3`FQqaZ~0E+&MR(NFD2)0(BAi9lW5tI?4t@LFH{yC^V06BatS`-c;k4x z{FSJ!JUb`XKRnT>-|4e-lIDjWwbO$+1*^G^tA%OxMsf5QL( literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/ico-error.png b/themes/greydragon/css/colorpacks/wind/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/ico-help.png b/themes/greydragon/css/colorpacks/wind/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/ico-view-slideshow.png b/themes/greydragon/css/colorpacks/wind/images/ico-view-slideshow.png new file mode 100755 index 0000000000000000000000000000000000000000..d43a560616437adaf7e68dd45326c74e4c7ceac6 GIT binary patch literal 854 zcmV-c1F8IpP)jL$agn!CXM<2?fxyYs!_3xCWq?p-fl+9KQfh@%Y=~BFi&$}vT62+Hc9dLp zm0o$6V0)WlexGE4qGf)WW`3GxgQjPHnrDBTXn~w)hN)?Rooa!bYKW|Cimq*ipKXk> zZ-t+4j(`*3{P7*xcaR+1cLU;@{uj;Njxo;o;%o;^N}s zuz*=jZ3>=;-U~>+J08?d|RE?(XpL@bU5S^Yioc^z`-h_4fAm`1ttw z`T6_%`~3X;{{H?A@%e-R000hjQchC<001UGSiQ!{=j-n7_zMTKvj6}Ad`Uz>R2UhB z!Oc!nQ51&ZckjK9hcvN3z-S~*!30woG0-XT4!jDl%KLF-;uIWUG$y7dNCQ;Sp0z$t zi~M*T^m$TdnZi<;rHqAQPwD#5ICEBwIGj=0OS(QLry6ls_6~;AG0$Fwy7te<>>UiJ z=8l8A=t>UmxP=oC5%7Mn$sIW$oUjN2LII!8*9U!Wq<{z_s|A|lNqTp5p;r{m#HVW9+s5vGhlCDWRGef+}ss|b{lsYak&1IKIotK7%})yQNBlnn-3 z54a->WXNO)lnkEpk0g*GQ$e6q=t=?=ldY>3S1Cs8_g56dbC1g)aX+gMz2T gLgs(LLdq=j2k@=nj&X}FP5=M^07*qoM6N<$f{uT>j{pDw literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/ico-warning.png b/themes/greydragon/css/colorpacks/wind/images/ico-warning.png new file mode 100755 index 0000000000000000000000000000000000000000..628cf2dae3d419ae220c8928ac71393b480745a3 GIT binary patch literal 666 zcmV;L0%iS)P)eOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/loading-large.gif b/themes/greydragon/css/colorpacks/wind/images/loading-large.gif new file mode 100755 index 0000000000000000000000000000000000000000..cc70a7a8b3d426c30e76686fac70c0dcd4c70125 GIT binary patch literal 8238 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/loading-small.gif b/themes/greydragon/css/colorpacks/wind/images/loading-small.gif new file mode 100755 index 0000000000000000000000000000000000000000..d0bce1542342e912da81a2c260562df172f30d73 GIT binary patch literal 673 zcmZ?wbhEHb6krfw_{6~Q|Nnmm28Kh24mmkF0U1e2Nli^nlO|14{Lk&@8WQa67~pE8 zXTZz|lvDgC+Z`3#dv5h=E26FfcG1 zbL_hF&)}42ws10s6^G;;cE1^EoUR)U5A70}d2pLv!jVIT7j&Z~EblI3x0K*v_sV|m z0kj3v921Z^em#l`(k(o@H$3ZdDRc@9NidXDNbqrumReCGv$gd8+e8WW28HVqkJ_9i zH>s*<31KtHjANIPvi2#*6BEu%3Dak5O_t&NBI)H?V$TxT}#l{vOTn5naXTfF^&~Hhq+NX@#Ccc>y7T?;vjI&jdhsDsPJyAw*m0Qz>i}K7# zL9w50Ng{fT}A5JUe8lRK1h7_Y2;BWJDd=c6f&i?Wv5(5q?6|P zQw{>maxZP<537OA37Uk}7@%_$4o$EWe_Zl>&#id|lE-BpDC#+Fn|msJ%_2h{Hg1vP z#N8WAzfWasG}yq|xqE)DrWaOofX=z|?*pgc%{ig5vl!pqDlC|q&~Z0$&Rvsft&VO- z4MZj+%-+Vx%W}v;V76hyp=;+R;x+~t^Q%*xuFTQAF2})fSfTHDAs>sO!OBw`)&)o$ c0!CNZt))x~rAZP^^P&YOFfdqy5)K#u0POD40{{R3 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/section.png b/themes/greydragon/css/colorpacks/wind/images/section.png new file mode 100755 index 0000000000000000000000000000000000000000..33fc3500d892da11fad830c9f4bc8f8f4d9dd6fd GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Aa)7|Gmz{M3S0`L7>k44ofy`glX(f`u%tWsIx;Y9 z?C1WI$O`1!1o(uw#>_dBFz;;gf^#Vg&!sLrpSI|H#^Uo?OD<$Dy_mD~V(zkw1uHHU zt-Rd0>3Zwdo9)|fc5J)Zx&2nxj$1uDZ(o+R%L1CiS>O>_%)r2R7=#&*=dVZs3QCr^ zMwA5Sraf1py)SA6)Jbnc3J?pnx~?q24u z)_|tDos+wOx}r9Vr?7yCz(crHNe=+r6;n}=)ApX+G$xIvZU4skg6CVpliyBxzp6vt zWc?Uf*U|fvcub-q`Z#PL)#?eqh`l?Z(M%aHG>EjD;Wxh^NOxNBnJyv3@9Vp6!)UnQ z$6MJ61>PeL!?hlkv5jtTlGTty!b8Q$Cs!9u#cLZIvck(xH8e2DTHjg?uQdpMlK(2{ z5(kFI>LY;!#J3PJ3_x@?^^(VwCL9c3;{F|UQzDX=>p_EzAmGhR|<%tmCBVqnBbP7R_BzD-Y%=KIDkw1 z&uR+-t&9o1CWvQSV|0cB>49i_xt}S(JCKhbVTm31BL(2B%EbNPgeod*Z=M$b+*zp5 zd*FXB?tj#1hJG<`je962?w(epG?YV-*frTRZvXA8`dcOpuhHEny_N=mBWb2tHV-dx z>?d4*VA`jt>mco96Wk(`_dH=te9@laP2g=vH4o|E=R2pBCy6%GH3ic5ZdySX*Uz!a zEWBJL9L!3PAG<8~bVVqMdztA#nS$90lT$wxX{KEyE4!DNR4ZUssa`cXj3NL_nY11c zvh;ahorN7ZivlS5`aW}Z5qCr3lHh;L{J&km^RtaQx9jLhOb1V*x)^?^6AO?8Fp&?( za5De)q#)-63F#7Y_dRv9=3PH?7E0Hv{H7AV+K}2|@#E|yyjDK}w7$M{v14o_KMGl# zKNZ;h8A4tC%ClBZ-*Ip*>sRd;P)#-Q(0O_H>w2cf!qp!|P`*N6uVi9@^h~`i>7I%t z2{WTw{w!6x&r>`UduELl1+DtJfqS;6InM}6@3zUyo@mpjJl`QJRyw|7%N{Sh6xgMmuw=+`?N4Wkt&0iUfYy znj!>Ma}yVJXS5%DO)*oH1MFzfeA7Yg-iVt+vE{6QF4A(Z6%bX6{*?;Y zeQQTBp+2OW*@?qDdMRzb38o%asmN;53uf0#fDlCvQNc?@-Vy!ZqD*jnnXZwm`!MCHmbLJQi9ZL=qOYYD-`W*eztiuG z5~B``cpUd>?wm8{MZ}W`oOmfB1+j}AVg0CY!u$nEN7?EwZaLftXJ>$?9}$qb(LCn;=OzL#l4+Efm@UG$;5Y(OMQ zqyJ+Xv(P2TLFvWFkaX^Rs88{qo66Q7g4g7AU1eE7EDiMNr@9^%@2nI@`cHU0I0+Pu zpUj;m%zqO(uyl~s@8fB^uZ4EGQ=Z;$ai2l0`X$HJ=t#QSOJ#tsh|WxctxsEb%;!YK zkOgS2p2X<3TxWb-)xDVlI8L_~E$c5Hr6E&HDMuf_B7J+C zJK9|=d?*GQZ`^j=$>EGPNPp&YeR+)D3hf9yYk2K*ZlGWx55TagdZCDeh28$j{yf^X zSp>60!119?OCw3#{Y*FJBF>5$gT%p{bEO0y-1034Hu3y7aoyad?9neCf%EXTPD5p$ z8(FLj_&xUettiEm&1^`Z>>IY3RIkwo7|VPB4Ve2!3OPNb zUv2kiZO9q*eqEb8*t08(Y&#aPY8tAz!v-LIYgj?|42@I5jYI^cuu zbZgZv%#5@L2qPi(A^rtwXtsS}cJzWJ`_`#W+JYCwCD&^22)N)HEHiT+lJ=g|+VFLi zSIBF6cnAmR-gkOF1Girxc`#5K7&5vUK!=|Qz};LFV^TU)~%mm;v5PL zSHzSH59FQ)Q~z@1MxF2p>NtW^1z-AqxC?lf>1(M8o>V z?I!~#I*(ls!Wf7%6u_<0;TH8}vF&Cl_AU?1?yhv!KV7?#ZgTsUZvL*ZaesbdwCg8} z+A3!WL%#H;DL6ZQ?$@>Rc|F&J{CXX`_u!#qQs%UP>=ML1ZaCpwuTj5Bz;I*5?WDS; zL$f-rai`x=yfSa?TV8$(lc~}$l=Y^50m0e#&Q*KJw-i6AyVh-QL{B}pMw1cH&~Y*5 zdSsISAVr9iTT$-Mk})OvkGok>Nyhb`CX$_Tmapw%rrfh`xSVMA#L1OXqq+KsaJ{XS zBh8?8ACTy&G}-?5{AQYzvEp*>*DjCdd52!11Aby+pc}USI-2JH=sw^yv z0Ee!V_J09AfZ%fP?L8pTluJ_9>gTR**Cfzma1?{!XbPUiRMW*j76G1_RuMI?rw#-2 zX{P3UsP}xuI-R4E-Y6|g_s={ZTG(=19D1!OZ<~1W*p*Vk^$4n^Ry6H#xxde!5yC%5 z$qz0`vC78 zr$fymXR7NJ-cP5OzjE%E+9aX{cK!p?{1Ks=cqqbHZI(I1^$|E4-~iH>XIbdA41K5W zZ@UgGZwx==A;?9}s~Rs;?C15ZZTs1n_CHiU!#-mN8hcHXCwe7W(XW)GGjp%&e6?IP zj3g)_>zVpKPez}iWxXoyvpO~*(X?sP45i8&u0L##y|~Hi7v%n&pscHUO&#bDj2?rt zgzvABo&NRSu7KswWPFX^-)8sh9B|MCeajiGIDWxa7GWi&^VJhS)>+y`7jFT zNWR+dv6%=c|UhUB}G^u_M=-I6n>vOr>;Y}6{)(& zK>xkvrVC+>L2L$nT&sgnslxtI2)a`(Q*jiUp0pRSMzX%I*Q? z>{S-_`JOL;T}u}>t~M#e_G_aUmBLmi(W^$GBoisIJa&}!z|);iTLlo7VPMUgG=yhS zuA18c>GJp!6=(S*qX0cxSkUe~X5s}EN~+x6=lMghl{tp9 zjM5?gLjJ>)bBce1M2~YUC^C(#S_Nod`*FC|gZVzx} z7WKU;89<+lWdx$EEeYblnp#o~B>NgxtSbyxA1N9=$Q_ViXGw0KP!wi2x?@Lo7FZ=z??h0u0Dl0LCcpqIaBYA8Y!) zAEuYD3g$s7#W7tt)4K=xP0byD1QSL9CZ308DblF!v zT#5rM%;4k3w;9sDOqm~>Kc{<6N)BTw`aWIdPhx&+&StJjb43dfiDVL$p0vct8DK!x zY9Ji91`sU)GP_R+paJ+lrVd&RliaGdY~-qYV1=4^`C;s(@#y&YkEe^L>&2!pFaX*~ zx^GRQ6;rVftC~Tb3FLw#OeH$UinKO^3`a8X)$2CUWwU%|2|F3!_u!P zXrH-1xO%(sY&_j-y6g04yHB8D|M?3;!yeR0k7?OnpDZTbcdO=72As~k;@=y$?Ttmv z8GB8Av%Xw+(ue09XUcvgKY2OEBdy@=K)pHK*8|VB+eRfaS zLBC{zeIh!@H)Q)c`(&@AQpJ!=dj*dp8j)I@GRL#8e_BeX%q@}Pr}$2~S+bZ9d1X!{^&ihc1#Zw{$jWYjfUWV{|QfAO99vU#-FbY^!x zTri^%In%g(BYO|Sb>iomvGJ?rHF0@^?@?KUFL}>WZ)&pcfw}+bzPU*-gXixA-Lg0h znTe}_;k;*#Jskhg{&y&ARQz9?$J*|0*Sj63sdegPCCeO4!eE z>AbXMR$RYJQg^mh=f5mF7fd}~9B|<<)75nnCAlSj7>7A;vl-bjk9Lxmh#-#t zbIN}vKK3e*$dG}2Uw`%o;Xut$H~ugTB=5=M{bURz6SwtwDe&f(_N%7GMpWY1XODL_ zdp#$6%ffJLLM=5IEc4Id^8SrXOF29cf{pvArzo@Pc5`CT#yfrb}$3j;5#8RIcPiqNC^ZG!eN*pKSGg8U} z58Q=G>U1$7Wl_x%Ju7-{=(EO=1F6;P%8$WK`G;^d5G!C$-haaM=h~kAPenz5zqKu- zySfo@U9rLVk0yTjKjZDk@;Kqiv>6(;FuVLQV=BJx6P=qX zH_{C|PmIMQ&De|!-r?9hAx?FQF6NuR)WW3hHA+ z{A%2iKSQeHMX^aQ=hLLws`q&Xi~dA*)N2$wS-ATaUEi0hj;&$_F0|>RP2a0JL(^okq;frZ* z*yL@Ug{CbXaBk%7hr0m{eg1qZD^lC%bkib@&we7Wx3Usk!ro; z?-|5S8GW?dnT0HZWo_T56b=hESDkV6&LMq70$rwcgOBP_!B=du&~{&374Frt^qkH` zlW_$yU_@V^iMsM^@j8i)SE%CZn|va8QzF0ND5pF5YVHKgHp}63sZ$qiD=Dgucmh0Q zUDJ}xxSg7kJ1zFAiL=D2i|Q(lSp=46ukkwxdDJubTZFN3wad=reP$P1WM>1mT{>f9 z&#IV9!&hy#sy?zQz`J+8ciLx$Cj?nls`JowzQ%3o6eI0zXHtJ2>R%rn2?mL;5-9J* zG0#Q<@?2O;?t9-BJY)z4Ph5`XM!=D~%9-IuAGTdKzm1_Vl^H|Kn`i z<|3^5gH*RZGY3?ea4spd!b1)iI7K#Hh_ZD>0M$Ci4t$7`ycswrRua=TdcsevMMn+r zld#gFl7-tIYR2y6NjRr5CO4|qdJJN6Fhrnx46OI=022p6HPEjq3x6EI>8f2aFI7?J zRBEu(10g$AgajgFa*QSq48;)#p}8( zY}4XjiPj61a^(_%r$yUAz@VoE^;Awf|A~B>_Ho?pA1_SD9y6Whfij6SpF_~}XcRS( zKd?gZ17WSZ4_cfdjur#W^1@dSFD3Qq=}kf1`}p*BXk=QYKnDm7pzjkw0X9(JeJ%jH z^#AhRn&-#6J%Y(aEMvev=!Oq7+Fr`XbtO(+qRSK>II5E!LSd_h7P9O(4iD7i^DwxH zzTC!D2||HrDm1@Oe0k%O&-n9pl`G_4cbt<;k3-C(p_G8d@PUx$OFG{0Tflp8&%qe8F>c4!w28C^V6Gb`j{&H&pc;V?PA*TzO#)BWZ>w6 zO?!ChQwxcHkf7~MX>hIFt>pLBc3OpkXXZ>Y?uD{~5=MVTSGkgg(L*LgoZ%ie(2=p4 zZLN+4?W}e*aJ^GWsUh&k$NX$$M+Du*w=ok-{3a@9`sw?lk1d<_whzWkkIo>R8W|e_9GV=!h#6H7K{_Q{n9k1g zQ6;j>g<)WKjled+|8(I)iqrcw0;mJ9xG{WbT4Dw|+rwP_tVH0J1iw9He63AzOVm*> z1%g(G?}OZvWYAL3%oJWn-yr)dCMQ#m8z9ZIfYC4d8?!C1H~K$5LaEJ;=$cyl9&H`S z5)O`m3hwkTx3YsnUH#gqSE`$J(X1>$B*Y+COyf!X-dhOV5?J}Fft5i{OJM+8K49cp z-ju9G8+7JmeSKYs9B?)WmE09a|AaL|7W+Gy1L|iQKWhXI4{2Zsl_GC5Kejs_9v9c@khC1P_aY72s{0nq#)I3>lu-3;1s?%)u!-9^`_$3bej_odJY zrv1Q+wDWy2vVb}6W^cPP@N@xmkLDuhTG-&tg0_nV?A?z2y4uF@eI-VXv(tjr`)U~M zfm*jl$@Zz{({2nqe?z!um{fwuqC4ZbwyEQK_hg3zpG&$aqo%)8wL*Q_*SJ za|#-N05W>fQjV2P*iFxs(E#6H7JLCt%KifkZYexjgJ`co$~S|{R@&SLVV`~cm(!yw z`(`SsNB2)ja#9K!$FFG)2oiytZSMIIg`m_=+vUNxpsxcp`}-dC(Gfx@VG4=7dn+*jpNkeX6IiNt^a0T)`Pu|4u<$0Sc zLLInyn&NH;$;zs@Z`P=rmX7n1tVGDYZS?hTbncfgl-TWPIU4`@i9v56hhwArV|kP~ zIsRyrM{D-=Q)#$n(<91e%;o-Py_22q6cZU2$g+bzgpF{bqnTH)K@aU0{}0lq`{Wp) zZBGth0gQ>Q9#S=5H#8=Wzrel&TCdvuB_MDIp6#0^&AD>Qd-*_|7 z>$uhZnUxX41(;wU8HsC=yC&mPks2S`uGxT^v)I`6FvK4JhIV4mB=6ig8bRrRek z9?K?8re>3`HAw} z+4lDW6!Id^V8_rq1<9u)W+Q`we1K4K2s&GbS1%c6AxAon~O zAdVic_am;-jtbq?U0Z;4kbg7pzkUd^ddOIPd%7eKcSe0ll4#mukm^41I0eem z$gjO6#0P51g>wlj+x36F0>3uAreeec^u+N!BK{(X57-K79SM8?Deo3?nLuVC$;^`HZ)la|5|9c5&R&XwXr2wG01VK-rlgN^IZdp=7bDsX* z!2p8DDX*=U^QqO6m-{1=`!z9QNCxd;aE04F-eOU)ro$bm4`?aBbVI(piq^0Lo2R76y?@`5%5 zOLnkw6rs;MkyrOwEUZ#(V7zDT+q`peM_8P+#qi`|57$zz{18}t&H(SzRu|lh5r(*1BJUkuU-CLnTm(@rKEsH+(!6+ij{IVS~ynO zyJ%IVk}w%&uw9F=ZVV0a*sW-9ybSiGExGf(13zc3U*-1(8Y6%oPO+PJhY}wj-rYfJ z>toPA@f;M}q$n=dBFNl3_RV#F{>r+t-7o$(GTwhc6q2O|ymqRqbJ?$ch{u_3J8UIK zYGqTA)uOfG?SWDhriY#=%8m*#grYfnUI(k>Qgd?RlA_x|?)3XiIzArHMI=q{+#Znu z%49DyLN>RO2US)RCTQ>U%y6G&A)pGWfD_Y$GMB|E;fvNu&V{8)x93a?T>LwV3VBZ| zo#-AEs8md~nX+{>LQMp_539rWa4-!Zj#GA)bQ`|8rDKs=>6f8NuRV)n601r#u}#He z{xzlP{=Z}wHQ9MDFnX!~AuZ&tkL!-?vGN|$_Wa(zp ztL@BxE}i@CRK=&6vIn8DR${}S@rJ;q68o3Lco@b^ynGj;&8aVf*yH+DvLnOqFGi|t zOs>Bb4XY%kNVT%UjD?p;ySFWRQi*k-ixQKZkWZSd?I=00FH;eM>3FJbva6K!{bT2| zYnQL-of;4kra!WSNz8t^m=KXMeP1Jb@F0J3w3ONUtnwrEq(TS~>p1iQRhXl~u^F$f zT3m#nIjjE%G=ci#wH_i9v0*oKX+}hOeCf2I`>nc_SO=n)h*YjXoD(y%;IEqdIQ&|Q z2Gv$`{_Q4))VI%yO+KDGXXzMGQ z=o2cJen%$tl#luOtD(w&yunzJ@zw8P85Y&oUCLweOjr1MdOR|it$+0P(9(sk@eJwK5a3(de zz9{cdyw=Jq?VDcqJvQ(VeX2@ zyd`@hoHZlv2CdXJG6AThWiNm(f@7xV-jRRKmf(a9+nz-j0f|myx3W5ovdbBR9 ze*P7Z_Lgv_bRE8d<8oInEh%_I7*)os2o#vNs925cMc=mSR952P^Y(5ku*>z;CLzh{NM7j(0XG_<`PB%UyC(8XSDp8>sBb6?deBd5fZ9 z+4=jjsFK;};ntw066-|M+0ie?f*#7Hvz#GYFTUa93KySvmn`F@v);~5m3M}!p7X@T zF4Z)_RNSpf$-8{sH|Fvu@dODiFPXJy@n5R>`dleq<@t(}))~*8&i0a7_AB?}@8&Jv zXUg2-@bFK0*(Ppr@NBx6x5Vv=bp5l`5W>Xv^qJ}t#U_BWy;y@}3Sn=`u~>bJHjRA^ z(JP7ac6zS2Q+>vn>P}JWLq$z1b=Nd*15eU6eZ8H$@jY!IZhovVm{6>=n1NO*o*O)? z5`@))kurJB@YqF>l4isg|HI0llG&DrwRkl;;>SYFTkv4vRShMLESZIplFR8i|0mP4 gz>ip>BU!H~w#c3Ju$tUle-C&nis}kQ@@7H*0gJ&K9smFU literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-calendar.png b/themes/greydragon/css/colorpacks/wind/images/view-calendar.png new file mode 100755 index 0000000000000000000000000000000000000000..13e0e8fa6ad01636e87a376aebada4612d937186 GIT binary patch literal 637 zcmV-@0)qXCP)D7ei;IhljEs$qjgF3vmX?;6mzS8Bn3dCU$;rvf%gfHr&d<-!(b3V;($dq@)6~?|*4Eb7*VowC*xA|H+S=OO+}z^g z;^X7vlt)=I7_<>+9?6?CkCB?e6aG^Yioc^z_3;Z)X4i010qNS#tmY4#5Bb z4#5Gqk!$S$000?uMObuGZ)S9NVRB^vP+@6qbS_RsR3LUUE;TMRK8?(F0002gNklXRGqXq|E9aC%$SE>sC?yodM2ylL?*BGC|I-$i?Rt0TTOKCqib?KW zAaB90l*C7nq)MMQ@)~3h^ULGCrj5J;?dq0`!%dv4(?)hc4JqL+D@Vn|eU3Kr63o28 zPei?})dmV}A;b!Iw2?RPt^X|6*2dg^Iu32*oeSh65B?wfC&wND X`katw^)ehH00000NkvXXu0mjfcAGp5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-comments-b.png b/themes/greydragon/css/colorpacks/wind/images/view-comments-b.png new file mode 100755 index 0000000000000000000000000000000000000000..64f8c50915ac5f4391096c2991c1fa2b490c6740 GIT binary patch literal 892 zcmV-?1B3jDP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+?oJh00E00QhuL_t(YORbV!NK;`L#}DCs7ZP+8WZ_j8 z6$ag;rw<6Cz)HPHk&2KqE6x04Zs)6gZ0Bj_x)OFHypJ=-*=J#cZyS%_Emz(=WN;gqzE*?Btai3r$T;k*ALH(QTJ)h(j4mEA(P~Q3r@JXv$7^$)oUS-$0MyMfAuX2ttfnp#>dCm4Y5coLyi9r zt3)mDHcPh%E;!-lGK=f@4sn!bW@gCYbdh6XnYXO|i%FLhe)rxj^-)i*s*#5aPPn;@ z!rDYdw{c-+8XdMO&f1t;8GdO^+h>y<4-RnL1CtK|Z%h0*3BzuzzM`O8;&Esid% zH47Jc;At<%^~@Q*YXFF2tZdV SrfyRJ0000Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4NyWWz$e7DaN_pUr%zwL zeEG_iD|hbPdGzSflP6D}K7IQ9`SaJWU%!3(_T9U8pFe;8^5si$(vdQtF3tjv$YKTt zzC$3)D5~Mr02Gugag8Vm&QB{TPb^Ah2uRG#E79|F4N)jF)-%;JvFkkp(pl!|;us=v zIXS_BX-|3L119G0@9yqybaKdIW`2H#lSjc(;Os@lz|w__8yj^W>M=`fQZ?AX=CE}W zn}LC*!_k={5)!Nn9`!KsoH@2fykXHE@g81@h!~jzY>b&~-#&d}n(+6HLszyai@}Z+F-V^$eg37(8A5T-G@yGywqUHG%>F literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-fullsize.png b/themes/greydragon/css/colorpacks/wind/images/view-fullsize.png new file mode 100755 index 0000000000000000000000000000000000000000..58b3e0b471b8503f066676fa3242893124462559 GIT binary patch literal 365 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%!3-qjE#*>x6id3JuOkD)#(wTUiL5}rLb6AY zF9SoB8UsT^3j@P1pisjL28L1t28LG&3=CE?7#PG0=Ijcz0ZP~e_=LC?PTW3y`R>!F zPoFt+=JMssSFT*SbLY z*ARs=V?9$n6T99sWk5w`o-U3d8t30$ILLQMLBKW8O=nvWx09AbaXS(L4GX%26Zrqa`1y-zm94<6=Bc<&Vx_9W1EuU}h@sqKETpNo>tU!1^R zdM9`C93f@PW4aTI@6EseQtA4s##a*Oz2f{@^8ea@+unbdA>@JJ+=dsLpMWl4@O1Ta JS?83{1OQ!uo!0;W literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-info-b.png b/themes/greydragon/css/colorpacks/wind/images/view-info-b.png new file mode 100755 index 0000000000000000000000000000000000000000..90f1bb47c04f0494f0eb2f21385dbb9b7f3a8868 GIT binary patch literal 698 zcmV;r0!96aP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+6A`RQ1Gbf_h=o!T*S%0$+C^=p(Wje_ zG}?Ne)pvNlvpBp*h`wqMltx4MqQyWxSP$sRWa_rKsWM}MR)HhF@SAf!(84@>P>$UB zN7RSHxjbLFUTsVsO*T<16gapxL9vi!1Lf zN|=Ps)nO5cIn;1*@$lGTpF>V)vx`TKA_gIX%%KpO60?4p3RS8&I2`wuwnr8n1%)tS zLPUrxiD1(rgN4N^HZ~P0dqgD>6v9La`6Ad%5GR3&Ns=T>Qg+eMP>IP8F+#qW^)+H> z=;#>4F?*8@40LofVnk6{ToXp#kYWO}Z?exKCJEx`=%}b@QzA8P$cZV^WU!^Yjl~LS z7BMl1qn(?>B74g?&5&Xli!6DHQhr8(95xndl2|Nk2qA<}Csr?Qay+Jt!&50A<4~nU z0h=7@u0A5uktnTE!C{@3eerzHI%`y^P{Ew}o94l|>*L|#<4J04Qlo~)=EbsoCDHjI zE9bILg9c4nJg3Pn4PLQMa{51KWsljd9gcZNhYoK!V(To|bnf18h5G}Q(WU!O>cx7w gUMi+1SFauHAG-~MiTl%uTL1t607*qoM6N<$f?|g!uK)l5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-info-o.png b/themes/greydragon/css/colorpacks/wind/images/view-info-o.png new file mode 100755 index 0000000000000000000000000000000000000000..612ba966a153dc2148b7f124ea0b452df9dae32c GIT binary patch literal 259 zcmeAS@N?(olHy`uVBq!ia0vp^fhV4c)I$ztaD0e0sylLTQ>jz literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-info.png b/themes/greydragon/css/colorpacks/wind/images/view-info.png new file mode 100755 index 0000000000000000000000000000000000000000..2cc7a68ea0d6970ddc06d7bcfb26ab9d42ef8de7 GIT binary patch literal 383 zcmeAS@N?(olHy`uVBq!ia0vp^Vn8g%!VDyDo&1~%q*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N$@$z$e7DxMN}A#O>>L zpE`Z|^ySN!uUxru=gyr+j~+dF^5p5$r_Y~1fBpLP+qZAuy?gih^XD&Lz8Lv%@B{U7 z7I;J!GcfQS0Aa?gYn_}xLCF%=h?3y^w370~qEv=}#LT=BJwMkFg)(D3Q#}*A-ZN!D zMN>Ro977~7Up=>x^N@o`!^8jcuCw_poVq||ZmaK{BaAHJMU!}v9CY3kE!q0fHOa-G zJY98H(|wltohT>s1K Zn3G!?+Ef3|mH@hs!PC{xWt~$(698=Do3Q`@ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/colorpacks/wind/images/view-slideshow-b.png b/themes/greydragon/css/colorpacks/wind/images/view-slideshow-b.png new file mode 100755 index 0000000000000000000000000000000000000000..ad13671d7dc5765c5350694787aeb8fa3a7430d3 GIT binary patch literal 1179 zcmV;M1Z4Y(P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BKeVQFr3E>1;MAa*k@H7+ zj>ntZ?q45yrY#-W+4`Vf@87Gvi_>5Hu%IKV)!H=VnmxeK*Wu{$D7L@!5D+O zItOl@!%-8SbzOVd81pQEziYt9kM+>CYss-lq@FFyKvW?jAeIFjt}zf%h$vJ6V*txGuwelPPys^5f#X_WQLJqWV_*Eh z;2W>Kl3NP4s*7E_HW2wtq6$$3tAa(qQc=%AG7$}KRQWC^=2=TOK1rzplgc4o z0#&I*uwP87;*)s)>x$|SkrK0jm_fnp2lcJY0>4^ot|T&Q#C1b-S8&ixlrMC3o3=|W9oUKvkk3?cOjvjsMv1D>=s<-#u&kh}Wd7n{O$B(`GRbyk+S-)XZxV3FvWc05Q zQk5nElK`>+e0v430-(OW0oQfwp1W}2+aIrAzckd}e`Tnr=k=Y%;{4pez_m-M)cE+H zf7~3;W-}>OB>=YpWbUxr@==(X*)}^{kn`ui9srOd@(0y8+!To&j<>e=X3`T`0CwOm z8-Q1}+e(Vj)xE>0!AswqJ$+?(c;F`hNmcbmZVe~%Gr7t6;@tSmOs?7s3ZQ(?e^yub t4zqjD{s&v)?V&r~0n4_GvCQ4h{|Atk?Fp847GnSa002ovPDHLkV1l_PEmi;k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/forms.css b/themes/greydragon/css/forms.css new file mode 100755 index 0000000..8375de2 --- /dev/null +++ b/themes/greydragon/css/forms.css @@ -0,0 +1,120 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules related to forms/dialogs + */ + +.ui-widget-overlay { position: absolute; top:0; left:0; bottom: 0; right: 0; position: fixed; width:100%; filter: alpha(opacity=70); -moz-opacity: 0.7; -khtml-opacity: 0.7; opacity: 0.7; background-color: #111; zoom: 1; } +.ui-widget-overlay { height: expression(document.documentElement.clientHeight + 'px'); } +.ui-widget-overlay { height: 100%; } + +/* Dialog ----------------------------------*/ + +.ui-dialog { position: relative; width: 300px; display: inline-block; z-index: 100; } +.ui-dialog .ui-dialog-titlebar { height: 1em; padding: .5em .3em .3em 1em; position: relative; } +.ui-dialog .ui-dialog-title { float: left; } +.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; } +.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; text-indent: -900em; } +.ui-dialog .ui-dialog-content { border: 0; padding: .5em 1em; background: none; overflow: auto; display: block; clear:both; } +.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; } +.ui-dialog .ui-dialog-buttonpane button { float: right; margin: .5em .4em .5em 0; cursor: pointer; padding: .2em .6em .3em .6em; line-height: 1.4em; width:auto; overflow:visible; } +.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; } +.ui-dialog ul { padding: 0; } +.ui-dialog .ui-dialog-content .g-right { margin-right: 20px; } + +/* forms.css - Component containers ~~~~~~~~~~~~~~~~~~*/ +.ui-widget-header { color: #ffffff; font-weight: bold; } +.ui-widget-header a { color: #ffffff; } +.ui-widget-content a { color: #222222; } + +/* forms.css - Forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +form { margin: 0; } +form p.g-error { color: red; } +fieldset { border: 1px solid #ccc; margin-left: 0; margin-right: 0; padding: 0 1em .8em 1em; } +legend { display: none; } +input.textbox, input[type="text"], input[type="password"], textarea { border: 1px solid #e8e8e8; border-top-color: #ccc; border-left-color: #ccc; clear: both; color: #333; width: 50%; } +textarea { height: 12em; width: 97%; } +input:focus, input.textbox:focus, input[type=text]:focus, textarea:focus, option:focus { background-color: #ffc; color: #000; } +input.checkbox, input[type=checkbox], input.radio, input[type=radio] { float: left; margin-right: .4em; } + +/* forms.css - Layout ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +form li { margin: 0; padding: 0 0 .2em 0; } +form ul { margin-top: 0; } +form ul ul { clear: both; } +form ul ul li { float: left; margin-right: 0.6em; } +input, select, textarea { display: block; clear: both; } +input[type="submit"], input[type="reset"] { display: inline; } +input[type="submit"], .g-button, button { display: inline-block; padding: 2px 10px 2px; font-size: 0.8em; color: #333 !important; font-weight: normal; line-height: 1.4em; text-align: center; text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); background-color: #fafafa; background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), color-stop(25%, #ffffff), to(#e6e6e6)); background-image: -webkit-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -moz-linear-gradient(top, #ffffff, #ffffff 25%, #e6e6e6); background-image: -ms-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: -o-linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-image: linear-gradient(#ffffff, #ffffff 25%, #e6e6e6); background-repeat: no-repeat; filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); border: 1px solid #ccc; border-bottom-color: #bbb; cursor: pointer; cursor: hand; *margin-left: .3em; } + +.ui-dialog .g-cancel { display: none; } + +.g-button { margin: 0 0.4em 0.4em 0; } +.g-right { float: right; } + +/* forms.css - Forms in dialogs and panels ~~~~~~~~~~~*/ + +#g-dialog ul li { padding-bottom: 0.4em; } +#g-dialog fieldset, #g-panel fieldset { border: none; padding: 0; } +#g-panel legend { display: none; } +input[readonly] { background-color: #F4F4FC; } +#g-dialog input.textbox, #g-dialog input[type=text], #g-dialog input[type=password], #g-dialog textarea { width: 97%; } + +.ui-progressbar { height:2em; text-align: left; } +.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } +.g-progress-bar { height: 1em; width: 100%; margin-top: .5em; display: inline-block; } +#g-progress #g-status { padding: 0.5em 0; } + +/* forms.css - Short forms ~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-short-form legend, .g-short-form label { display: none; } +.g-short-form fieldset { border: none; padding: 0; } +.g-short-form li { float: left; margin: 0 !important; padding: .4em 0; } +.g-short-form .textbox, .g-short-form input[type=text] { color: #666; padding: .3em .6em; width: 100%; } +.g-short-form .textbox.g-error { border: 1px solid #f00; color: #f00; padding-left: 24px; } +.g-short-form .g-cancel { display: block; margin: .3em .8em; } +#g-sidebar .g-short-form li { padding-left: 0; padding-right: 0; } + +#g-quick-search-form input[type="submit"] { filter: none; margin-top: 0; } + +/* forms.css - Reauthentificate ~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-login fieldset { border: none; } +#g-login legend { display: none; } +#g-login label { display: block; } + +#g-column-centerfull #g-error h2 { padding-top: 10px; } +#g-column-centerfull #g-login { width: 270px; margin-top: 10px; padding-top: 10px; } +#g-column-centerfull #g-login input[type='text'], #g-column-centerfull #g-login input[type='password'] { width: 100%; } +#g-column-centerfull #g-login #g-password-reset { position: relative; bottom: 20px; right: 14px; } + +/* forms.css - User Profile ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-user-profile { display: block; } +#g-user-profile h1 { margin: 0 0 1em 0; } +#g-user-profile .g-avatar { float: left; margin: .4em; } +#g-user-profile .g-block { position: static; min-height: 5em; clear: none; margin-left: 4em; } +#g-user-profile .g-block ul { padding: 0.6em 0; } +#g-user-profile th { text-align: left; } + +#g-user-profile-operations { height: 1.5em; } +#g-user-profile #g-rest-key .g-button { margin-left: 1em; } + +/* forms.css - Uploadify ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-add-album-form, +#g-edit-album-form, #g-edit-photo-form { width: 500px; } + +#g-add-photos-form { width: 476px; } +#g-add-photos-canvas { margin-top: 1.1em; } +#g-add-photos-status #g-action-status li { padding-top: 0.3em; padding-bottom: 0.3em; padding-left: 2em; } +.uploadifyQueueItem { padding-top: 6px; padding-bottom: 4ps; } + +/* forms.css - Permission ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-permissions { width: 480px; } +#g-permissions .g-breadcrumbs { position: static; } +#g-permissions th { padding-top: 4px; padding-right: 0.5em; } + +#g-confirm-delete { width: 340px; margin-top: 1em; } diff --git a/themes/greydragon/css/framepacks/android/css/frame.css b/themes/greydragon/css/framepacks/android/css/frame.css new file mode 100755 index 0000000..548b152 --- /dev/null +++ b/themes/greydragon/css/framepacks/android/css/frame.css @@ -0,0 +1,32 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Android + */ + +#g-album-grid>li { padding: 10px 6px 10px 10px; } +.g-thumbslide { background: transparent; } + +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { border-color: #ADAEAD; } +.g-thumbcrop { border-width: 1px; border-style: solid; border-color: #ADAEAD; } + +.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } + +.g-extended .g-thumbtype-sqr { background-image: url('../images/thumb-sqr-ext.png'); } +.g-extended .g-thumbtype-flm { background-image: url('../images/thumb-flm-ext.png'); } +.g-extended .g-thumbtype-dgt { background-image: url('../images/thumb-dgt-ext.png'); } +.g-extended .g-thumbtype-wd { background-image: url('../images/thumb-wd-ext.png'); } + +.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-e.png'); } +.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-e.png'); } +.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-e.png'); } +.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-e.png'); } + +.g-extended .g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-eext.png'); } +.g-extended .g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-eext.png'); } +.g-extended .g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-eext.png'); } +.g-extended .g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-eext.png'); } diff --git a/themes/greydragon/css/framepacks/android/images/thumb-dgt-e.png b/themes/greydragon/css/framepacks/android/images/thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..39a793af43e6f93a0112541895e022d80ec05cea GIT binary patch literal 1482 zcmeAS@N?(olHy`uVBq!ia0vp^uYmX(2Q!d-@#)J`FlEY=sZ*!Um@#Aa?AaGCTsU{`9E3a%20-@Z%a^Z!!PTo*fixOceTfc7IhIQ*VtlzM4 zgOjV1v#YbSo3pEjtDC1=ZhmflVLqD5?K`&b*tuipuAOZ^!tVovHMu0nFPMRug_Vt+ zlZ%I!k6%DYSX4}0LQ+avMpi*lNm)fzO2Gsa+yZ{Zk3Z(vshmA(p}1v>s_}0R7Mn7k zuxGC%oioyWy@U@d{5bKgkUeLvS=o0sK35qFqXLVE2kYXW+^P24vMl#@=A#dypF6h% zW?4OBJ^F8n{lazo)1??yHec~Or@u^>@xnC8i#>Zw-aNY$wq)x{#jsEE!as>wj8z1c1JzJ5fQ*-O{_4oJhWfkbS%3R<$C*uwi!_GfU6+eIe%C2Zg zpZs~VxqMtDL%|eL?bUyO{CHYdHa%n7vhdAvtZr*oy}oKP^PoV&E?yCtz5YF`%Z?oi zEV=QkQNw1({_h&=E?slJd+O>6h2TVnjKHdOo2D_z+{tabdQ;@t+U1d}mTp$`+^sX` z)`T@G;o4dU7IkT@TA^QE5>ccg`k-iKY0R~T4e`YfTAf$!(#qnz60i;=4_373nosOK z1&2wwFRz4gOG1P|lJ0@8XBsZy+OT5LJcg}Zv%Id9?Tzx>wklF6^vZPkz{GV~JUTEF zy0o%lKOfj7?o=8Y66h)lBG%583Rx%Sld2Vaa|J^;*sfpOlRwwRla@Nau?mEsG}|g8K@7*XCg22?+8?xd(d^Id@ZmmbR2r$d|q z**4rb+n28xM0HzFax4Jhp5}LD|DZ{|UAa8LZoOtuO!K{Hp4< zxaDr;R%NBC!<&N-GAo}ukRL3++1}!w?QZezopr E0K31IF8}}l literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-dgt-eext.png b/themes/greydragon/css/framepacks/android/images/thumb-dgt-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..df4aa490f2e6b64710b38da2b99dc40a6b98625f GIT binary patch literal 1939 zcmd5-i#OC+93QKaN{S-#C{3nRw0Vt)Qw+o8hZ${Y$+l%?M{5i-%}`4#B(}W9Yc%6M zlrrN{X|yA~FpTk-IBR5?gDhs*%q~4>_A=Gk(_gTkbMC$0@ArPcpYQ#C?>*-x`$8UC zYYf-GU@$FDv>O%%Q-i=TU#$)-2Q89+1j`D-Vei8*SWVj6h0`m6u1Q7*P++k2O-n;9 zv@cl`7!9bX6I5I{o=QI*83OY?O(an*A(a0%nzf~^rCnEi)k#2`?0eK71)Tr4aCUa~ z@bJjW%F52p&dbZYapOi;SC?2U26Jm`D-b%D(bm=mEE0+2#WH$(d%^m}+}GC!EMQh` z0ima-M->9>-QC@vRY3Jw1@xa)Ac#6dZS8HfK^yr_(fFxgZc;j2mA*9%-6Z#zF}l4 z7Q(^QSFBv6v08J@I<58E8#e0bZr0P^Vqmz{$avd!vmNlA=7?RpE%xlQwA%mm0c#su zJA0(V!6T@k;P1ZA&dJHm%VXx}7Znv3mz0#2mX(!pIOXN#6#zE@ZUIyR+^)T=_~*?B z6;he8E#PG-J>3rbM@j!2TqGHKY-*Oxi^P|Wk5!)BlX6k}SnvBsDHfBq{mdxThJ`=Vqd zxE~wJBe|?=GSUwY&mi%nA=u1zY2pYrw^+oeYRMVB8-2d#m3k@k%$+(fN;0b1n5b~; z6{0ucSYDZX9~;=Har#RuCC;Y5YwB|9Y(jRW7^R?Jx(P*l2aEjJ&7zxP+>ef$Eb#HRq8@WmA8{^1vB6m*O&uS zavMh$SqCXgU>qeIwm9B`kXCVw5LwZ07ud$hyL^^|_0u~P{ryo`_HrU!=&SJwhmO4? zzJ)pGY5B$)aM6gDqpuUuwfG3fmPE{i^=~ti;BJKXC;Mz2aDC(3S`UIh( zA7pI;5i2014DO`nNVcK~#Nu;Zs7>aWaK!$xt5|;?#VtAGQ;OjPP{8(|KUF~^H$1F+ zqqmV>agay@4CE)8h&Zq*%c3J+RJ=)HD8@@@QsUenc;(M(t{Xp=xs*^<@RD>kfpPD8 z^&KDd=z_QjPoK0dw+py%X4hp<8bEFq^eoD4{;8)J))9< zPx``pS+&}+3bE9V<>JUs-nxv98l_kNwaQV|@Xk0%^zrzs)L->hcdSRS$}Teq0>4i^ zTFSk2rz+meFvx1`!@Pk`_U<7O&WmV{vlG9syw1lI;PEs?e)e3bIB6Wq3M2gO>sG4q z+#$&BHwIq2kd7_%6F}!{kFOXSnveN^M}O5vx}sY;(@`IXYA6~5wguX z1}Vd;J2{)l;Mi9x0v-B=*QCPHbqyzc!CM&TQ}m1`B{=rSSMyT@OKffbWG?xewNEY9 z?yt1Inkaj4r+~_a3mt}q&?_cqe{Eq|zo1L5rvBcgQbiaSp~mfgqR7FnaFswcm7ZFFS1JluW%OMPNmgPG4zp1va13w=AaZz~7z@B+OEvyI*Z_BGwnlYfi}ty<U!-{Mq%iv6q3C?TvflYjYc4AAl!Ppim?EAz^eY neLm7;A<4oucvY%s<#@QhmveOQ%r@|w!eE{#$c=mCyUYIqt4WJZ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-dgt-ext.png b/themes/greydragon/css/framepacks/android/images/thumb-dgt-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..297a45638bde9ae7a1ff8d87f846d2e7f9857b9a GIT binary patch literal 1791 zcmd5-i#L>M7@tByRBowQLPq4$PzKp@nPFVMW`UoMEt<9F+2nWf)4*bL7`Bn zR4R=|V=x$9U0omuZb;!eAibxj=fygDdwZe%8`;;_2YDd55rUNN?(U5g$S)F!zL*fz z7Zc+CVnWK~bqR8?11*HpWpTwGDEu4q@32MUcrUm#o{TqJyR z@=@cXMs6dwiF?Q^ViX!Np6Cbo!{p=@wkRqoZ&OvgpNnGc+>Z zZvr*AS!#YhjYcmhEWCTSsHnKOq@;w+E-fuBgK!T* zIfM!b_ZL?-5F5O01$rqAjGJ@7)xoJ(L$O0>%`|bnyX$~z*HRH^E{_^s#by@fbm>^6 zZU+9`hhK2XE-)2E~`{m8ioIO+bBKaAiM6|oP*5Z$VJkMiY8Ct*pI^@pWbAs z`VhDcXJqGZSycA<#J}tpyI0foS2UlEb!Npc&8FwaO_Q{}`aJE~rC45Ke_~KxUP*6_ zFb{n!@OILCR!FJ+tfO6le^bk{oFo!N7CPgTYQl z2r0QacWh3~m={Ed8YMBt{FsIP18pHQlKPJ6nQKj?j~|7-`vaLc{6F5SE3@LBcAo}H zL34YKleP3|y0&bV6HU%Loo{zjP&5}MEU!`AVdM%xF5T}xvLVnOrwgwn1j!-;ve9tr1-L|V{ju+Mw*TN&VHlVq( z(!^vy!hiKZpI3s1DuRgg%LyFkT_>%vNzFeUNTw8xJ0w%y4nSE?l;BKxsQy%q&5&3( z$F`O=J7y7fUcBN7r|Llr8-swjBns)0@|MxDMeaR}BbC*#M*k(qdWaas(fJbZ!EkH( zL#Vya?MKB32d>u~P3y))@~#0UbZ47{uX#V+j8AY`pMW%HEP~{Bs_`g{y4+#U>ZvpI zL!xB}Doaj1+VSgBp(>>l(g;$D2eO6Sp$0Vo>hD$iP(*A^3}`ZcXLY-}YZs=o9z79dW?b#r4=ycbsojM~Cfh^X~z*8mWFzJnwC zU64IJ0_}saH#nqC=>UcjrG`BUu_@t#90#)53aHb+UT0(!`ClnIQn5 z4ktf1_hRFD9+3;4k=x()uO54<1xncDu$0AW4X}TN{=V9{g4lG@qj-y_$;@}JPt%x# z<9>5Ng7*h1cVP1ZlLqsHsON_Vhe<8Tx@teX*12JWqau=%R)q~y)W=@353bx0FC2pY z+yc|E)Rg;*EfVN=j@FO3g}2mY&bzk@Bgg1~V)*nWWaiP7{+1L1l@Uz6?>TgWA??20 z(VNL{HqmQ&if%72UVsyB3bk;&(BJKxt_|}Z%SNqk_jidbNGn)D1I3T}IB23bICu#w z4No}%X4u^kaCsp^oEH_7fz$OTl%>oUv?(XPy>x)ge7NdcKXWcpsJqXOyb7DdS%mEP S&F9YA&j*77+&C_wKmQ9h)a~60+ z7BevL9ROj*tZSW|Ktah8*NBqf{Irtt#G+J&fW*wa5hJySii3(aez7#JAC z0(?STfr10ehI<;z#V;Of<@KpKs_cI_Ha z1V}=pfQ(C*El_H$OMOFdt3j_8r@I?A)<)*Uq*d;rD^Tnp_g(7tFxS!pg?Z z$;HFV$1flxEGi~0At@y-BdegOq^zQt*fVRU}$7)Vrph?VHq2rkTiALv>7vI z&RVcw;lf3W7B611WXaN{%a$!$4g@QJU?mW&TD5BRkADzwCuHR*1_tI}PZ!6Kid%2* z-u1ifAi(;d_}Xh0J+2^c`Gu=~{o@Z_xX;nGeu22+$Es!Gp3X^g7*v<0eCu&JkbV5g z>3>z%S(Z(iHAkJZ`2q9oe(QwCTlVd}zEQvC{KUS$oZr9QUNq&NS6bGsZFAH3;tl6} zNH2YMe2>EYxnE>n{i;q>YM2w0r@lP>@-&7S(@CT8e#!00+?AKVhTZ&mtVB68 zwPKUeFYO!s(>vr04m{v{zGwH$gR(O%w=d7P-?yLb!H28N1#U8#G0Y4*|1eej`}%43 z>}K`JmnWCczc+)~;7He0)4#v|ye%u6JTqus+?gsCp7_w~-I;!zoP5u+-5 zeUh}3dz8Jv!RFo7{RLCE$-Q!0SH(KBi>2Y@;^$h~ng`CkO^cZ8YmjeyHb{3aujjJQ z53aPOsP2pkWE2Yx33RQ!yZG>liJ=XTgI@1g!#MHZnMU^ZpwiGQ93kQBy0liUSk$HU z%5jCt&9?n(Px>v!G`=gzdk%Ne%CzFs^(a0Mmu%4%V>wP|WfIK(wTnZx~! zU{hXYFS=IPt`oy*p>=g{_qsQCUS~J1+y!wF*jcMqIIfI}4+U$Cx7cE%n#GYNsx7(B zRJym(l+A9HSOm8u)HP6l6b8#W{E>b?ZRe}F!%KJWUbg3|PA6EZDr42N#>auLB_y&g z29}yKU0tO8RnY~k`Tz7+qIb_c=G)Du_crkK6OHTtpQQf$xKm1^jbrsP)_vLs@-A|3 zxPRAAa?Yu)Hi0<)uX(EHUY`t2|8OR@)U0Lt=L=Wnh&^*C+HADn%Qq%-^15e7d2Z$$ zl#jQIS);a3`E31qtDv~pe{=MCZgO9Kv&woVg9=B}IhGAK*IhZC@$tu%JzJOGzga$g zqAhFlzkSl*CLK=6v%CJFL`sJ3On!b^tmcVhP8IVnf6$b9+wQ)-{Qr%feVom{_ve~i zv$y!B&f}k+dav~8gu6F(R#r8=;bdQOJfQq5-}xo$w&wgTe~DWM4ft@x9r literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-flm-e.png b/themes/greydragon/css/framepacks/android/images/thumb-flm-e.png new file mode 100755 index 0000000000000000000000000000000000000000..b97c8c1473025fa95ca321776522d1105247247f GIT binary patch literal 1443 zcmeAS@N?(olHy`uVBq!ia0vp^uYmXn2Q!dd_Qux=NU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?FV5-3)Wy2prB-lYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fSMh32(U3=E83 z0X`wFK*fUuOqnue>eQ(-X3Us9d-jD37tWnK2O-ac0g!$9^5rXFaP{g{AdN;|yLJsI z0wf_)K*ps@mmpez;ukMogmZyL!MPB|n>TOPtXs2o-P*P5*RET?Zrz4;>o=_5uyKQv ztCO>P#+#)tUA!+KgX)|WboV8%V z!i9?#End82$&#f@mn~bi90*nb!Ac-lwd%(|2soB@=??<~bG)aEV@SoVw|DOQ-8K+m z`|#en@YcH~MU`(Xm$!VcpTqf?I+>4Ew?2z zg-p&!^Ys$GeY-H_?@#tO|8tKlj4e#4%&09te6KG4*_~>?Ez5FmXCA&Q{KPo3evw>M zkNb16E&cK|hKvTr48GJZ-e-n7TUN-&S?&{2-mfgF**IDMCN#HOzyZDL5<=;nk>^c`= z(dDl^_H&z+lx%KPJ~D>L`|8udd*S>cKP@=(HySN*NP)osot2dWUjbh zu1DCU)uN&afv%#VSGM1^(y>$(eNeQrv?SZ%#$kzyhXJeBbwx3mPFcOEOKa7NMO{@w zTAtgEeh)Y0(*bd{UabyX`ES*V$4kQu`OaLmD3A@i8XD+6``YKml`*2BAz)*JO~0QE z*|q7a#Ria$RV)7Q+3)ofsJpLg)kf98?n3H& ny06t=BDeXy?E86lW%n~mt>*usSiJfJsDSiz^>bP0l+XkKH+O`P literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-flm-eext.png b/themes/greydragon/css/framepacks/android/images/thumb-flm-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..45c38dc205385a112f0ad0dae2ede2b9dc9fd8c9 GIT binary patch literal 1796 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-flm.png b/themes/greydragon/css/framepacks/android/images/thumb-flm.png new file mode 100755 index 0000000000000000000000000000000000000000..a4074091383c7ec01300d49e4751e9ddb2263f08 GIT binary patch literal 1413 zcmeAS@N?(olHy`uVBq!ia0vp^uYh<32Q!eod8a~60+ z7BevL9ROj*tZSW|Ktah8*NBqf{Irtt#G+J&fW*wa5hJySii3(aez7#JAc z1AIbUfr10ehI<;z#V;Of<@KpKs_cI_Ha z1V}=pfDDLwpy0)e7cX791mObBfpZ~@H*emoS+{2Gy0vT9uU)r(-MS6y)^Aw9VdDlT zS0`szXJgF>wh=DQOv51w|!g6;(BL4Q*XLeFH-yV-r&|bBoycgrup{rp=f!bJl_d z3l}b0w0QB7B}A zSRWLp?QM(;XmN>OuB@kDuS4__xZwt0T9c#&!D?Rh3K^^G-ZZ#7?S zyBkrNyD|RNqn*nI9gMu+KKb%yi7JCs0>i9a$Bh>yOctkKe$kyNKVOxhMESi_-2ddi z6+2%X_jcj8c+lZcaP6*;poh;&+r2+NWpXJ99A^G7@pzQ_at4Qc{~2ulSC$IPJ$U)# z@XMpujrkekqMS?ex8BY-FR%YEady^Z@Ar52nrI%nd$)SOP3D;d4g=rCPjoK-K4P)O zSgdc6d9;l{YyO>iwq2{Yd<~FyHPzzK;$hJB>etHFJaF)8TExj^2KlyUgLF@}sl44& zkmbB-(u%N<23OJ0kih%p?>D^Ivx+H3Z);y7FGuwZW_=m2tD%A33)&WGty;0D3rJKi zoRp#!JJW<;2Q2VvcHqj7t5zKMUYjI0w(Q3KXtb+4VIxFbW>+58urJv=3zH;ULrPOFpi8^(ru6^$QmF+`E4tO8>aZ zv^r7v-lvc*=3gW&6 z4h`2@<*bk`VoFSQy8E~TPxmNJpKsc)b?jN`m&U!b#3~{i4twh#*cihdXfai^R8i~K zw*IG5hgYbtI(Vqr8koL5RbIT3Qp|tg(BAp6(ZTDsY$h9}o3!j# zyUVH9t6%24^O%_V=jz`X3@RK=j?6dKguPm*lkg^|TlTx1rNcY-O;yLD_PxKh`N^qT z?R4V@9Bi_T>}loO%VW=Zobzch-}X;i=Ir6c$F0kc|JIbbH{(XlY^KM*7ync`#xFl_ z@BGr(vLyv&4-?N%*!zJkXK~(XzV%D=`fBHGwhppTT4era?yk$foL=euKKA$B&AT7@ YCG`YmP1+YT7gPj#y85}Sb4q9e06o5QH~;_u literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-sqr-e.png b/themes/greydragon/css/framepacks/android/images/thumb-sqr-e.png new file mode 100755 index 0000000000000000000000000000000000000000..33bcd99cf4d46ed50f86b9c6ee963a06cf8f9d53 GIT binary patch literal 1579 zcmeAS@N?(olHy`uVBq!ia0vp^uNW8@**KViteD+D4S^I(x}&cn1H;CC?mvmFKt5-I zM`SSr1K$AR|DNig)We7;j%q!9Ja}7}_GuAWJGrQ2dHVSBL ze1K1gD^T$u1XHF=nL2gqj2Sa#&z^nZ!i96^&OylYU;t!azI^!#7+k%26-c9z*REXy ziU3K76p(T0(j|x%p!mg$7vWr>QE)EMY&aLlc=P7XnssZ|u3Niy{n~Zw*R9*IZvBS! z8#Zoma&>Zcb#``hcJ**|^K{G2&&@B)M^m|d$MzjNckJA?)7G}Q85q84B|(0{49qO7 zZ0wv|JiL7T0z$%~V&W2#QqnTA3W`d~DynMg8k$<#x_bHshDOFFre@|AmR7Ox2}x6@ zO`9=e=Bxz^7A{=0Xz}7DOO`BMx@_69;~xZEWVX>~U|>G&>Eakt zaqI2fw|T;rBJCglf2_E4>1v*R&Q8{r9sjc(JG>jXro^tCaKo~lpVL!XEmzq~@mumr z&*!R_|2;~sep9FxWPUQp%lX{qFNfRMr@g%jqIrXPdwD&&`@S z$9vMvU+$Yu^S>97+w}Qn_vh*P|GrIlvNqHuJNwuFx5wAV|2sYHQbpO<)T>EzrDs2? zDmBxaJjrR=^NU5=n?FTv^0l3O=xT}AZT8^DC;7I^ofW-Rw_J9b7V*33`#%$mtDZ#5bgI<<0rJ#S~7W0}gdBQ{I^uGGv+ z-wi(;Tj&(lSH7oY{pB?AA;P zU7je5N4MoYM_wMVX)pzFl>yR=z7;ZyyOuNFIT`-_$hX=2v-#rn z{2igT!`07Me!I-h+5?3t2VplI4?*S z1oQ>O-VfJ5My&6O7! zk78SD?(Ha98t2BNyDimp*NfTT3;EvMy>ehT17E&vL$bN!g2Gj$C0v4k1Ij-)E}kF5 zn{88U-rKABD)sV}In(5VxV~@N;pe>jl47iW*X~WfFWK#_FWoBnI6rem{pAU_zV1HX zy;R$MYsu%0bIz+6&-4+SrXu}L>{Y4M*N&~?ljn9f=a$dB5w!LCz3G3$it4xCty`SZgEZ`F7DZaX~rboKteS*xx+evl*+_qBsr*5=dqbp7t2Rod;* zoc&J)H?^0Ya1Y|&%4hF+SMT?xu=1w`u1B<9zFcv5;xy%z?)y96UETZh-tD(vcvI!% Va<9HAzXd9&Jzf1=);T3K0RT<3#XJB2 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-sqr-eext.png b/themes/greydragon/css/framepacks/android/images/thumb-sqr-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..c92463738945dc125df64a5b066ee09c142fd265 GIT binary patch literal 1916 zcmd5-eKga17+)t+LWx^R5~@)$dC5puvWe(-ux|I#MaaumUgkB6UQcOP4hebLC~v#N zCb@Z;a6(?94Kvk7$*{255ti4vzZuTGopb-c&pF?h=lMS0=lOg;&vSl1yc2LnQGSm+ z1OidCw?nuC&08BH*6MWcI8Gi^T%hALicPUeE&0(j#yq^#_ezU0vPX-BJ~d zv#x@H*Hv)C=krUbB@`-!Qc9tgQmN0WrO!*Bmpwm?JZ*!tv9Yy5+97T2Z3BY?gR#Ls zcveFF7nPoF+}mYbWGm!F?sP*7M{NFtH` z1ceMr5h%s8VyUDW$`?T(vit23*5|LW1^t2`b)@R1fw1Npd$P=&_4O^AvCF&e9-e?4 zb~=T*QhKs6v5K5b^-0#qGr8eGwqN`>+m^9SNT=%L`xrU6CNv`F#_sDp(YzV=by-31 zrCnfUHQTD9adU+B5vZZ5zbG+io(%0+fN5#Y4Qe*P=ecd>oG-;`A)jvKycjwZX`{!z zHaS1mZ0vx*KVUt3@8ajl!id;jq9>1IX$;&NHm@`(v; z3?iX7cNj+#Z>PLTYBa19Px30?D|h7z>Jf`cxQ52+x>4O=F>;6{6y~yM^!9e4NA1$^ z0$V#b6xT4IqWow$$8&jhdQzz6pa%OK(|0@Cja_#J7iJ!GHYMOuV+8kwehtn!)T$z- zFariuFM0QjcH#GB&$X&pI1`{nfR1y{;KLott|5_`w=n$LB4eSF&^vcp|C}Q7WSsV> zne*EY{a;OX`ln_TO{vC`2Ac4wkii(V(8Tx4tH=4x;y&|0U~IOcHpZi6fBZ3&&-q~{sCMx zhCdGw{F6A`j}h5Ll8bm1(tzbj(h@(`h|Qpuahvqu*uj)J6Vfz_2*{?d*6lXZR=b{ns<*&e(sGLTtT5q0HGjmt>2bFT_I-WblpXg za5XDEm{|UDBt&F@rjY3>CXqb3&VR;|1YCo+juB*Fm4>Fdgs=*H<2QchSkDJ+HZqhk z`m_>27omJwB<1+etkM#!y%nVMAc=d4_NK)O&4)AM%I_u8$9uw#=gbtYvb*xGe_<(r zl2G@kuakf zDf6%-W=A=*1Qj8Q7ZB&^JO+83|2~>6)6FVJAj;=Ivbeywres4UjgxbPgpSEES@^@^F4#469^KVkp8-T**4j&p?swb2vNGN5 zx>24-<5$CkN@%&~i+&NYw;jh2_qinSp=dq@!`Ij(f?eTa4N3v#>;w}a#I~3BHJmLS zyGpjZelEp`Et2OoDEOi-BG4~^@$bIK%k~$BmvBX<_i3D=ocg6{zxtg`$w|;x#Sc5a z3&n21k;ncD)YBBFd$=Pm+uGVz=qp##IBgSGEJmmr+}2p`hnHrF?rcP)9FM{5ILfIq z<7H1Uw1s^_`b*A(Jx4G01~}{V=1{F1Ie`kMq=yw6?Mrb(e9H*Yw=PZI=OdQ$N>h2G z;FoD!le0)nwCsBAFJ7z##?hG=1!-bY^n*GL-j7&MI|E6xx54H5%yV~ T)lb!x{Q2yW0D^k@(w)Bn4IQ2w literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-sqr-ext.png b/themes/greydragon/css/framepacks/android/images/thumb-sqr-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..3fdc3a3e2661daed34e8459935f6832ec75ff798 GIT binary patch literal 1900 zcmd5-`&Uv~6vi>LG<8bN7cC2WXb&q%1te#gplQ=J(H>Y1St+BHN}-lB=8UycDl-jD z1T#&&qJoc}2x>DqSealVzL0GB=s}{BREnj{MXFiT%pWk{T4$fV_u1z=dw=(bOWOhX zni$y{!C){GzpXd|45kNY*F1eF^E7?VUTB*`_S)_RgVkghe+)B#;`y;#iN|3u(|g*b z7u89d4<&7=_&wC1mdc6D}ZJIx7!Xh}Q155_~q|4-2A z^z7{H+}vCyliAkRCK8EsRy+&Hmq;WXvye)q(EgR}?CgXxkkuVQj;{v3n3hVzXUn3$S{?Iq!muHVrXze zW#6d2mtwk}$8ne3K6;k0+iLIxIwzG>2v-l=-$$KL4Y7Ed!WFE9Mv%~gIZze{U;hJ1 zo|t1B=y2fH7{8+@=2l)3HFtW$phLmQ3kSESX_W7}WU1gbpXI~H1u9d|HwnWPbK}ZrS zapHam=)0;edB`E)C602n48x&KS&%!@94*P9UYYP|1*T_4CuDVWi}NL;#TS{%cP-et#0$ht@ky&hSN@13 z3lvSXpxA*XCsaTy(ceiwb=U?@?&_YsO?jjzI*<%1n$(L>OBRpPYdu6j(G^h09cxm5 zb1cD=FA9p&-qaR@FQ}~g0H5X_*LW7nU=_e}DWLj&C#9K#*nCM1LP}GW#P)i1ExS%3 zcZCVG6rY}@%p{}p-*u+nu&`o{m|u>1n~$Ox0XmKpbBIW5exvCO_^e5N0oBTWWwHB; zGPkO03?8;t{3tSH7am2j1$&z1s8-KWH^Ak?o_^@%XSz3N=6e6Zr#<~rqMc!O5PGtZ z!2qmBvmOgL0Jz}r$luM(PW8`bKE|Mq4^(4i!TGiyc%>t#)=32&@;(05^z5vk2lliA zjz`t4*a-?xiC8ua?zpss&GZ6m20uv&^@985)4bT7a(A)3F}un4RRt?tb&d zH;N?Am$+A55&PJ}JbC#%om^L0$b$)(!nG~bz4?sW=M#$$)zwut%yy%)Io8|H#)z{e z8yW)IYl=kIZ21kUKD1rxa8Eg)YX$n;LdMDy@v6cpExCEXsC-HoF3W}X0JGRQacpuArvPBdIoUyeMFP`d6|oylCoGDdd9wWQ^7 zw!7Oa&OOMgRHQQ5x2${PLuV$HpgW(pwDb%%tir`#{pYBd`OfWZU&qv&>9-0*5#2Gc z=n#8hcwFOUxs>{NGe-Dpm$1+`rk{V4c4XpW0mvY`z1jbG^JX~y=}+={U-yOUY7a$b zK0!o#l9E|&OzRMa|4>AwSwA77nSEoz>?x~%7i!8tbyzYzp^`DtngM;|UjESfMi~{k zJ?Q+hy+m?L9C0c%qj}ODZ6;8&SqT%eMC7f--nSndk=e@8W>Iiu(j`?c*?t&1WhTAN b>S? literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-sqr.png b/themes/greydragon/css/framepacks/android/images/thumb-sqr.png new file mode 100755 index 0000000000000000000000000000000000000000..3a038b000a75245f1cf0485fadcaddb82b8607ee GIT binary patch literal 1544 zcmeAS@N?(olHy`uVBq!ia0vp^uRxfC8A#6d(yReeEa{HEjtmSN`?>!lvI6;>1s;*b z3=Dh+L6~vJ#O${~LCF%=h?3y^w370~qEv=}#LT=BJwMkFg)(D3Q$4c_&1<6=7#L#$ zd_r7-iU%Q>GG)rtsZ(dnm@#|y>eZ`28jZYm?HW)7 zNJ6B542XK5;Khp;R4NpbAblKxj@F7H*eOgTeEiE+O_M~u3Nuu-G+7RH>}^V zaf6eqle4R{vzxQ4hpU^XTW)@CeqlbE%I!P0@7TFx=dPU>c6LVs12?rK$S;_InT3^& zos)})mycgSNLW-%TtZSxT1HkuQAt@vRZU$(Q%hS{Pv5}M$k@cx%-q7#DmFeLY3j6T zGiJ=3wP3-*g^Ly~Uc6+C)Y{<3WS!guq!RVPmgKK1y~v$Eu^Dyp7`V~o6J&z;}?(BRkO zJJErD`vOzbqHX^PU#^)q=UMR)m7Pzz0&c9*kr!E*W7%)M|IfEHO-+&8>@U-IUoqM_ zMP>8Z{*>+YdqXQutP{77+5hveI=|<=DAz3;m;L`&@%`c7{WpW8*1x;wuX}ChM%{Jg z;g78}HB%}jb+;Q$)}NI7dZx&_WzM&3XGrmv?fROr?!q_czbc`Nn_WUDrD#U^hrU*2 zZkG)^Y+}}1`FrKGs?3}-XD;PFzH;!4mFLwyBZH6?0SoKy?>)TicBoOo?kjd}rbbKq ziy!nl_ip0a%9=G{Rlq{0RxZ(3n*+|CDSCbCj15?aQ?21D!?@O}omcdpHRf9L-)Wz^ ziR)|9;XK<76Ja`vOTSysV3(W8-o_=W6|&-f&7Q1RZ-a`Y){)3N6#lV%*7J$QpJHR>U_vMV)A-#NdS26`1BY}aWb>;ff zO{aF-X4!vleITbd<*N7cs@JDF^;p0jsFlnr*&?Rov@d5L_r=pa3y-c_<0hW`+3weY zd%nDT&L4QVHvPek^{p9mvSdpY7s>rMPJc~xSs`nzo#4PE!<&YE@kmb2HxxUlb; z8R1q-euox@m&M<{U;nRa``pL*nXBq=Pq_8>c70fOcwg4bhp{{3JkpG2>gafy$%wtm zjk|E?+Q)*|XWu+{lyW;Z?OTZK*6&YuOtrCimykU*CNXi{1n<@Sr`v;8Z;Cc`mA(AY zJ7=5hyk7agR$1$!`X^ts*!z;(ujJDi`T2X-c&%I~lc#EPE&aqiD~0)S0%h=F6We4$qusyfS@%=ew(We_p)3{9*n3n{sAMDi1P1rLd=~pUXO@geCyx C_`Guf literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-wd-e.png b/themes/greydragon/css/framepacks/android/images/thumb-wd-e.png new file mode 100755 index 0000000000000000000000000000000000000000..3e78ce823b0f7d26207dec4342ae5e92bd5db99c GIT binary patch literal 1428 zcmeAS@N?(olHy`uVBq!ia0vp^uYhhJySii3(aez7#J91 z0(?STfr10ehI<;z#V;Of<@KpKs_cI_Ha z1V}=pfDDLwpy0)e7cX791mObBfpdWd!?{4ln>TOPtXs2o-P*P5*RET?Zrz4;>o=_5 zuyKQvtCO>0s}X-B*-tAfrXWg zos)})mycgSP)Jx*Ok6@zN?Jx%K~YIrMO95*LsLszS5M!-(8$=t)Xdz%(keDSA!+Kg zX)|WboV8%V!i9?#End82$&#f@mn~bieEISfK(G=BRsq54AO9d=ssYz31_ovePZ!6K zid%2*zW2LrAj0~gIB$~JjBRxiHit~!{*_O2s%~yHE1leM%tTrB_~V}yU#@p87vHi!<^3;{9|4zFd0zIB z&g1&Q^ZScJ)|-1J9A6(=Uc8aG;_R%nBD3g-%m&64$5shOyt(6db@#?^o96jie_u8+ z_itL};fmQZ$NnE+`t-XhyIiYg#RFAxmhLkT zsvmo5k^Jz4)y>1q6DuFRdoeL~xo-Qf@U?D?Q@NNOy6NTnK-KnV85G{+kR;~QW7_y478?4~hrYlNLyn(l_?3s{tb%P2}k6a+v)vRqH zmsV+&r-n)hc!bnl_gRZFfUiN$zXJonJi|IaNJv|4JK(UP{^ z>HljVT)UeXc#Y%D=QB$W|K*rdzb5i-hjG`A8+RBE6o*$C9!$I1aJV@Cz(%X6Q*%x= z^-bg2CHm>rmyjvJs}G*hE|<*dc#$3%oc-EH%y{;dxaecwcdUD}%lF-i+7~|_-(LRt z=`L@-)B2|!PQ5-oKi7Og-@P}_wC4IS2(cVoz_{j`_18_h2|3xtzgkWnJ$GZS+qW+_ zI=*Kbd#&4>pPS8Z(d6iUpz&K?-Q-_#Ta5)Tns56l*mvyVMH}_qZhP#eM&$r#Gsp>9!PS0jn`iX7kChURVYktJ9q(!z#e1&(!O4z|pc2v3)z4*} HQ$iB}=GKZd literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-wd-eext.png b/themes/greydragon/css/framepacks/android/images/thumb-wd-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..c51abf31d358d35945fe9892ef40b8f245f07579 GIT binary patch literal 1720 zcmd5-i#Jqx9G}u_W*H&!Ozbd4290vPlE+}grST}D=VGmd8iQj~>#=RAoHJ$^Ya$Gj zorf8--l0-zsPSe;qRAqi@hVZCdzr1Xr@vr7=iKl8K0d$C_xru)ch0@;4Z12IG!ZZu zOabraOn|{QfRHcUCI{Jln8vljrZ5Lj2N;Z>@!isy%}@-Fb_=)!gCQH&o(;fe9~6|- zAmWY_eWF5%ac3@uz`W0dUm#*YobPTD7IOe|uswwn2uYvv_VC3)Q`CVOI-RtP->4Dzg*xue=C<9qp336n7DB01`(b?H43n87aAtd}Y zgdC|<%I2~;Tn?vMlH_WQ)s_L5R zn%bJ=_rg%<`-Tz;pbt!L)8;K(;RtyJq~dlZWffJmo$4BzTG~3h_4L0-85pAX>@_kr z!I+wv@5fpkIA{r2SqGmweU_S)MWf~Xe)n!cL1AH05re@fE-oo4VKSNbAe2J*0|M*Q ziVUM#6drU-j^mvjeB=8k1|}}N@!ydqsmO>V-|ilD#b$f^)vus%wpRIb*A2+(#>E!Fbw;MUXw~+s@RlK``$_gIGwEoOMSa-N zT?QwDxk#2y&U+!^#1k*#s&ub>9&{oPTQq(UCuB7yEiZj+t*s!` z<}RAbnT;9DnRG6DR+$(f0_u=KSs~MY{L4dxqC5*@6i3x#E538Niq~57i5zRjlK8$xq)1zhdgm4fmP`fq~Zq){c zTvGuzLKQL`9F9j9L)-_#a0%nD6t@ZF1_n{_5L`} z>v4{UkM^>~!;Q5R=f_-PxpiI(a(xO3D*BPE4tXnKbS2em zBQx9F(NrA}fYYNN;a@{@0V#gF1K`x{5frjnj-ZPKomk)dN9hA`3g4F6i4SQ^0u6KU zSkjl1edagO6cAXG{~QYB@X@0F^c@dpM5(@_F9M>fXToRL@b0~;S#gF>{%qV5%v%7; zh|0BvtP%ORu~o53c}yJjZdlu-__9Lt8+k7~8=*S-NrCZM2BlwMgKQm^r(g);rcxqNH^CP7lDAW@gJ_lK?MSYaccTRszwN{O>^j&J z%uzhCI9!!KIX?yfJu%H}La1W?%E0-p6&=~{Kh+F!QP><0HGfn@o@M#seh!~=$1smo z%BkzaaP*smGnaG{7=0bIx?LIi`F2y{-jf&8(rO$rkqunkh#^)itK@Cn#U*7e9p>%9 z{QFjij?tD=X9j0ym*W$#&H1+cqRhmkh4EOQh}a5Ar9uYBWSRZJe8p3AeP@1aLiN;46vt2M6liE`h>up>|$sa8J{zhZ;MshK0e+@hibmlsqPW}g1 CE)s44 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/android/images/thumb-wd-ext.png b/themes/greydragon/css/framepacks/android/images/thumb-wd-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..a5aa4b247bb11f0a0e92598565dd62b437612d5a GIT binary patch literal 1659 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 W%eXr0eB9GP1)Qg=pUXO@geCyjpKX`` literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/css/frame.css b/themes/greydragon/css/framepacks/book/css/frame.css new file mode 100755 index 0000000..73a0bbb --- /dev/null +++ b/themes/greydragon/css/framepacks/book/css/frame.css @@ -0,0 +1,64 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Book + */ + +#g-album-grid>li { padding: 10px 10px 10px 14px; } +.g-thumbslide { background: transparent; } +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { background-color: #FFF; border-color: #ADAEAD; color: #111; margin-left: 15px; } +.g-thumbcrop { border: #ADAEAD 1px solid; } +.g-album .g-thumbslide .g-description { background-image: none; } +.g-album .g-thumbslide .g-description .g-title { padding-left: 0; } +.g-expanded.g-album .g-thumbslide .g-description .g-title { padding-left: 0; } + +.g-item .g-context-menu { left: 200px; } +.g-item .g-context-menu:hover { left: 20px; } +.g-extended .g-item .g-context-menu { left: 304px; } +.g-extended .g-item .g-context-menu:hover { left: 20px; } + +.g-album.g-thumbtype-sqr { background: url('../images/a-thumb-sqr.png') no-repeat top left; } +.g-album.g-thumbtype-flm { background: url('../images/a-thumb-flm.png') no-repeat top left; } +.g-album.g-thumbtype-dgt { background: url('../images/a-thumb-dgt.png') no-repeat top left; } +.g-album.g-thumbtype-wd { background: url('../images/a-thumb-wd.png') no-repeat top left; } + +.g-extended .g-album.g-thumbtype-sqr { background-image: url('../images/a-thumb-sqr-ext.png'); } +.g-extended .g-album.g-thumbtype-flm { background-image: url('../images/a-thumb-flm-ext.png'); } +.g-extended .g-album.g-thumbtype-dgt { background-image: url('../images/a-thumb-dgt-ext.png'); } +.g-extended .g-album.g-thumbtype-wd { background-image: url('../images/a-thumb-wd-ext.png'); } + +.g-album.g-thumbtype-sqr.g-expanded { background-image: url('../images/a-thumb-sqr-e.png'); } +.g-album.g-thumbtype-flm.g-expanded { background-image: url('../images/a-thumb-flm-e.png'); } +.g-album.g-thumbtype-dgt.g-expanded { background-image: url('../images/a-thumb-dgt-e.png'); } +.g-album.g-thumbtype-wd.g-expanded { background-image: url('../images/a-thumb-wd-e.png'); } + +.g-extended .g-album.g-thumbtype-sqr.g-expanded { background-image: url('../images/a-thumb-sqr-eext.png'); } +.g-extended .g-album.g-thumbtype-flm.g-expanded { background-image: url('../images/a-thumb-flm-eext.png'); } +.g-extended .g-album.g-thumbtype-dgt.g-expanded { background-image: url('../images/a-thumb-dgt-eext.png'); } +.g-extended .g-album.g-thumbtype-wd.g-expanded { background-image: url('../images/a-thumb-wd-eext.png'); } + +.g-photo.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-photo.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-photo.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-photo.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } + +.g-extended .g-photo.g-thumbtype-sqr { background-image: url('../images/thumb-sqr-ext.png'); } +.g-extended .g-photo.g-thumbtype-flm { background-image: url('../images/thumb-flm-ext.png'); } +.g-extended .g-photo.g-thumbtype-dgt { background-image: url('../images/thumb-dgt-ext.png'); } +.g-extended .g-photo.g-thumbtype-wd { background-image: url('../images/thumb-wd-ext.png'); } + +.g-photo.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-e.png'); } +.g-photo.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-e.png'); } +.g-photo.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-e.png'); } +.g-photo.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-e.png'); } + +.g-extended .g-photo.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-eext.png'); } +.g-extended .g-photo.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-eext.png'); } +.g-extended .g-photo.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-eext.png'); } +.g-extended .g-photo.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-eext.png'); } + +.g-movie.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-movie.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-movie.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-movie.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } \ No newline at end of file diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-dgt-e.png b/themes/greydragon/css/framepacks/book/images/a-thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..486f50b4c250f402e2774a117367e1e50bc72e7d GIT binary patch literal 1130 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-dgt.png b/themes/greydragon/css/framepacks/book/images/a-thumb-dgt.png new file mode 100755 index 0000000000000000000000000000000000000000..458cc157b2e56ebbdd97f6e12cdafe7548d32fd5 GIT binary patch literal 1062 zcmeAS@N?(olHy`uVBq!ia0vp^?|^t02Q!eIr{DMyNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00kvWTq8TU<;s<7*REZ^ ze*MOc8#iy>ymjl={rmSHJb3Wv(W56%o;-c}^y9~mpFVy1_3PK~-@pI-`SbVhU!a-) z|NrkiP~{JFoOnr)UoZnR8@q_8n7Ed~) zof{Z_*+HOHd6t88OVd)Xz==_UB4^T`|Nn13HF@#|&Mz|Z7H4a|?|Z8Io#%I9xzXLT zMxK-0*4Q>!m3?-vx~y@3QPT1+e|F2gGe4@U7AtEq%jTL%prz8;U1g_Rb!|?WS$V(x zHSNu*bx^c#&)xb?p``N3)Ap~~w|3vU_wTY+$KKY}&zCRx{P)?nCvOd{p+u-JO3!}&9@UW0#|cS zy!q2_sk*s*H|I?4`DOn7%a01ooVzJ2dAobs{Ichpiwul^Z@aBt?2!6QYT8WYg}d$< z7jL?sdqO7meMePFS>LKDXG~Ym4%~P`Ch>01tPN$-M(h$Z1^<^v8%Za=O)@s_KGW!$ z7LjHak>>UWC}^F3Z%K;VmsNYd&z!HcIaJ4Jv(e`BkGjsBIK!j7`Teo%|J({|W*-J?*Tq`&_11Gl2e) zcDNB)%;=UDmbNb9JHw&6xw#uY&y1WYS;n>Eppo&Lwy+y>)i&H-7Lj5WmS%SCDy=S%~i8)l**>i$;lb^G47jlX}{Pkp;AuJ={0s^_g$_ag&%e;NrN?g!;j MPgg&ebxsLQ0PK$g9{>OV literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-flm-e.png b/themes/greydragon/css/framepacks/book/images/a-thumb-flm-e.png new file mode 100755 index 0000000000000000000000000000000000000000..7be7ffe421145abdb4b317a94d33dac4989e938e GIT binary patch literal 1105 zcmeAS@N?(olHy`uVBq!ia0vp^?|}FS2Q!dd&;Hf{NU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?FC^*_umuN0tF>YTq8TU<;s<7*REZ^ ze*MOc8#iy>ymjl={rmSHJb3Wv(W56%o;-c}^y9~mpFVy1_3PK~-@pI-`SbVhU!a-) z|NjpPh+zS`OspixFPMRiT|`t&TuWO=SI^VS+b6%Eu&DUo{>Ji23=GWdo-U3d6}R5b zjV-?vAmXxe64$|LVO`UHg}UT!o%-b2|Nj=6tq$*f!(#0;X5RdK%_jAlqV?gIcU;%E z3%uIU$Fn7U`+pbx?630!%NnwFU%yyrdnaeZ`tYr6{-!-s$~_*}?*6%Dme;CVFO;^e z)_s#CzWc^ey)yno@6?iJ-ne`0`1#N4KkIkz-n~g{>Dy=X^RDmuSy%i!xvVml)pK{c zdh@?q@BaS%_5M+~#&r4n`?S4tclTf3J5T>vcmC$n^Bt>q%}y^j+r6vmf8y6SS$yT$ z=8DCMhIeP3c_jaA#+ifNXS};#UP}?H7gSA|wr%!=$Sd!DzBI^IDOSuiS1Xp>^7hzF zOADWHTVwxYKMRFtIH6$YH^{EghX!|LXEq<+yjywmw-R9^alXr;_l>tt+!<9h z@us$MHlMgrbXuCR5&KL2;$QL(n{(U3)A-)ZY&|KXv+wHkAt~4Hh+kGT2ho zjGdqHr2zG(q=~|IY!_j-aal_Q`v~_2`ok?51dG9%fu(X*s z-;`{NoFDnM{Jnc*vbpoEJg2maTBoi7slwfYGqpFLIV0(?@J!C8jAMFb8@pq{N$Ib7 z*?Hl)YeizKgfoi@8)lhg-_QH6a`pApMc&IN9*eznE-(Maf_8nri%V@Ttq8t#^Q_dD y4VO;NyZDiD)!)4A-TME6_Bw}ee{UgILrcl$Szy1PB3*V0=_C_=q8qAfC~wRU2=F zDn-bMtfM|?l`y<%$J{v+bgBf zJQ1q7j72?c2f?+n*gZ0yI7cQwn16(pa!_vuI z|M@tb&Vqu1ii!%YR@>Cn)ZE;x)9LhjeMd(}S67$OXzcCn?d$6^nM^NUyfB;1{r&wG zi)CnN2*>f^;o*^y5rQBlCMITQXXobT91h3){5;6Hu&|(PFX94n3|U$-kG9Osdkvkj zIq-`hRy-#m@uc{aBwy-0B%AmIcv2W26PaGvZyVf~nU?Ck^gs|3-M2r%RAb&K>95!8S5?;H~ z*s!C*WWE2YTX4PZ<&$Zdda&bl_0#g#*`8e-^_QFZ8V>(nn(AJ<`iCC+M9$&UvFhL7 z9e7Ir3uNCWgemNY`&J#eYPE?+~Lq6TCUv>5T#o8`T zt^woaaWMSRclYWVy)98x5=1J>orthjbl5OPU2{!Uyk55pEBRCL^` z(WkK$`W`cP+)PCCc6j-5tEHnc5YLApREvo07!>uJmX*@|xFW)XN!Un3S$na)oePUM zG+A4MkzB5X7!1A!m(;dOXV$odYyIkF)7z1}DBjq1MO{xhcU)7W?@5E6e_I2T zE^iDcl)(o7aN-haIDZ51V<8+XZe_Bz=(yx6F*akwdB)bjH;n zA?9}}ecR3vJDEyYoVZ9Dfq&AGpANrS%!R_Q}FFHP(1+5UR5>04kwJD5|h*s zrOG$wg10ub{qpKe3Z%-&6og}$qN5ytHYnN&^%nV`e8Jw)fF~8>)w|Nc1?_SSlrG-X ztJFJH6s;Pko7bufCH0S;ZPNE&Pd;8(StmQv@U$}kh4;lak0>^&SPz~JPu~&}hgu%% zz01@4%YU^+Bgy>zJI!IvN=$_u4M=dmg*q*8+-GershC+ibu?N?{X^qplVj?l4t(=B DJuK`O literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-flm-ext.png b/themes/greydragon/css/framepacks/book/images/a-thumb-flm-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..a06d963dcc70c972bec556d9bc36183b36a85e1a GIT binary patch literal 1300 zcmb7Ee@q)y96y|>gRlW}t20)%L}#c_)IykTH=F|;g%xN^7*MDv8!1d+Ew;Gc#?&CN z6Iep)A_zw1#-JimEKnFlC6_{3LxiqCH*=)Wq2ot6MrbLe^<7c__mcPC_ul)y@8|RV ze!h3LY20^$0-g_mASfv5Ogs;Q{J?-7J+lYQdfSOhV0p6e)Y(%I^kYMyJKrC??=3r% zC551U!{qQg?$3V-Y#uI8I9JXuy-+UCmz;;v^2H_PbZ&y+h>Ssxp&yTBUCRYdb!jPr z1hD?!$K&zHWU`i)7PVTf(P(;md;9zQ2L=X4Mn((mDT%HreM4I^@s(H_l2?G5z}^>NhY%4Qb&d(Xz)+}hf` zrLYNJbu`8MTX+}dz$UOvG2J6THBR^uFe7yw1ra4UfW(dPb@OUdecTVkBj$)$Asszc94T=kSxUsbuMex#%TtO8qCg)ea#vB~C}F8uCs$0@af*qcbgdKV zC@LZd0b;)qir1&Ydu6c5oec+eP%B|#NMXPn3Nig;tHkH)`7n>JD-=hOcZbSX0h|$= z{+wFrrsA)6VR}AY7s%E+X)8XH--L8eX2YiiQM#pLTlL*vX2aD=rwq1^yR3@8z5;wT z^9@ltIiQorT>Li+J6AwL49}~7K7=PP=D`z_LfAM%=y8HNl?}6P*1=yILEt>nWT61f z7iH;~)>+Ys#m1AH0K;2tRXCJLsc8apOuk8}EHQOsqKYrf)@D!@LW$V_;FFcrIu|=@ zG5N=@Q1HkuoP5F3v40B%{l_e(RE~QJeFt87cRGM zloU#rC?(pNn)&;LH;%|(lZp&wN2UJ&G$Ez* zmp#;Aya&LA8|ARdLR14_;PXT(kW4|u@DX2$s(}1DXX4IPy&Q;8Isuow#B!0iSKp+d7-ym z2*)~H)UTZyr_KqkboubS+J1@%^e1ga4uk??n=DrE-G}Ca)T88wl7NEwwg9E64$`hj zkdK%Jt&xSQiSKWq9DCe=k^SNugX38?hI(OOvTh~ESTMRAK^`lYIDKt~4AjwP_^hU8 d^xD?G_nw=qd7=04ujC&oDS;dR!`ttE@;B8_p4tEa literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-flm.png b/themes/greydragon/css/framepacks/book/images/a-thumb-flm.png new file mode 100755 index 0000000000000000000000000000000000000000..b1ec950b2069c4ce0a9f3e1f2cecdd91f3ed5c35 GIT binary patch literal 1030 zcmeAS@N?(olHy`uVBq!ia0vp^?|^s(2Q!eoV5pP`q*&4&eH|GXHuiJ>Nn{1`ISV`@ ziy0XB_JJ_tE2oVIfP#`Gt`Q}{`DrEPiAAXl0g0J;C3=3YAqr*2dZv07=GG0dKtI@w_1g`>=7>GMBd+y181y87-N731c{ z#}>Bdv>l>$9ImbmPXFQJRz3Cj`qHWZ@p6;A=ect~{`J`;VtZ;$Z}gmH!AF<)`W3~z zmAJm+nCZI0-t0TmkN>?M=u}{S_tW;LPe1*B^=+HiRFk}qU(@EkmcMRpFP<*0nf3VI z-L>`Y_cv%_vZM(&AZ<79Y1{SR;c9)rU?>_i;hNZ%) z=-H8f&d-@0DQj+A+_@qzH!Uzc*L1VmyN?%BzD$_8wQzSD-=!TpXRcn+JNx^YSvx*Q zI=-4|4irdU+H>1*^NLlQUR_ID7jd~~lIhuw4Vi6bd3nzidT*N+tAuPfELK_*`*q&U z;%8fDGM_#(G4+`U$JN|3GMw4l4L6sSTBq@~yjpdB=JuJEQ+13tSEZeObnDECd6H?* zH2$W)vtw-WHIA??{xT=>#u>rF{j2}w9Wyg#pEgtZHRl4WytHQzzR#R`R;PA<_xqWV zX?!}y>euF29;`~s3@ts&Q_a*7vHR>Cpiz?o?k-FBYuO6)=5I;CduKW~l+Dg;v&gec zcMF-Gm3G5KSz*=fGc$A35{=niN^{fP&Yv+dUXvac9%^?sVWy?xwRLB6jCZGhGdXO# z`Rtp_w&jv$n?d;On|U`c^Y|OvoZSG_Jp1SWS&_2SbJO;lF3(9j=GSyXwm0IvvHSbk ziaF0t{JO;Qt+cFR=FF?c(>q=T?Pv7a0F<^h&bi;i@*3#)wzqTUC;T>EE%(r<_QRHy zB1;Pu)wf*R@pF!3Akgt{YhwRiUUqHAl*NY0nrKecXC_)Pn0 zX74@}ESE{0`BjtmUBag5E}hG9OApH08nahVUA}JHvD&|9c&aAU#jbt)W`_MG$xoiG SPI;!FJm~4_=d#Wzp$Pz-?(VVx literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-sqr-e.png b/themes/greydragon/css/framepacks/book/images/a-thumb-sqr-e.png new file mode 100755 index 0000000000000000000000000000000000000000..bf972a3f5a01789ba13ed8fe5228893353d0b76e GIT binary patch literal 1283 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-sqr.png b/themes/greydragon/css/framepacks/book/images/a-thumb-sqr.png new file mode 100755 index 0000000000000000000000000000000000000000..6eb7f262a1762032afba8a8deca8fee4521d12b2 GIT binary patch literal 1225 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-wd-ext.png b/themes/greydragon/css/framepacks/book/images/a-thumb-wd-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..7501df7ac25568b373d70b1b94045d6d781cdd5a GIT binary patch literal 1265 zcmbtU3sVzU7+pj`Xi{4LjXc$ z7=pIxoZ5m z#{c=)?RKeD+SJt4*4Eb5)z#hItyZfw8clzH|IpCT*x1rtc_4ReD)oQcZHa0c@ro-Vl*LO+?$oZopK?daE>9=#2 zKO;2k6=qU$N-B(;C^}hee-~Ze4MFbLl6di%rTV1@Z)N!w1)M1g!*@gyl%d0m7v)l+O4TlI?P%Q3Wkk7$DCJylXJVAd*=PvAfM0m%>5B2Oad=^5 zq;#K$DwuepdaONsx>sYr$I;dc`m)0-J)2hJh?yC!|AF3M)5F0Z%y?^OG+_<76>xYP zv-jEPhk{f|u5!D!)4<`BJ06ZQqm(7J>>N(^?Au`uf^Rzkh5fwpKZ+?bd=+YUo!NTr+zHmXJ4tw zorIcPB6`T6G-~-~$pecN#MJMW5wiu~dmKAOke3nL*XQXhcHBTUl5D~&LDm0Ykx5u- zR8|Xx5))N~Pm+Oon`nmHLTX;neXsyqyE2Ebod!t%?y|8j9LBVJ5x@(Vjm02f4r9kq z+pjXLpds3cZFak&CWA((3b2&bQe;YKhz9(6$T-;7Y?)G4BmBT}_o|vSy^End!tQ}$ z#|T_T=KxSAEf^aHu@nMh8AFz;QOi$%C!be!xeY9~Qer9#i1=q;0?*>F&qetr?j*f9;4dhg zYC#Tkgh-uwa2Nl|U>JKp095l(n+Jt1qA5tlRk91<(=Z&-IddUKbA5Em{jdEImF{#C zG`kFQ9J$2OU7)jcA!$^@?Ha0~4zD&NFPiYRa4m4?x`}15BxC@iDw_ccP(KNbI|?Le zpVyf!Rf=fcCkmJJ1Py$?%sP;45-t%MK0T05==p7HWROqVVzX(c<;z@+MNB6e_~!Nu zR2Wpz`Qv1Z>qu_`r`lU7ha-t=3q5S?&cPUj5o4DLx?@7wh?m5AweItdx;%F2p(J5) zHdn6?RYj&OJcIXGMR$FP=El{q#Bct9i^b*hTZlrRn15t!26c_&c}ZNObco; literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/a-thumb-wd.png b/themes/greydragon/css/framepacks/book/images/a-thumb-wd.png new file mode 100755 index 0000000000000000000000000000000000000000..df1164b247d6682367df3a3d6f6200101c2afa96 GIT binary patch literal 991 zcmeAS@N?(olHy`uVBq!ia0vp^?|^s`2Q!c?y}-5#NU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00kvWTq8TU<;s<7*REZ^ ze*MOc8#iy>ymjl={rmSHJb3Wv(W56%o;-c}^y9~mpFVy1_3PK~-@pI-`SbVhU!a-) z|NrkiP~{JFoOnr)UoZn3yNIZmxR$n#uAZltw@+SvL19txzoe2+G7Jn%6FprVLn>~) zoqIdzkb#J6VDu9$aYoiXjVl%;Tz>NZzi+$urDY{EF0$X+{Jri?@O7C@7IQ8w2}+b$ zc4X&-`6_u6PEGYKP)cN+T)g`1D($=o?`OA`P4m0!z1ZgEk^*UEVSyoQyY~9V5uw7}Yoj(C&9zy-EwWB0eE#H*XEHi>?ES`A zzWHWczyB?yQ+<>QuURX6xgmFK76!8*e^lv^giV@ynT=X<;VDXMKz>p8--e ze#XgbV$;(e?wB`IbjD1@YwJF!H_S_nGv};8g+w3%rj#s-ZjnC@b zIK#DQmx;04`JU9Y4f7&*t@@M6Hf<*Fky}e=W~O~RGbe3B`m&jpXCIg}r#%DWWixLY z7tcDF$+lb)?9BPs&s-|pc=k;FSx>XgZ8t<&zrM}c@ZUK5U53hyGg7a8g*R;940QR% zs%IQPi{CRyZP@#4Lsi;_T4SCFkd?hxjZgnE;I}&a__y)tV`t}OE^>XGG$->>!Cy;b zm(tktJR8gInmBKpX~=h->F`s}LP*5MJetS9eZJ53?f&+2qxG8;8I3JwiR4}ITUzSz ztLXPJ@8vF@55o2^-}~%W_uW4{f0`!e9fP?KCVX&N#p?6!tks><_RE4kOnH?yv;Gjz>gTe~DWM4f3xm&% literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-dgt-e.png b/themes/greydragon/css/framepacks/book/images/thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..2b9dc156300b71682e893ce92310318f762d14f5 GIT binary patch literal 619 zcmeAS@N?(olHy`uVBq!ia0vp^?|}Fk2Q!d-DCu_rNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?FC^*_umuN0tF>YTq8l= zd_r7-G=<>bzkmP#{}+|7^#B?qUJ~RN%)rJjA}S`XrLCi@=jr9`lb2smSXBHkspOLk z0|R5Br;B4q#jUqD4t6ygh_GJxo^?9s*?;?OS5w4TH(HgXED(6SbG3(n?LL)BE*&QX zC-2|#%cr+v$GPc;w-w(nKe5bVXVq`Z`2OEbvn}5|PFsEJ`_A6=S9?#FU(0)*wexsa zb<BVc$?0^FK=hIfEKaW_JWbpXWqeo_E&#vn?GBOU`9{v2}>f7H9Q|v11TwrPk z4=w*N?CQ~@wkqbK;t244S4RKoKBM=NVb$$l!<1&o>#O^BtZdA_zk4LNY1db? tW1TzJJOAV@pPbD1?B#xc&1nglO7={l$~)C2vG#x>+SAp~Wt~$(69B_g6tDmQ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-dgt-eext.png b/themes/greydragon/css/framepacks/book/images/thumb-dgt-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..9d5cbe1aa3d1c495fb8a2b8941c0398f4480887f GIT binary patch literal 802 zcmeAS@N?(olHy`uVBq!ia0y~yU<6?`4rZVT`;HeN36^w6Uq=Rpjs4tz5?O(K&H|6f zVg?4jy&%l!{(Hh&prB-lYeY$Kep*R+Vo@qXKw@TIiJqTph(ejMo~fRNxphM9zcV{OM?7@8Q9oGM8(9lv~_g#JiWYq^70D`i;Djxm3)$6 zU|`blba4!+xb^nV#jHaP0uC1?7k^p$|Nq8aH{Z^dlDc)occI#IJJ%+KcFB}x2}RFW zy6Nk_6zM9R`yPJyi(5|0-0G>b-##v@osh1JBC-4W{zRZRLSKrT5F1msD-~;W3d*6DI1awFJWTXocF~F;Pi0Xo|Nsh<;=(=xRV#g6u$61LI;b7Un5*EyNm&&9^|;Vlx&P zPW#w1n=eLpXDqw&NZHmR^N_((kMHqrD&U}=paixvEAsjB*Pm(@-$SH*Q^Fg NpPsIMF6*2UngI1O85RHl literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-dgt-ext.png b/themes/greydragon/css/framepacks/book/images/thumb-dgt-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..a1afba6e4b0088369f4411a20d77bdfe8a31a4a6 GIT binary patch literal 773 zcmeAS@N?(olHy`uVBq!ia0y~yU<6?{4rZVTgUDMOAjy*M=*YYRBuaw(f*IJ@MMTBKwX}6~^*lViynXWW3kr*h|3%3? z;9+23V)t}$45_&F_Rc}SLkbBi-K2x+ZPEXT#`#rwli<4a%lQ)Op zq$Srr9kRU})7$ax@x{U_#jp+Md@skoT54ZADNXMA#AkVTrhUKTzs!VhedNk5I?0wt zr(8L*_A(=5&=QYU5zU~j6Q)gU({$|$@s>UnF<}-^bgN$GuT5LFp79CJ`Z!TZ6s+#$ zH_y5AX8HS1Tz2J=va8k-kBMBGLCe+u)>U~eSMTl@Svf%oCc4C_3(V~b@qp>p3{rI6 zr5I$dpR1?*XM5*ScQiRL7hONp5{N4mfeu764rT{T4bV!E9Vlv`Tx`ZdJ%yo#NMnKC zv*XEZy%^QI0v;S$iINjN-dio@JPZq;m-DaAy(@n&|I~E;RX^W$e0co0a=P3etL`mj zeH-}L3tdk%X~+ESK(Y>Bc+aC+83 PP!jZX^>bP0l+XkK%xM!O literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-dgt.png b/themes/greydragon/css/framepacks/book/images/thumb-dgt.png new file mode 100755 index 0000000000000000000000000000000000000000..020ed3bbdd2ab2b81b81c5b9e5349a317490bf8c GIT binary patch literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^?|^t02Q!eIr{DMyNU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00kvWTq8BYkT|8HKJDc5wuXqVuN9p5hVaBaF{%q69$l%( z>eY2;m)g!Ogo6L)beqcxr_bESa~60+ z7BevL?FC^*_umuN0tF>YTq8+}rLn>~)y?fE`kby|ULq**j=0qd*J^v@qk|>d5(d$u*{`*heB7T;M`rgb? z&spW&hju?&cA-eeR?mM;b#Y$U!-C?!TfaugW+%P%d9`lm+m|(3>pm}itedy<;Ug&c z=hhxOm#KW`v7-?1S2%B#_p@)m)gC{ZcJi$6$vX?P!*}dxEwa7$0H$RCXt%tq)BnEL zO)e}fj1Aqf;~Gy47~H8p@YcSn@_oU|{=LWA9v_j)`<~l*r*_-jy!pq=HrB40?L9Ht zG`Vy|=hls9bGq)>Omq5KxVp2n{?dWkUy*YYRBuaw(f*IJ@MMTBKwX}6~^*lViynXWW3kr*h|3%3? z;9+2367+O&45_&F_Vz))LkeAiwE|@ilZR>Q{|3BnQ(!O&?^jbJP zgYqlO7WPHC@GKYq{qwy3g70@XU0=NWio0daeB?8K7!i!M!xssRbVeCBa^_EK#dm(*E7-Tfjf zCn&jUE%At-cje{E|6fEhy>#t@mN<2R#7nC#-Cw@Eq-xU-kBMBGFj0_dFxNx5=F1j0 z$%obcV)8({T)RR%CMt=-tab$(0apw$5zIwa1Ji=le6SaYG8WxxQjLXr7~Qp9A+INy ziQV1Wkp>TyUmlZP%Oxi+yYfgGqWWdB$)6ZGfAP|9Z|0}>Z{ELe-`nfwqoSQ|wHYa% zU9GW`ceCiSEqkYGZ)bS9x4XV4b;)-5YV+Mc9zXuG_iBBGr~fr^t$JmJ15kAy7mu{YVxN!5?j&19- zdgkQ)-8gAlkp0Y;-hUU|E^%dYl)gR1ZSVBVW9Q_~T}oCjoxkj^%S=C){ZpD-s^F_SH<#to9ZlJVPj;6mDtca;TFvzJv+$j` ST~REc==OB=b6Mw<&;$UN>Co^1 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-flm.png b/themes/greydragon/css/framepacks/book/images/thumb-flm.png new file mode 100755 index 0000000000000000000000000000000000000000..1709bbe8a6471c8692626839041b9725d19046c5 GIT binary patch literal 587 zcmeAS@N?(olHy`uVBq!ia0vp^?|^s(2Q!eoV5pP`q*&4&eH|GXHuiJ>Nn{1`ISV`@ ziy0XB_JJ_tE2oVIfP#`Gt`Q}{`DrEPiAAXl0g0J;C3=3YAqr*2dZv07=GG0dKtlxm_=KdG?)}!$+au zukgFH_U_&1`f@`bfq>qu=rGIT-_EiHg`c0aS*5?bU>Y5B$7iP;&}Fm+`=3wqy;nc$ z4YM8ytgF5r*4hmMzxj9kb=OZmzR~WTX{Lql>W5YF+g6pmdAaxbPP2CtuB=@$Bl=2k zXpro6mABV}&hQ4O2JN_97I|0Bu**KVitk8f+Zy?2z?&#~tz_78O`%fY(kk47* z5n0T@z_$m48K>?k@&pP>mbgZg1m~xflqVLYG6W=M=9TFAxrQi|8S9zqS(sZl!~zw0 z2l#}z0%^*@zkmP!|NkHH`}K05SrR2de!&cE>>{FK;#%4|x_Ta-Ufw==`2~eV#s8w@ z9`FEtw9M1RF{I+w+Z(a|%?1(;fhAKuK5cW}_V<5$R+7x(47Vhc#;SRzK7H)!9-82{ zHE*o&vO6;3;^O6h)s5Fx0~rud-g*0e)!!FiBIUoEWm~LY_Av0X`RBwnxwofRx9@no zCQsY-&YE4}ZlQ%=*Q6P{-YL-U=i(M!otb$_^ZU=`sjuIjUh@7@?e5S2c|J&jQi!Lk KpUXO@geCyqz!s+f literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-sqr-eext.png b/themes/greydragon/css/framepacks/book/images/thumb-sqr-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..48416c6c914558c6a8486e8f99b04241ccd645c5 GIT binary patch literal 902 zcmeAS@N?(olHy`uVBq!ia0y~yUZ(btiIVPik{pF~z5pR>Rt zvY3H^Z!ZWly8oWA7APoL;u=vBoS#-wo>-L15RjOeSEA?V8lq5UtY@lcVQ$?J3smGC z;1l8sq$vmg{{8#^|9`~q*UN!sNt6Wn1v9X*i-?MeYiaA~>Uns2dHdw$7Zes1|BI4) zz{9}6)Zyvk7*cWT?d^kkO%4JL4<(nrUHSh1I;P#WCYc+vxb@nZ?$-w%K3a3mB|N!B zW#!gA#s2=`%8PzimF(MlBWv#NWxKCO*Z)*IYja-t?BN}{@3-!sb;)9H`qE3AdY=ki zU!s;b*NVg>uwicTvpvfp|pjtrI!3~Dkj&ME^#x6lqL!z
    QrBX)H!C;BhTBW5FRq zl(D-!FL5p2Di!Fv@~AsFe6AicQd+*G^T-rf&|La^#rGZmeDkNr)Bo?WRQmI);@;BU z@brn-*3F;r%z1`QPxR|4*QWnFsNL}8=27`1xtE*P3-ay#@wmQn*HP;|OV)m6)D=^H Up(wn_6O;!$UHx3vIVCg!0GhEquK)l5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-sqr-ext.png b/themes/greydragon/css/framepacks/book/images/thumb-sqr-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..d7e2e530d199ac9fbc604ed06e01f4a6efdfaab0 GIT binary patch literal 864 zcmeAS@N?(olHy`uVBq!ia0y~yU<6@54rZXpWBF8DAjOjI=*YYRBuaw(f*IJ@MMTBKwX}6~^*lViynXWW3kr*h|3%3? z;9+23O7e7Z45_&F_O@Z(AqN46i;@MCw7&1x-c}y$;$^^iv|_u%x8J-9QeS2W#t8^c zT5|2vIosTIZbv?Reo^z;hyC>()4O}^j-A%ed{!x&DR(F*`u*c1ug70zPW3u%G|gMb z(>Hd$AIAhGSFI%;6IZovIb-6Z8MLHo+sZSnD>YraLTWuPPhYw=HEmWLWDkiTPqzF{yG11EQ<^RjUR<@BfOFUXdV4_N*K@jc|!H3J2^QE@@$Em=n z3ugR8E}#pbT#(UlLm)OmoQk9d`Ccu4TEHf&=`ks;|V_R2QTeS%0yhwEovVP4nyjem<`%d;2kA|MK=-U0e7b zi)PxjoOGV?b;hM%W_A_q6Y^sJXkMFWSN_cQ%cJw_KNWTJSLps`3glK^^Y*0P5m4&( MboFyt=akR{03HY{YybcN literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-sqr.png b/themes/greydragon/css/framepacks/book/images/thumb-sqr.png new file mode 100755 index 0000000000000000000000000000000000000000..95e58902ac8071877e0b82007e18d081a13574e2 GIT binary patch literal 648 zcmeAS@N?(olHy`uVBq!ia0vp^?|}Ff2Q!eIw6K#6NU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00kvWTq8~)z46xXkO4#6MNQot=ENrEcmKUirH)$(PnWR2Ry9w%!vELe%++2& z_wI_uAL88}=A5`}$BMLLdDj;o?)`cpZG~U9+E&Y}OYeLu+B@a?*S(+J^G-f|1P1>k z%eNlXUGaDy-wr6SKhJBL=Qx+o_sC!MJ2xJPh1}no9TRis&raPu$Dd)xj}Bt+ck8b_ zY4x# zuK|;<`Q3VUb%u0)>q3jmRe@*M%Gxrl{=Gg#ckh{Jb;aio`xo%uSfFNn{1`ISV`@ ziy0XB_JS~@`|k;Bfr64Ht`Q}{`DrEPiAAXl0g0J;C3=3YAqr*2dZv07=GG0dKtd)GYGV`v7>`s3cC0I~MSFn6%<1S=C=VwzvP4p7*NXTR&zW`*`u;hhKLM-GxkW*7Z_ zYDZSc-c?F@5>xJT8^4`)<<5q~wdS|~EX~=Ns}^!|^H;`gv+`HkOmX1=#j2;PpUXO@ GgeCyvHs{Cy literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-wd-eext.png b/themes/greydragon/css/framepacks/book/images/thumb-wd-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..ee89913b04c20d9b255dc52ead07e5c4af862fb8 GIT binary patch literal 727 zcmeAS@N?(olHy`uVBq!ia0y~yU<6`@Hyq4BQgF|`93aJ#?&#~tz_78O`%fY(kk47* z5n0T@z_%BK8Qp(RSPK-CEOCt}3C>R|DNig)We7;j%q!9Ja}7}_GuAWJvoN=Ahy^P0 z4)6(a1=5s*fB*jd|NlSY_v__Avm{D_{DK+S*hNIe#I>|_boD$uy}W($@(T)!ivLB) zJ>UWQ>ZYfQV@SoVw>KQ~nhgXTF3xP(w))=xb&PM`1+AE*l(abhzvQ>1|TH-O0OEYMRQ1);mNcZV6LfrMdMZQ2Ns3$!a{oRlAIoCeDKU^H%2JB-^{;sg+J= zE2=Wip1tgnf7NzLsf75Fepz5>GcVt=uh+khd&&B|KbqS-zsD>8dEIM2|7o=N`|`EF YnON^Dy)eI3*91ybp00i_>zopr09^I^b^rhX literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-wd-ext.png b/themes/greydragon/css/framepacks/book/images/thumb-wd-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..d303a1d6d740df345e00574eb1fe6761089825a9 GIT binary patch literal 695 zcmeAS@N?(olHy`uVBq!ia0y~yU<6`@GaSr7QcU1>6p&&`cl32+VA$Bt{U?zX$mcBZ zh%9Dc;M)hnjIW$F9smkTmbgZg1m~xflqVLYG6W=M=9TFAxrQi|8S9zqS(sZl!~zw0 z2l#}z0%^*@zkmP!|NkHH`}K05SrR2de!&cE>>{FK;#%4|x_Ta-Ufw==`2~eV#s8w@ z9`FEtwbRqZF{I+w+Z%8F4jC}CUDT9)!+bo2Z^wUaQx&GS0U>FRBF+`FzV)o%lR3?E z(!X`;y?G8&kHi8WzWemE^!K5!MwLq{1-Eu-T{`7B)o-iwrL6iJufNOsy|q)mI%9&8 zYnO;-&=QYUAo+JmZg5LW$wnuTkm6jKOpOVBt8Y)Kv|8k~uqYORi$5U8u%_Y$4hW*c2Bl@_M*m+g{oS_Vz@-xmP-z zvR)~}yrTG5{nEQTuQ$GRkG*w!!N1pKpI7g{dUbtWapvB-omZCRvTe1RJ}E6VL@<0= zXmeJqm*?jd0@Lr`Evl<6f7g-&k1u#dAGlxRF%{an^L HB{Ts5a1`*X literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/book/images/thumb-wd.png b/themes/greydragon/css/framepacks/book/images/thumb-wd.png new file mode 100755 index 0000000000000000000000000000000000000000..6d344c5ae8e553837366baadf0e598dd18e89fa7 GIT binary patch literal 575 zcmeAS@N?(olHy`uVBq!ia0vp^?|^s`2Q!c?y}-5#NU@|l`Z_W&Z0zU$lgJ9>a~60+ z7BevL?E_)PS56xb00kvWTq8~)z3ZLVY#`zgI4glkMNxj%`G4V2p=-I+0w)-0&L|FlpzNQ+|7VlW zr9Hnr_Ar{i-}-KPzsRynuT%57Gm4#WZhaYkEVTJmWr)U^)#eJW@?);9IZQUSX zt^2NOveEY~`kz?~&-3bm!Mpv1pN&%Us#hGEv~!`?%xcSPM;GmUw|fT-Kz{LOtGD{O z+Zn~h%^C9!96egP>d;XzkbStVe(pZ&|JRPy^6iRQe(7l_|9VN^>v`MXXFcL;?labW zmiG7IyY*`O`PJ9tKMy*?yZ2LF;*un-UR{$%>+b2!PFd|9vTVz5Caa%}YxNoCb$}wz M)78&qol`;+0C*ql*8l(j literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/css/frame.css b/themes/greydragon/css/framepacks/darkglass/css/frame.css new file mode 100755 index 0000000..30d5c9a --- /dev/null +++ b/themes/greydragon/css/framepacks/darkglass/css/frame.css @@ -0,0 +1,32 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - DarkGlass + */ + +#g-album-grid>li { padding: 10px 6px 10px 10px; } +.g-thumbslide { background: transparent; } + +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { border-color: #ADAEAD; } +.g-thumbcrop { border-width: 1px; border-style: solid; border-color: #7F7F7F; } + +.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } + +.g-extended .g-thumbtype-sqr { background-image: url('../images/thumb-sqr-ext.png'); } +.g-extended .g-thumbtype-flm { background-image: url('../images/thumb-flm-ext.png'); } +.g-extended .g-thumbtype-dgt { background-image: url('../images/thumb-dgt-ext.png'); } +.g-extended .g-thumbtype-wd { background-image: url('../images/thumb-wd-ext.png'); } + +.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-e.png'); } +.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-e.png'); } +.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-e.png'); } +.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-e.png'); } + +.g-extended .g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-eext.png'); } +.g-extended .g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-eext.png'); } +.g-extended .g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-eext.png'); } +.g-extended .g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-eext.png'); } diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-e.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..c96c40c71e0394b81f72ac2f6ea57cd97c79af46 GIT binary patch literal 1876 zcmdT^X;YI|6pkVSQGtk&O@oG|5Fmwwr45UOED*9m79gDgL`jf9fIvhrh)Wa_St7E8 zuvm$#5tw!|gpLcX0=5b^3W6wtqjjqcxKL0*w3pK9hyDYfnS1WJ=RW72?VVQ<$q3s7 zwSz(+kWG|uA`9#1x zjF-_Q1fv&d$!@;9$L8 z-{0Sl!{Im_4&dkK=lAyZf?GhYt*r$SfdVYR3xp$)NR^e9z#U`@^sun7#>U3JzP{n% zVFG~wj8dsoqtQ?(6e^Vp5*r&E171WTag_}05fKrfMkbRP6%_>{Mn^{jT5@u7Mn;BG zsRaD-@p16%DveI31A;&xC@CpvXlMX$f_m9(wooVpJpq-1=-{YOC@Lx{fD4Po0{r;+ z_=JQ6nM?+n0PM}p&8@AiNl8grSy?KTs->l+u&@wxqo}AT_l-;h#xNpbG1zO@8Lu}n zHG^*0xXIkY61LfD3w*1!jjf&iw(SUq9XpYZPR=f0xw@g;Jv`B0dwFB9KE8hb-+YS; z2n-6|wJRh9kH?3G5(q>RnH(0rQf35|Mh9iG*<3C+E+H{-FMvR>Z(nL^+6u(t?Cflb zL~;PMOeO;<6&1-9CyR@VOO?t~rvWOfR{%0r)c~mf4=|j60A{v=`ucj%p?`4(;QQ9j zj4hw4!KW#r5b>Pc`!nN%>2V}W<68$Cvb$uS+hlu@jYoFK*AVyA!yJzGGabFxc_0{a zEBW@g!RiX>h3P9!M!`qS8ZIwwsLp909i{bqbZAg69$=WCKYPK%f=fX>5_w3ICKPBi zgeXVkxnisANLyW-_Fj^(!koPS-6`}e4S!7|^rMgX&;@>*xd)X~qyU}O32$93eGX%o zYv9{zN4qB%xb|@F=DN1pn}Y%#1Mwi}gIxYX2zj{^_GV#V-oZetX**qS-S8~$-b7mO z`U}3PWqr6r-m7RxX zF(*~({}vrZ5>54_c8N=w2{VQYxAiuhNW3xpix{JVuC6-B`TB6>uZ?*U-Wz(XCY&T@yw#kiHu=k#1e?%(I=HI7*$o#CSJU302Ay z%-8EbU7COGah;}oZkR1|Uw-{KWkG&R!F5^~Q%;;6#x2cvbdSYhF837l26f<@O=6y3 z-f!T*x0b(Fy`7TxWQqQiqzdfYpqZfEo` zXD27@ix=~yIa4{)_a9(A6~`2)KL*YR3}Ws~B#L?tiA18=M=9K=L>hc5M%SpA7u8v)_m0 dB_%_sMU(gKrB^8-mR>8rcM6F?>~GelpyL1l literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-eext.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-dgt-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..0f871490e806723d029fd42ac6eee1fe590ffa9a GIT binary patch literal 2132 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 E3E_;)ApigX literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-e.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-e.png new file mode 100755 index 0000000000000000000000000000000000000000..f8e884122957a5d28af482e4984877e3f0b7f125 GIT binary patch literal 1814 zcmdT^`#02S7@u9aG!>>OYNKQ%?1V8x8kb=%hH)7)gQ<0yYDUo+w~<=1XB*4RvZi91 zTsM=!VA_L?PQ)p4jv6UxC|&lXWz(6GLJI9;?b#ppKj?GL`@GNlyr1WNZr}5jgoRMo zAvYrt2*f&C04W^yNmw_G^gt$GzO)mzRq@1NA_CDQU9-T|hx6*>08SbLVcfO6zVgs# z+JeziNRARRlla06ZYmEE#yuhsVnWEQZO5<}90q?^q~3=>e0?m8&LRW(i-VDo5#+3= zx7-zwCMG7JtVlyc!=SXfxl>2#1* zR#uUbkvtv`jYiwp*a!pyJ3Bi^N5_}Q6qQOvAQ04QwYRr-Yinyy zPmiakCyT`bepXgiXJ;qe0=cxb6e5BG7Vv^_WHPz9xES0aThOUgYE@NLcX#*T;Gn<1 zKNvGJGZhL2jYbO!3WCJ6S}k~yNTd}q*aHItp~leAPzHkm5hEfZfEFJgpOlm&l}dp> zGBN_suF!&mgMq;3^9u?JDk>`AO{ka2WF{meKu@4jhz>`IL{d~#1TNv>;lPiHiHVJk z6^TU91h6ZW%G%o6Lx&Efrl!i}@|v2O+}vE~MqXZCxEJdcjA2k19>V;3mA-+Y5pvDi zb;c&9sP!An%r|bbu-v@mo2^#X+qT>6utnSLwBP06==3dSx3h~Y)(wYu_t@jPm*C~? zV&-wZJzeuI0&jO0iEdvskp9hruA26GL03%yQd3iZB=wDO~y5Ug)n{8(BN6NlL-GMDZO|11Iic5_B>f!I^P3<~=m&g;wsN48A4p&b(eJ)>G5X=dp_h;ZL z#(6DSOCQSehKU*tA?IvK3Bedo?NByqTp8H1*{+Xo2Pzhl?ii|MkM7Cu-&E%DCJ)?h z=2)F<`r)Em+!e)4{;dKtmj^G$#@_7ysaNyy!}TUry;w~DK1}hnJK3}x>UaVb)n
    diff --git a/themes/greydragon/css/framepacks/panel/css/frame.css b/themes/greydragon/css/framepacks/panel/css/frame.css new file mode 100755 index 0000000..07a3048 --- /dev/null +++ b/themes/greydragon/css/framepacks/panel/css/frame.css @@ -0,0 +1,37 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Panel + */ + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1302px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in { min-width: 1546px; } + +.g-album .g-thumbslide, .g-thumbslide { border-width: 1px; border-style: solid; } +.g-thumbslide .g-description { margin: 0 0 0 1px; } +.g-thumbslide .g-metadata { margin-bottom: 3px; margin-left: 1px; } + +.g-extended #g-album-grid .g-item { min-width: 320px; } + +.g-item .g-context-menu { left: 188px; top: 12px; } +.g-item .g-context-menu:hover { left: 6px; top: 6px; } +.g-extended .g-item .g-context-menu { left: 288px; top: 12px; } +.g-extended .g-item .g-context-menu:hover { left: 6px; top: 6px; } + +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { border-color: #ADAEAD; } diff --git a/themes/greydragon/css/framepacks/roundcorners/css/frame.css b/themes/greydragon/css/framepacks/roundcorners/css/frame.css new file mode 100755 index 0000000..ffe7c13 --- /dev/null +++ b/themes/greydragon/css/framepacks/roundcorners/css/frame.css @@ -0,0 +1,44 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Round Corners + */ + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1278px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in { min-width: 1520px; } + +.g-thumbslide .g-description { margin: 0 0 0 0px; border-top-left-radius: 10px; border-top-right-radius: 10px; } +.g-thumbslide .g-description.g-overlay-bottom { border-top-left-radius: 0; border-top-right-radius: 0; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; bottom: -3px; } +.g-thumbslide .g-metadata { margin: 0 0 1px 0px; } + +.g-item .g-context-menu { left: 188px; top: 12px; } +.g-item .g-context-menu:hover { left: 6px; top: 6px; } +.g-extended .g-item .g-context-menu { left: 288px; top: 12px; } +.g-extended .g-item .g-context-menu:hover { left: 6px; top: 6px; } + +.g-default .g-thumbslide .g-description, +.g-expanded .g-thumbslide .g-description { border-color: #ADAEAD; color: #3c5580; } +.g-thumbslide .g-metadata { border-color: #ADAEAD; color: #3c5580; border-bottom-left-radius: 10px; border-bottom-right-radius: 10px; } +.g-thumbcrop { border-radius: 10px; box-shadow: 3px 3px 8px #333; } +.g-thumbslide { background-image: none; } +.g-thumbslide:hover .g-thumbcrop { box-shadow: 4px 4px 8px #333; } + +#g-photo .g-resize { border: none; background: transparent; } +#g-photo .g-resize a { border-radius: 10px; box-shadow: 3px 3px 8px #333; } \ No newline at end of file diff --git a/themes/greydragon/css/framepacks/simple/css/frame.css b/themes/greydragon/css/framepacks/simple/css/frame.css new file mode 100755 index 0000000..3a0539c --- /dev/null +++ b/themes/greydragon/css/framepacks/simple/css/frame.css @@ -0,0 +1,39 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Simple + */ + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1278px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-right #g-column-top, +body.g-extended.g-column-4.g-sidebar-right #g-column-bottom, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-column-top, +body.g-extended.g-column-4.g-sidebar-left #g-column-bottom { min-width: 1520px; } + +.g-thumbslide .g-description { margin: 0 0 0 1px; } +.g-thumbslide .g-metadata { margin: 0 0 1px 1px; } + +.g-item .g-context-menu { left: 188px; top: 12px; } +.g-item .g-context-menu:hover { left: 6px; top: 6px; } +.g-extended .g-item .g-context-menu { left: 288px; top: 12px; } +.g-extended .g-item .g-context-menu:hover { left: 6px; top: 6px; } + +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { border-color: #ADAEAD; } +.g-thumbcrop { border-width: 1px; border-style: solid; border-color: #ADAEAD; } diff --git a/themes/greydragon/css/framepacks/wall/css/frame.css b/themes/greydragon/css/framepacks/wall/css/frame.css new file mode 100755 index 0000000..1a74654 --- /dev/null +++ b/themes/greydragon/css/framepacks/wall/css/frame.css @@ -0,0 +1,48 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - Simple + */ + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1224px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in { min-width: 1470px; } + + +.g-thumbslide { padding-top: 0; padding-left: 0; width: 200px; min-height: auto; } +.g-extended .g-thumbslide { width: 300px; } + +.g-thumbtype-flm .g-thumbslide, .g-extended .g-thumbtype-flm .g-thumbslide, +.g-thumbtype-dgt .g-thumbslide, .g-extended .g-thumbtype-dgt .g-thumbslide, +.g-thumbtype-wd .g-thumbslide, .g-extended .g-thumbtype-wd .g-thumbslide, +.g-thumbtype-sqr .g-thumbslide, .g-extended .g-thumbtype-sqr .g-thumbslide { height: auto; } + +.g-item .g-context-menu { left: 184px; top: 2px; } +.g-extended .g-item .g-context-menu { left: 282px; top: 4px; } +.g-item .g-context-menu:hover, .g-extended .g-item .g-context-menu:hover { left: 0px; top: 0; } + +#g-album-grid .g-item { margin: 0; min-width: 200px; } +.g-extended #g-album-grid .g-item { min-width: 300px; } + +.g-album-grid-container .g-wall > li { width: auto; } + +.g-thumbslide .g-description { margin: 0 0 0 0; left: 0; top: 0; min-height: 2.4em; } +.g-thumbslide .g-metadata { margin: 0 0 0 0; left: 0; bottom: 0; min-height: 2.4em; } + +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description { border-color: #ADAEAD; border-top: none; } +.g-thumbcrop { border: none; } diff --git a/themes/greydragon/css/ipad.css b/themes/greydragon/css/ipad.css new file mode 100755 index 0000000..801356f --- /dev/null +++ b/themes/greydragon/css/ipad.css @@ -0,0 +1,20 @@ +/* Start Apple Styles */ +/* These styles support Apple products display of CSS. NOTES (orientation:landscape), (orientation:portrait) can also be used to be more specific */ +/* iPad [portrait + landscape] */ +@media only screen and (min-device-width:768px) and (max-device-width:1024px) +{ + #cboxOverlay { height: 200%; width: 200%; } + .g-bar#g-site-menu { width: 200%; } +} + +/* iPhone 4 [portrait + landscape] */ +@media only screen and (resolution:326dpi) { } + +/* screen and (resolution: 163dpi) */ +/* iPhone 3 [portrait + landscape] */ +@media only screen and (max-device-width:480px) { } + +/* iPod Touch and older [portrait + landscape] */ +@media only screen and (resolution:326dpi) { } + +/* End Apple Styles */ diff --git a/themes/greydragon/css/layout.css b/themes/greydragon/css/layout.css new file mode 100755 index 0000000..97fe65c --- /dev/null +++ b/themes/greydragon/css/layout.css @@ -0,0 +1,77 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules related to general layout + * Defined as 70em wide + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* layout.css - Common ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +html { overflow: auto; overflow: -moz-scrollbars-vertical; overflow-y: scroll; } +* { margin: 0px; } +body { min-width: 1020px; padding: 0; } +.g-hideitem { display: none; } + +/* layout.css - Header ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-header { position: relative; min-width: 1020px; z-index: 5; } + +/* layout.css - Main ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-main { min-width: 1020px; height: auto; bottom: auto; } +#g-main-in { min-width: 1020px; height: 100%; aoverflow: auto; bottom: auto; } + +#g-column-left { float: left; width: 230px; min-height: 32em; overflow: hidden; height: 100%; } +#g-column-right { float: right; width: 230px; min-height: 32em; overflow: hidden; height: 100%; } +#g-column-center { margin: 0 17em 0 17em; min-height: 32em; overflow: hidden; height: 100%; } +#g-column-centerleft { min-height: 32em; overflow: hidden; height: 100%; } +#g-column-centerright { min-height: 32em; overflow: hidden; height: 100%; } +#g-column-centerfull { position: relative; min-height: 31em; overflow: hidden; height: 100%; } +#g-column-top { display: block; overflow: hidden; } +#g-column-bottom { display: block; overflow: hidden; } + +/* layout.css - Footer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-footer { position: relative; height: auto; min-width: 1020px; min-height: 2.8em; clear: both; display: block; overflow: auto; } +#g-footer-leftside { float: left; display: inline; } +#g-footer-rightside { float: right; display: inline; } + +/* layout.css - Extended Layout ~~~~~~~~~~~~~~~~~~~~~~*/ + +/* layous.css - Extended Layout - 3 columns+sidebar ~~*/ +body.g-extended.g-column-3.g-sidebar-right #g-header, +body.g-extended.g-column-3.g-sidebar-right #g-footer, +body.g-extended.g-column-3.g-sidebar-right #g-main, +body.g-extended.g-column-3.g-sidebar-right #g-main-in, +body.g-extended.g-column-3.g-sidebar-right #g-column-top, +body.g-extended.g-column-3.g-sidebar-right #g-column-bottom, +body.g-extended.g-column-3.g-sidebar-left #g-header, +body.g-extended.g-column-3.g-sidebar-left #g-footer, +body.g-extended.g-column-3.g-sidebar-left #g-main, +body.g-extended.g-column-3.g-sidebar-left #g-main-in, +body.g-extended.g-column-3.g-sidebar-left #g-column-top, +body.g-extended.g-column-3.g-sidebar-left #g-column-bottom { min-width: 1250px; } + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1342px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-right #g-column-top, +body.g-extended.g-column-4.g-sidebar-right #g-column-bottom, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-column-top, +body.g-extended.g-column-4.g-sidebar-left #g-column-bottom { min-width: 1580px; } diff --git a/themes/greydragon/css/menus.css b/themes/greydragon/css/menus.css new file mode 100755 index 0000000..194e93c --- /dev/null +++ b/themes/greydragon/css/menus.css @@ -0,0 +1,58 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules related to menus + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* menus.css - Main menu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-site-menu { position: absolute; } +#g-site-menu.g-default { left: 21em; bottom: 0; } +#g-site-menu.g-top { left: 21em; top: 2px; } +#g-site-menu.g-bottom-right { bottom: 0; right: 2em; } +#g-site-menu.g-bar { left: 0; top: 0; width: 100%; padding-left: .5em; position: fixed !important; z-index: 9999; font-size: 0.9em; } + +#g-site-menu ul { float: left; width: 100%; white-space: nowrap; z-index: 102; } +#g-site-menu>ul>li>ul { margin-top: 1px; } + +#g-site-menu ul ul ul { padding-top: 0; } +#g-site-menu a { display: block; padding: 0.2em 0.4em; text-align: center; width: auto; letter-spacing: 0; cursor: pointer; z-index: 102; } +#g-site-menu li { float: left; padding: 0; background-color: transparent; border: transparent 1px solid; z-index: 102; } +#g-site-menu li ul a { text-align: left; padding: 0.3em 0; text-indent: 0.8em; letter-spacing: 0; } +#g-site-menu li ul a:hover { background-image: none; } +#g-site-menu li ul { position: absolute; margin: 0 0 0 -1px; width: 14em; height: auto; left: -999em; } + +#g-site-menu li li { width: 14em; padding-right: 0; } +#g-site-menu li ul a { width: 14em; } +#g-site-menu li ul ul { margin: -1.8em 0 0 14em; } +#g-site-menu li:hover ul ul, +#g-site-menu li:hover ul ul ul, +#g-site-menu li.iemhover ul ul, +#g-site-menu li.iemhover ul ul ul { left: -999em; } +#g-site-menu li:hover ul, +#g-site-menu li li:hover ul, +#g-site-menu li li li:hover ul, +#g-site-menu li.iemhover ul, +#g-site-menu li li.iemhover ul, +#g-site-menu li li li.iemhover ul { left: auto; } + +#g-site-menu>ul>li>ul { display: none; } + +/* menus.css - Context menu ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.g-item .g-context-menu { position: absolute; margin: 0; padding: 0; top: 20px; left: 198px; width: 14px; height: 14px; background-position: -178px -144px; z-index: 4; } +.g-item .g-context-menu li { width: 100%; padding: 0; margin: 0; text-indent: -9999px; } +.g-item .g-context-menu>li>a { font-size: 0em; display: none; } +.g-item .g-context-menu:hover { top: 4px; left: 16px; top: 16px; width: 200px; height: auto; z-index: 102; } + +.g-extended .g-item .g-context-menu { left: 300px; } +.g-extended .g-item .g-context-menu:hover { width: 300px; left: 16px; } +.g-item .g-context-menu ul { padding: 0; margin: 0; } +.g-item .g-context-menu li li { display: none; } +.g-item .g-context-menu li li a { display: block; padding: 4px 6px; } +.g-item .g-context-menu:hover li li { display: block; text-indent: 0px; } + +.g-item.g-detail .g-context-menu { left: auto; right: 6px; } +.g-item.g-detail .g-context-menu:hover { left: auto; right: 6px; } \ No newline at end of file diff --git a/themes/greydragon/css/modules.css b/themes/greydragon/css/modules.css new file mode 100755 index 0000000..ff155d2 --- /dev/null +++ b/themes/greydragon/css/modules.css @@ -0,0 +1,165 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules related to modules + */ + +/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* modules.css - ShadowBox Skin ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#sb-title { overflow: hidden; } +#sb-title-inner { font-size: 10pt; font-weight: bold; padding-left: 10px; } +#sb-nav #sb-nav-close { background-image: url('../images/close.png'); width: 60px; } +#sb-container > #sb-overlay { min-height: 530px; overflow: auto; } + +/* modules.css - FancyBox Skin ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#fancybox-outer { background: #555; } +#fancybox-content { border-color: #555; } +#fancybox-title-over { font-weight: bold; } +.fancybox-title-inside { background: transparent; font-weight: bold; color: #FFF; text-align: left; } +#fancybox-close { background: url(../images/close.png) 0 0 no-repeat; width: 60px; height: 16px; right: -6px; } +#fancybox-left-ico { background: url(../images/arrows_left.png) no-repeat left center; width: 35px; height: 107px; top: 40%; } +#fancybox-left:hover span { left: 10px; } +#fancybox-right-ico { background: url(../images/arrows_right.png) no-repeat left center; width: 35px; height: 107px; top: 40%; } +#fancybox-right:hover span { right: 10px; } + +/* modules.css - Exif Data ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-data td { padding: 0.2em; } +.g-thumbcrop a.g-meta-exif-link { position: absolute; left: 278px; bottom: 4px; z-index: 100; display: block; background: none center bottom no-repeat; width: 17px; height: 16px; } + +/* modules.css - Image Block ~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-image-block>div { margin-left: 1px; margin-right: 1px; } +.g-image-block { text-align: center; } +.g-image-block img { padding: 5px; max-width: 200px; height: auto; } + +/* modules.css - Image Block Ex ~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-rootpage #g-column-bottom #g-image-block-ex { display: none; } + +/* modules.css - RSS Feeds ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +ul#g-feeds { padding: 0; margin: 0; } + +/* modules.css - Tags ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-tag-cloud ul { padding: 0; font-size: 100%; } +#g-tag-cloud ul li { line-height: 1.2em; } +#g-tag-cloud ul li span { display: none; } + +#g-add-tag-form fieldset ul { float: left; display: inline-block; padding: 0; } +#g-add-tag-form li { float: left; margin: 0; padding: 0; } + +/* modules.css - Comments ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-comments { margin-top: 2em; float: left; width: 100%; min-height: 2em; } +#g-comments ul li { margin: 0.4em 0; } + +#g-comments .g-button { right: 0.4em; cursor: pointer; /* hand-shaped cursor */ cursor: hand; /* for IE 5.x */ font-size: 0.8em; color: #333 !important; padding: 2px 10px; margin-top: 0.4em; border: 1px solid; border-color: #999 #666 #666 #999; background-color: #ddd; font-weight: normal; } +.ui-icon-comment { background-position: -210px -144px; } + +#g-comment-detail ul { padding: 0; } +#g-comment-detail>ul>li { margin: 4px 0; padding: 6px; min-height: 40px; } +#g-comment-detail div { margin-top: 6px; padding-bottom: 8px; } +#g-comment-detail li.g-no-comments { display: none; } +#g-comment-detail p.g-no-comments { padding-bottom: 4px; } + +#g-comment-form fieldset { border: none; } +#g-comment-form legend { display: none; width: 100%; } +#g-comment-form ul { padding: 0; } +#g-comment-form>fieldset>ul { margin: 0px 10px; } +#g-comment-form label { display: block; } +#g-comment-form textarea { width: 99%; height: 140px; } +#g-comment-form input[type="text"], +#g-comment-form input[type="password"] { width: 99%; } + +#g-comments .g-author { height: 32px; line-height: 32px; } +#g-comments .g-avatar { height: 32px; margin-right: .4em; width: 32px; } + +/* modules.css - Gallery Stats ~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-gallerystats ul { padding: 0; font-size: x-small; } + +/* modules.css - Info ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-metadata ul { padding: 0; } +#g-metadata .g-description { margin-top: 0.4em; padding: 0.4em 0; } +#g-metadata strong.caption { display: none; } + +/* modules.css - Calendar ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-calendarview-link:hover { background-position: left bottom; } + +#g-view-calendar-form fieldset { border: none; } +#g-view-calendar-form ul { padding: 8px; } +#g-view-calendar-form li { padding-top: 8px; display: inline; padding-left: 10px; } +#g-view-calendar-form label { margin: 4px 0; } +#g-view-calendar-form select { margin: 4px 10px; } + +table.calendar { border-spacing: 1px; } +table.calendar td.title a { font-weight: bold; } + +/* modules.css - ClustrMaps ~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-clustrmaps .g-block-content { text-align: center; } + +/* modules.css - GPS Info ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-exif-gps-maps ul { padding-left: 0; } + +/* modules.css - Search ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-quick-search-form { position: absolute; top: 3em; right: 1em; background: none transparent; } +.viewmode-mini #g-quick-search-form { top: auto; right: auto; left: 1em; bottom: 2px; } +#g-quick-search-form label { display: none; } +#g-quick-search-form li { display: inline; float: left; padding: 0px; } + +#g-quick-search-form input[type="text"] { width: 150px; padding-top: 0.1em; padding-bottom: 0.1em; } +#g-quick-search-form input[type="submit"] { display: block; width: 23px; height: 23px; text-indent: -9999px; overflow: hidden; } + +/* modules.css - Basket ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-header #basket, #g-header a[href="/basket/view_Orders"] { display: none; } +#g-view-basket span.ui-icon { float: none; } + +#g-view-basket .ui-icon-plusthick { background-position: -32px -128px; } +#g-view-basket .ui-icon-clipboard { background-position: -160px -128px; } +#g-view-basket .ui-icon-trash { background-position: -176px -96px; } +#g-view-basket .ui-icon-cart { background-position: -48px -112px; } +#g-view-basket a.g-button { line-height: 2.2em; } +#g-column-centerfull>.g-block { margin-top: 3em; } +#g-column-centerfull>div>.basketbuttons>a.g-button>span { display: none; } + +/* modules.css - Register ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-welcome-message p { padding-bottom: 6px; } +#g-change-password-user-form { height: 100%; } + +/* modules.css - Localization ~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#l10n-client .labels { border-top: white 1px solid; height: 1.7em; } +#l10n-client h2 { padding-top: 0.4em; padding-bottom: 0.3em; } +#l10n-client .label.translation { margin-top: -0.4em; height: 1.7em; } +#l10n-client #l10n-client-toggler { line-height: 1.7em; height: 1.7em; } +#l10n-client .string-list li { font-size: 0.8em; line-height: 1.1em; } +#l10n-client #l10n-client-string-select { width: 24%; } +#l10n-client #l10n-client-string-select .string-list { border: 1px #ccc solid; } +#l10n-client #g-l10n-search-form ul { padding: 0; } +#l10n-client #l10n-client-string-editor { margin-left: 1em; } +#l10n-client-string-editor .source .source-text { margin: 0 0.4em 0 0; border: 1px #ccc solid; padding: 0.4em; line-height: 1em; } +#l10n-client-string-editor .translation { height: 19em; } +#l10n-client #l10n-edit-translation { width: 97%; height: 17em; border: 1px #ccc solid; font-family: monospace; padding: 0.4em; } + +/* modules.css - jcarousel ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +.jcarousel-skin-tango .jcarousel-container { padding-top: 0.5em; } + +/* modules.css - ThumbNav ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ + +#g-thumbnav-block-inline { margin-top: 26px; } +#g-thumbnav-block-inline h2 { display: none; } +#g-thumbnav-block .g-block-content, +#g-thumbnav-block-inline .g-block-content { width: 210px; margin-left: auto; margin-right: auto; } diff --git a/themes/greydragon/css/normalize.css b/themes/greydragon/css/normalize.css new file mode 100755 index 0000000..9776813 --- /dev/null +++ b/themes/greydragon/css/normalize.css @@ -0,0 +1,431 @@ +/*! normalize.css 2011-11-04T15:38 UTC - http://github.com/necolas/normalize.css */ + +/* ============================================================================= + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects block display not defined in IE6/7/8/9 & FF3 + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section { + display: block; +} + +/* + * Corrects inline-block display not defined in IE6/7/8/9 & FF3 + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* + * Prevents modern browsers from displaying 'audio' without controls + */ + +audio:not([controls]) { + display: none; +} + +/* + * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4 + * Known issue: no IE6 support + */ + +[hidden] { + display: none; +} + + +/* ============================================================================= + Base + ========================================================================== */ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units + * http://clagnut.com/blog/348/#c790 + * 2. Keeps page centred in all browsers regardless of content height + * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom + * www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/ + */ + +html { + font-size: 100%; /* 1 */ + overflow-y: scroll; /* 2 */ + -webkit-text-size-adjust: 100%; /* 3 */ + -ms-text-size-adjust: 100%; /* 3 */ +} + +/* + * Addresses margins handled incorrectly in IE6/7 + */ + +body { + margin: 0; +} + +/* + * Addresses font-family inconsistency between 'textarea' and other form elements. + */ + +body, +button, +input, +select, +textarea { + font-family: sans-serif; +} + + +/* ============================================================================= + Links + ========================================================================== */ + +/* + * Addresses outline displayed oddly in Chrome + */ + +a:focus { + outline: thin dotted; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:hover, +a:active { + outline: 0; +} + + +/* ============================================================================= + Typography + ========================================================================== */ + +/* + * Neutralise smaller font-size in 'section' and 'article' in FF4+, Chrome, S5 + */ + +h1 { + font-size: 2em; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/* + * Addresses style set to 'bolder' in FF3+, S4/5, Chrome +*/ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/* + * Addresses styling not present in S5, Chrome + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9 + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +pre, +code, +kbd, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/* + * Improves readability of pre-formatted text in all browsers + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * 1. Addresses CSS quotes not supported in IE6/7 + * 2. Addresses quote property not supported in S4 + */ + +/* 1 */ + +q { + quotes: none; +} + +/* 2 */ + +q:before, +q:after { + content: ''; + content: none; +} + +small { + font-size: 75%; +} + +/* + * Prevents sub and sup affecting line-height in all browsers + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + + +/* ============================================================================= + Lists + ========================================================================== */ + +ul, +ol { + margin-left: 0; + padding: 0 0 0 40px; +} + +dd { + margin: 0 0 0 40px; +} + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + + +/* ============================================================================= + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside 'a' element in IE6/7/8/9, FF3 + * 2. Improves image quality when scaled in IE7 + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/* + * Corrects overflow displayed oddly in IE9 + */ + +svg:not(:root) { + overflow: hidden; +} + + +/* ============================================================================= + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11 + */ + +figure { + margin: 0; +} + + +/* ============================================================================= + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7 + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9 + * 2. Corrects alignment displayed oddly in IE6/7 + */ + +legend { + border: 0; /* 1 */ + *margin-left: -7px; /* 2 */ +} + +/* + * 1. Corrects font size not being inherited in all browsers + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome + * 3. Improves appearance and consistency in all browsers + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/* + * Addresses FF3/4 setting line-height on 'input' using !important in the UA stylesheet + */ + +button, +input { + line-height: normal; /* 1 */ +} + +/* + * 1. Improves usability and consistency of cursor style between image-type 'input' and others + * 2. Corrects inability to style clickable 'input' types in iOS + * 3. Removes inner spacing in IE7 without affecting normal text inputs + * Known issue: inner spacing remains in IE6 + */ + +button, +input[type="button"], +input[type="reset"], +input[type="submit"] { + cursor: pointer; /* 1 */ + -webkit-appearance: button; /* 2 */ + *overflow: visible; /* 3 */ +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9 + * 2. Removes excess padding in IE8/9 + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ +} + +/* + * 1. Addresses appearance set to searchfield in S5, Chrome + * 2. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof) + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/* + * Removes inner padding that is displayed in S5, Chrome on OS X + */ + +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+ + * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/ + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9 + * 2. Improves readability and alignment in all browsers + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + + +/* ============================================================================= + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/themes/greydragon/css/rtl.css b/themes/greydragon/css/rtl.css new file mode 100755 index 0000000..1d74d90 --- /dev/null +++ b/themes/greydragon/css/rtl.css @@ -0,0 +1,47 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules related to general layout + * Defined as 70em wide + */ + +.rtl { direction: rtl; } + +.rtl #g-header, .rtl #g-main, .rtl #g-sidebar, .rtl #g-footer, +.rtl caption, .rtl th, .rtl #g-dialog, +.rtl .g-context-menu li a, .rtl #g-site-menu a, +.rtl .g-metadata li, .rtl DIV.g-resize .g-description, +.rtl .g-message-box li, .rtl #g-site-status li { text-align: right; } + +.rtl .g-text-right { text-align: left; } + +.rtl #g-site-menu li:hover ul ul, +.rtl #g-site-menu li:hover ul ul ul, +.rtl #g-site-menu li.iemhover ul ul, +.rtl #g-site-menu li.iemhover ul ul ul { left: 999em; } + +.rtl .g-left, .rtl .g-inline li, .rtl .g-breadcrumbs li, .rtl .g-paginator li, +.rtl .g-navigation li .rtl .g-buttonset li, .rtl .ui-icon-left .ui-icon, +.rtl .g-metadata li, +.rtl #g-column-bottom .g-block, +.rtl .g-short-form li, .rtl form ul ul li, .rtl input[type="submit"], +.rtl input[type="reset"], .rtl input.checkbox, .rtl input[type=checkbox], +.rtl input.radio, .rtl input[type=radio] { float: right; } + +.rtl .g-paginator .g-navigation { text-align: left; } + +.rtl #g-column-centerfull #g-album-header h1 { padding-right: 12em; } +.rtl .g-buttonset .g-menu-link { text-indent: 9999px; } + +.rtl .g-thumbslide { padding-left: 0; padding-right: 6px; } +.rtl .g-thumbslide .g-description { padding-left: 10px; } + +.rtl .ui-icon-first { background-position: -210px -178px; } +.rtl .ui-icon-first-d { background-position: -210px -162px; } +.rtl .ui-icon-prev { background-position: -194px -178px; } +.rtl .ui-icon-prev-d { background-position: -194px -162px; } +.rtl .ui-icon-next { background-position: -178px -178px; } +.rtl .ui-icon-next-d { background-position: -178px -162px; } +.rtl .ui-icon-last { background-position: -162px -178px; } +.rtl .ui-icon-last-d { background-position: -162px -162px; } diff --git a/themes/greydragon/css/screen.css b/themes/greydragon/css/screen.css new file mode 100755 index 0000000..d820ad5 --- /dev/null +++ b/themes/greydragon/css/screen.css @@ -0,0 +1,17 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2011 Serguei Dosyukov + * + * CSS rules - Kitchen sync + * + * Color rules for font/background/lines can be found in dedicated colorpack files + */ + +@import "normalize.css"; +@import "layout.css"; +@import "menus.css"; +@import "modules.css"; +@import "forms.css"; +@import "base.css"; +@import "ipad.css"; +@import "rtl.css"; diff --git a/themes/greydragon/helpers/exif_event.php b/themes/greydragon/helpers/exif_event.php new file mode 100755 index 0000000..02536ff --- /dev/null +++ b/themes/greydragon/helpers/exif_event.php @@ -0,0 +1,45 @@ + +is_album()) { + exif::extract($item); + } + } + + static function item_deleted($item) { + db::build() + ->delete("exif_records") + ->where("item_id", "=", $item->id) + ->execute(); + } + + static function photo_menu($menu, $theme) { + $item = $theme->item(); + $menu->append( + Menu::factory("link") + ->id("exifdata-link") + ->label(t("Photo Details")) + ->url(url::site("exif/show/$item->id")) + ->css_id("g-exifdata-link") + ->css_class("g-dialog-link")); + } +} +?> diff --git a/themes/greydragon/helpers/greydragon_event.php b/themes/greydragon/helpers/greydragon_event.php new file mode 100755 index 0000000..8761b1a --- /dev/null +++ b/themes/greydragon/helpers/greydragon_event.php @@ -0,0 +1,92 @@ + +get("add_menu"); + if (!empty($submenu)) { + $item = $submenu->get("add_photos_item"); + if (!empty($item)) { $item->css_class("ui-icon-plus"); } + + $item = $submenu->get("add_album_item"); + if (!empty($item)) { $item->css_class("ui-icon-note"); } + } + + $submenu = $menu->get("options_menu"); + if (!empty($submenu)) { + $item = $submenu->get("edit_item"); + if (!empty($item)) { $item->css_class("ui-icon-pencil"); } + + $item = $submenu->get("edit_permissions"); + if (!empty($item)) { $item->css_class("ui-icon-key"); } + } + } + + static function read_session_cmdparam($cmd, $cookie, $default) { + try { + $_cmd = $_GET[$cmd]; + } catch (Exception $e) { + }; + + if (isset($_cmd)): + $_var = strtolower($_cmd); + $_from_cmd = TRUE; + if ($_var == "default"): + $_var = $default; + endif; + else: + $_from_cmd = FALSE; + if ($cookie): + try { + $_var = $_COOKIE[$cookie]; + } catch (Exception $e) { + }; + endif; + endif; + + if (!isset($_var)): + $_var = $default; + endif; + + return $_var; + } + + static function add_path($path) { + $config = Kohana_Config::instance(); + $kohana_modules = $config->get("core.modules"); + array_unshift($kohana_modules, THEMEPATH . $path); + $config->set("core.modules", $kohana_modules); + Kohana::include_paths(true); + } + + static function add_path_ex($setting, $cmd, $cookie, $path, $default) { + $value = module::get_var("th_greydragon", $setting, $default); + $value = self::read_session_cmdparam($cmd, $cookie, $value); + + self::add_path("greydragon/css/" . $path . "/" . $value); + } + + static function gallery_ready() { + self::add_path_ex("frame_pack", "framepack", "gd_framepack", "framepacks", "greydragon"); + self::add_path_ex("color_pack", "colorpack", "gd_colorpack", "colorpacks", "greydragon"); + self::add_path("custom"); + } +} +?> \ No newline at end of file diff --git a/themes/greydragon/helpers/greydragon_installer.php b/themes/greydragon/helpers/greydragon_installer.php new file mode 100755 index 0000000..4f19787 --- /dev/null +++ b/themes/greydragon/helpers/greydragon_installer.php @@ -0,0 +1,30 @@ + + \ No newline at end of file diff --git a/themes/greydragon/images/apple-touch-icon.png b/themes/greydragon/images/apple-touch-icon.png new file mode 100755 index 0000000000000000000000000000000000000000..5017ea4af778ea053c09f6cf98cf280e40aa8243 GIT binary patch literal 9420 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/avatar.jpg b/themes/greydragon/images/avatar.jpg new file mode 100755 index 0000000000000000000000000000000000000000..71166cc42e6ea4a50267bc949ee3bb7efc820c5e GIT binary patch literal 1442 zcmex=kx|JhscGpMnOVgprDf$6 zl~v6xt!?ccon4bAPnkMx`iz;g7A;<~blLJ1D_3pWyk+aQ?K^hvI&}ER(PPI?oIG{u z@|COCuHU$M>*1rvPo6$|{^I4UkDoq&`TFhqkDtFl{$gZch6fo|e+dHp#l*tG%)$=x z7b88f2KE_o z9%~}YXK;@p{B?_ghnW!=dCYA@qsIqS2QR&ml z6IRM(ym@!LVZ|!R8IvzCcz#(o>)MIETX(;eH{H9t#QrEt`mgJ||L}jfQeJg!<;wFi zdAn*SIZFw6bLQQ*zLG4j<=XQkVV;HM0{;2WK7@DbzS+M;{bDJ{T63c<{rO6}rb?zw zV*dT(0{_oU6>rHm$9Dc_*d%zRt~Y*pyJzS0%qAPT9S;1ql`_xoU)vY`a&+g~P&Y3AFzAtxM;pLy}X@VF{l<;ey7GgY=5F0A({v%SIhCotA-VbbZ; zg5T^XC6WqnM*6SM(qP_m>C4|=aWj6`{hOO~Kla*1nSWc~&1YHKb^6G5tI{L$LaNrz z^a$LbJn0?VeW^MB86*Jj^^FQSz)rF`YR6+?uMY@Nam%=G87um6$# zu>WY(vX#s39$)Ui{I+vxe(AT<6F$^T^q3?pl;ExQm4$cpmgbX38EWNjMJT^x>~}n8 zyKn#Xr8ToZu8YY3e($`juy?;fOy1*Z zw|gGX`}6g0<@&BY$saBsmC9SaGWP89JMp*9mfIfKyDe;v#FMFWeO56}GHPu4^MH?m zrO`p&Bs;3^ta@PW{-SebFaKUq{}mW}yz|Sqc86%VAK4GdN+0;;`n|Iz{=sc|0n@d;o1?RK{hP@8bcxul+$o8?d%kix&;2cOs7v{U)P=Xm1QJ=KfR%`aTq?af%!U=#d!dgni$*Z&!K z|3sL~m#onHenjx4cu}Uo%U$257S literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/blue-grad.png b/themes/greydragon/images/blue-grad.png new file mode 100755 index 0000000000000000000000000000000000000000..868a657cca2e16c23e59c0b5050d49c817c9cff3 GIT binary patch literal 337 zcmeAS@N?(olHy`uVBq!ia0vp^tUxT!!3-oN{(RR0Qq09po*^6@9Je3(KLB!L1AIbU z-~agk4v4=0d;9I*n{R(#fBp0F%kNiT{=E47>-nc&&p!Tq`r*gp_un7A`}Xkd*9ULD z+f| zw`*NMi#Q8BB8wRqxP?HN@zUM8KR`jz64!_l=c3falFa-(g^SG zFdW$M@ZGxq^F7_T_dB#G32pRnQ45;b?KEYP(AEqWZL5pjjy*|2nDSr z1<%~X^wgl##FWaylc_d9MOL0Jjv*Ddl1k3aJ<`B3Ln45YTUl8-&W@Q`+4B|WrDSr z1<%~X^wgl##FWaylc_d9MYf(Ujv*Ddl6qdpoNr)>`1k*R|C#h82i6y#Bx=~&{;RB1 zKk>gk{-1o?zxohU`MZ1SMP`4WKkZ?sTs#9K8^fQ=ep~#F0-b>dF?hQAxvXra@ocD)4hB}-f* zN`mv#O3D+9QW+dm@{>{(JaZG%Q-e|yQz{EjrrH1%H3s;Exc(n#urXyR3(zrIB|(0{ z49sktf^te)y2h3+9-&dOX+`CY9TO%`o4IJ|s@2-2W!cm@VW zW=|K#5RLOkC&fk|R^Vwhb~Q`M=)LRmTH^50{y+caGnjIhhueL2I`7KQUXgi%`M`e7 zo%ajh)ZZv54t!f?n08rl*0IPVer=m)UkokZ6I^h(U-!1t$_c@G0iGc`5vMwh8Yai6 zgzLtO-1%^O*HgvQoh!rp7X4A;Z*c9C)|ujW?JJ6=mowip5roe zIk#Sa&7o&?8q3$k%Xey499y;1*#FG$)0!f4zXw`G_fJr&yNn{1`T?2eVT!WkTr!?&^Y1$v$bU3)_cyQn8;92KVmR%~@c&)W>f9tIM(?IBO z>)vbAHeOn`?C|!D$G7i2J?-SRWhbv~KY4EZ$xGW$UR$uOAQEUGXMsm#F#`kNVGw3K zp1&dmC@5Lt8c`CQpH@L&ZCWNx zGxted(ER#$isbZTELLr{Gh`;dx$w>LzPG$h(aYj*XN$J`r>;4Zvw>6Ql$Cw$U%L}u p_ob@+p0?B>HSfmBFURXYFiNK=n!R29=seKn44$rjF6*2UngBBZs^b6v literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/gallery.png b/themes/greydragon/images/gallery.png new file mode 100755 index 0000000000000000000000000000000000000000..038b18a63e5071df11bce2df82a35ebde3db9bd2 GIT binary patch literal 627 zcmV-(0*w8MP)PXOF>Y zkilw^!fcbnZ-EvCx~f(Ve!^p|#JXw8)^g(W1E0 zr@Pauywa(?)vmwQvAxf)z}2d)4<5o#LCje z&)dz>*UQu0&D7n{*51_C*wxqB*4WzD+1u6H-`U#S+S}dR+}_;W-rnBc+1%jU-QnBb z;oaZi-{9im;o{-q;^N}t{{H`zTcL*l000SaNLh0L01mxQ(tAV+mxEK%!%Q`}gfXPN6bif3lVhl*);o;6IB8CFIynMVo{4!QBBOsPW zV7h_?JuQ)S21YScKHC4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/ico-denied-inactive.png b/themes/greydragon/images/ico-denied-inactive.png new file mode 100755 index 0000000000000000000000000000000000000000..56db3ff52bf02036d2a057f802d813be2bdadfd1 GIT binary patch literal 604 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJOS+@4BLl;Sc z?%liZ-@kwN?%nR)yLax~xo6Lw{rmUdzkh%4-o59}ox64G){`es-n@Bp>eQ(V7cT7D zwd>KNM+XlcJb(WD>C>lQzI^%M!GnGK_FcJh<@xjHuU@^ndiCn1OP7uvJ9gyAk)ubC z{s)5-xzAdGPBkqF@(YHDkVZ1pY`p*sIYuT=7srr_TS*3v%nXc27?dnpC3tyzzqmT) zG%zr6elULZlH=8<;(|^FO9n<3kq71p52vJ0PrmqIYLclTBZmT;u%BC*AERw zny#U614EL*#bBYy!k5??BYh?1zygVrradz=NH8%lm~b_CvI$t9a%CD@vVlR6$OHp0 zKT#}i2E$~A*_;jxhBG9JxIaosGA*1a$jlEBF<7z5ppfBiYDUHhy>p370uDTCi(-6q z*xcOO4joz(Q`4jdbYF?Y?kN*H>=p|$PdJ~G1XQH3eDf)fPp@9C^ltb8Qt)k#LjMjU mY3X*R4ql)UFYd8(7%<$HP*$`v(60vuCxfS}pUXO@geCwkh%LC`Z}YW#OXu92BcJ7CPPf%wy1VUeb+tdD1LyPM^Eq(%a86ZDc1C1GYyzK-g^!R5CKUhrvxSAM}yA(1{4{Sm@?TT(|yU5xho@UkAC89;S$fg|$tQu$7Op}OX z_cpQM_keP$wazYUck)<)g&EI;KJd%p&}mG)QXECR25rE)>QZzQ(}qP}iwi~F z5}|Fde}UV)CV>27s8fYHxsX%9^Pvd7y1cf$;2!LrV%6Cs67QrQS1AY#@yKC(NN(4T z_%OuX*X!4-J-V^k*7~(}fmICKJ7GtUY!+&8uNaqjpPgJ5F6KIUY!{#H9{S=R=_gi< zK4piK-{x*_o8x>mwl!JA!g;7+S%&XH_VBs9Qk@z_`4KY1kf_2lP zcS5tIfbl+=SpYe-qr}p@S;X;Kt;E#0&tkENMOJR>nzGlc`a*m~TreM3DopH8M8E6@ zr)gctaq(DxHtQ*@R+7(qUY?ts_s{vS2BMW zB*!!a1;1=gJ~+IOyJLIWO&X(dLtki1NjM%maPBp|y8gzNaLS9~x=`%H7TwTW$~I|y zm8FC4}Mrzlg<+1Y8PEBfUp0jJpx4B>@E+cy3`^(Gw`Mf+2&yxZm<$to~Vpgvg&QKNR z_f#1(r6svZt%iF?s+n<8X?B&!h3g9Dbb8_=MX}!;HiQSAh`bp^WMl~Z-44teO7W_Y zV4thSL{h;rJY7!l3%5J4H1!tIzB`Dv+YxO(haWeausGZYkI8^hWj6mzo=L0{%;yxzh{5!Htr?51 zvG|W62MzC8BZ76hRpCyO2zOn<%e)K>NHge!-~)Ap33OdWw6hsLYbCxGNt0%wk_2z7 zfyYvXheSG)5HRK1VB~%mq7Dmurw#bi@hEcOr3&G1ZiF*$M=&9nB#VNf&Q^r$4G5kp zTURh&s)E0%5&hyVD}sp<72~zmAY`Y(9aqO6CXF%=zFHGzO-A&I(pE}v70YQxCPJ{Y z4L+?5-crdLn3ZRPEs!A4ehEY3ZRpL~w9>@aMN+{F4dI@v&>(QDHQum!mG~E^$OS8l z!7?%Uwib*ROP67Hw`ika)gX-(8Ia`-u_IEhxG7U<13kSsMW+$lbb2dUMm5p6pa}cjgA+U$^mJ^AjD?&bdi)8~y+Q002ovPDHLkV1g8IMc@Dc literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/ico-error.png b/themes/greydragon/images/ico-error.png new file mode 100755 index 0000000000000000000000000000000000000000..c37bd062e60c3b38fc82e4d1f236a8ac2fae9d8c GIT binary patch literal 701 zcmV;u0z&N#0$9Ug7g~-`rQ^qx~m@y2OU8A z#zh~=7n#Z$Z*fx-GOtDf07cgx0suCz_W(2~Y(0tf@FX@P6EPuM_dgn$vj9LucO)%W zw%HgMW>=#oL>nZ>M&NEf08>)#)k<{$fCT_r>rPi=BV=hFh6WS^qqze>C6Ek}o{M5% za|@JGowu0t{&hgNzySHZxy@LTNh);YzZ2zSp_ zl$^T&Dnc|NLb&RD_!4>pt@VHdP)ZGER%5ZmWEe$lryR&y;2u^3cOkO4#6c%-(EY6a{600000NkvXXu0mjfxS2AI literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/ico-help.png b/themes/greydragon/images/ico-help.png new file mode 100755 index 0000000000000000000000000000000000000000..5c870176d4dea68aab9e51166cc3d7a582f326d6 GIT binary patch literal 786 zcmV+t1MU2YP)$XgYMs^AIOw1Qr{*Wn)N-{9ma}x2(<~`9Go1=*>YR!KZvrBS zCd!u}@M0og%Ev@_;Z?Kk>Wwv=%h_57zmt2<_1msz_niYE=YRNPpd%02TK9oK1z z>ooPno}v^sikz_|1XHFx_L%~;ljh7i(jiay5F0x*+(9aXXFCl?AdQj5XlQ65%sEv+ ztfe?|YcjPN*@yYtE~ImQh{l|#A6Z8iu>pf43Rj52CzU_dMQm|S2xR62YjQOn+z8WH zaK=!}ggOZi{4pB7SQ=xC0n|vXP_Bkx_a)FeNd}w8U97BNbSWxa^QW-li9BZ#M1!_xE*?wzt^GcoeoL*JGLSe_+l-JT2#2tz!z&^ z_s5anq&^nBklIMwRvcoP3%qs%%Ea?1c{_*V*Xj&~uLu-2Dp1fUN4<0zMo$EH>*U83 zm_9;Vt%-bE{_J_!If!1y=c+`QVZ>0_BPy z+%^pgnv`f8H)Z%0&Tp8&u*MCIC4igNW5MeWM_DHpDNi)Zxz|9XboOnitwFq$ETN=X zj-tkCJnz**Y4k#6_Ty^B=hWo~L!47r`HoP=x&3T1)JLr2t2+#fHBVme|mWaqy4$_pJm?y9KM{-*hp?1+Ey3e-CEDooTa!B;e(Q>TSF?bj>5At13y1p zriN3w3x~5SfZj{@J4M{kp{?=M_Lh2bV+5LH)Q)5W!-ePA$RgE1@5f1cyHki0Y}JyVEYZF(LD$xXlt$7A5CgE@ zpV-&l%vf;=5kZ2-2gi@Y6J&=cuwt>!vJ^#(&n|LcZyUzi6Duj$$hJ1s*HD-#;k-w@ zpdrwAuoDG_N2bvb07G$Zk*?Hc)JLtW4yqOnic_$zO7NZ#l>Fm){;fE?b$IbOaX2fe z0la4g0Dfw2xk7Wi7NapVD8YMPCZu?A1QCK*67dgsvRKBLFtrM>?$%&_lD1882mzdO zWPdw5KWw6IT`m1b_8=lS5jt8D3=RDa=&jWzR-)S@56WMslZ~mKu1)-wpXB>rNBQ>N zU#K`#1B&v|_AQK;7I~B}OdGiUT9LX>f0xm6<;LeP!=vFjPsUQF*wCJ*dO)4YBypgdiuF!=i@6Zyi7F|q#K zz?tlSZULa@t1D?$e;f@b36&N!V2mjOHw|*e|tv9>?g+k#9o0pTxd@;_sq{kwlU;^VvV*?BV8P@}BoaZTQUROpWV6|-M`|^n&)=+8tHo3*<<$NU zU`%V~ZF;?hBSYsjJ6%JzV}E(D{pOLqQklliUf9um_tGl-wty`y*p?eYNW56P>X@1s zZs7KrRZKtmV7Lqj^5Fgr7_`LjhdJK@ltF&O`j7?*NUM$KvmNGz)3WjM?V$vHlPT0AFyF?kLE<#HZabCSW3-oa*6;Z zrXD`Ulwd<^2glP%1Y1Kc1Ij%DU^=ME(jKf6APNlA$Uu;J4bVilQHSWX5uJ$9Zsp4M z0%!@LvyTxz=Z6stxlichODIY+yNGt%RM;m`>H4LOKLFs9Y%b5aUN|2|{0Zw|<_~i} fmXz*V19AKYaC#5QQ<|d}62BjvZR2H60wE-$(DhcunX80dHQE4lX*Xilv7$R}G zw*Mm6Ap;)Q@BigZ=Gy&G%F*4T=PKwc+}(pW7ebf9Jg0; zJV?}8@b<#4{)V%iZ-XZ9m}6X>wtIre&Nf?KpA;=m?`j7#_5zW!F>Ra6_rKo2+T;67 zB#_ysGq~-DsU&=*r9SdB1+&R=3;pVR7kU z1KVzG+;(&0(dYY*Jm0_J^6EoR_Rifu>*wzuKYsr>@MQPh_qW$vSTX;=oZUCJAAYiD z!{s$Uetkdx;`EVc`!?QKv*PTM-S@WcyT1GQi-U`gFIand#hwS-)?ZqE;^mSO`}zCl|NsAc^UoUt{pe8=Uf) zW}XVxH@*R^GB+ibOk{1jk+Q>rSCEO%Pv?!2SDpi7ouR<}IgN9hgD>!|IC{?Y-m$x} za~VWdDm@55MU$Y_qd?C8ybO4(KcfPgg&ebxsLQ E0He53YybcN literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/ico-success.png b/themes/greydragon/images/ico-success.png new file mode 100755 index 0000000000000000000000000000000000000000..a9925a06ab02db30c1e7ead9c701c15bc63145cb GIT binary patch literal 537 zcmV+!0_OdRP)Hs{AQG2a)rMyf zFQK~pm1x3+7!nu%-M`k}``c>^00{o_1pjWJUTfl8mg=3qGEl8H@}^@w`VUx0_$uy4 z2FhRqKX}xI*?Tv1DJd8z#F#0c%*~rM30HE1@2o5m~}ZyoWhqv>ql{V z1ZGE0lgcoK^lx+eqc*rAX1Ky;Xx3U%u#zG!m-;eD1Qsn@kf3|F9qz~|95=&g3(7!X zB}JAT>RU;a%vaNOGnJ%e1=K6eAh43c(QN8RQ6~GP%O}Jju$~Ld*%`mO1peOSYYtbpBV}~vsBnU!_?2tr-P=|^T zED%wc9ezHgW@NMb!^uT_|SvCpFLJylbx zY%bpaTGI8IYXMN$9w<3j9VkA~NYOKEQXsj?6a9_hcwfU$acAhJhB)zb_w@MVUEy@S zX&I>K-R!bhu3?(6bHWIg$HEl7{9g>>&l_qdd+UYb(1~BCo9LptNq&8>!yoJ3Ui(i5 zRJ|XnYBklL!{@$-7=3mJ>P@1c=7Oc79e-V7yf+%lD2!I;Y&nXBZ>=B!5?CB>LvEx6 znI%n)qqi$#X#wKB(U7XP2P=+4{b@j#r%9-K(8UqtSDk>0UKzf*HM9yqMZ1D!$2MdZ zR=`U>0zhOH1XqN?nY@AQqB7)Fp4{v&dKXvb43hZKvnN8;Po;+jY*}~*Z|W9Q0W%{D z^T}Cc<|r(Su=1K=P5>Z4 zg`et&Va}tdzBS-G-ZcO)zCWpJvGQwrHZ`@wpM420ac@bI5~KkTFfGEM3sPWO8co4^fI6lPnA)Y{ef%@{+SnoUk0+dW+*{8WvF8}}l07*qoM6N<$g7cXs A&j0`b literal 0 HcmV?d00001 diff --git a/themes/greydragon/images/missing-img.png b/themes/greydragon/images/missing-img.png new file mode 100755 index 0000000000000000000000000000000000000000..12b7394fcd832ee62201853240fb4a15a39bd793 GIT binary patch literal 33136 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/js/gallery.ajax.custom.js b/themes/greydragon/js/gallery.ajax.custom.js new file mode 100755 index 0000000..5be029f --- /dev/null +++ b/themes/greydragon/js/gallery.ajax.custom.js @@ -0,0 +1,14 @@ +(function($) { + $.widget("ui.gallery_ajax", { + _init: function() { + this.element.click(function(event) { + eval("var ajax_handler = " + $(event.currentTarget).attr("ajax_handler")); + $.get($(event.currentTarget).attr("href"), function(data) { + ajax_handler(data); + }); + event.preventDefault(); + return false; + }); + } + }); +})(jQuery); diff --git a/themes/greydragon/js/gallery.dialog.custom.js b/themes/greydragon/js/gallery.dialog.custom.js new file mode 100755 index 0000000..2e3b8a1 --- /dev/null +++ b/themes/greydragon/js/gallery.dialog.custom.js @@ -0,0 +1,232 @@ +(function($) { + var fixDialogAutoWidth = $.noop; + + jQuery.browser = {}; + jQuery.browser.mozilla = /mozilla/.test(navigator.userAgent.toLowerCase()) && !/webkit/.test(navigator.userAgent.toLowerCase()); + jQuery.browser.webkit = /webkit/.test(navigator.userAgent.toLowerCase()); + jQuery.browser.opera = /opera/.test(navigator.userAgent.toLowerCase()); + jQuery.browser.msie = /msie/.test(navigator.userAgent.toLowerCase()); + + if ( $.browser.msie ) { + fixDialogAutoWidth = function(content) { + var dialog = $(content).parent('.ui-dialog'); + var width = dialog.innerWidth(); + if ( width ) dialog.css('width', width); + } + } + + var _init = $.ui.dialog.prototype._init; + $.ui.dialog.prototype._init = function() { + // IE magick: (width: 'auto' not working correctly) : + // http://dev.jqueryui.com/ticket/4437 + if ( this.options.width == 'auto' ) { + var open = this.options.open; + this.options.open = function() { + fixDialogAutoWidth(this); + if ( open ) open.apply(this); + } + } + // yet another bug options.hide: 'drop' does not work + // in IE http://dev.jqueryui.com/ticket/5615 + if ( $.browser.msie && this.options.hide == 'drop' ) { + this.options.hide = 'fold'; + } + return _init.apply(this); // calls open() if autoOpen + }; + + $.widget("ui.gallery_dialog", { + _init: function() { + var self = this; + if (!self.options.immediate) { + this.element.click(function(event) { + event.preventDefault(); + self._show($(event.currentTarget).attr("href")); + return false; + }); + } else { + self._show(this.element.attr("href")); + } + }, + + _show: function(sHref) { + var self = this; + var eDialog = '
    '; + + if ($("#g-dialog").length) { + $("#g-dialog").dialog("close"); + } + $("body").append(eDialog); + + if (!self.options.close) { + self.options.close = self.close_dialog; + } + $("#g-dialog").dialog(self.options); + $("#g-dialog").dialog('option', 'resizable', false); + + $("#g-dialog").gallery_show_loading(); + + $.ajax({ + url: sHref, + type: "GET", + success: function(data, textStatus, xhr) { + var mimeType = /^(\w+\/\w+)\;?/.exec(xhr.getResponseHeader("Content-Type")); + + var content = ""; + if (mimeType[1] == "application/json") { + data = JSON.parse(data); + content = data.html; + } else { + content = data; + } + + $("#g-dialog").html(content).gallery_show_loading(); + + if ($("#g-dialog form").length) { + self.form_loaded(null, $("#g-dialog form")); + } + self._layout(); + + $("#g-dialog").dialog("open"); + self._set_title(); + + if ($("#g-dialog form").length) { + self._ajaxify_dialog(); + } + } + }); + $("#g-dialog").dialog("option", "self", self); + }, + + error: function(xhr, textStatus, errorThrown) { + $("#g-dialog").html(xhr.responseText); + self._set_title(); + self._layout(); + }, + + _layout: function() { + var dialogWidth; + var dialogHeight = $("#g-dialog").height(); + var cssWidth = new String($("#g-dialog form").css("width")); + var childWidth = cssWidth.replace(/[^0-9]/g,""); + var size = $.gallery_get_viewport_size(); + if ($("#g-dialog iframe").length) { + dialogWidth = size.width() - 100; + // Set the iframe width and height + $("#g-dialog iframe").width("100%").height(size.height() - 100); + } else if ($("#g-dialog .g-dialog-panel").length) { + dialogWidth = size.width() - 100; + $("#g-dialog").dialog("option", "height", size.height() - 100); + } else if (childWidth == "" ) { + dialogWidth = 500; + } else { + dialogWidth = parseInt(childWidth) + 28; + } + + var leftPos = (size.width() - dialogWidth) / 2; + var rightPos = (size.height() - dialogHeight) / 2; + + $("#g-dialog").dialog('option', 'width', dialogWidth); + $("#g-dialog").dialog('option', 'position', [leftPos, rightPos]); + }, + + form_loaded: function(event, ui) { + // Should be defined (and localized) in the theme + MSG_CANCEL = MSG_CANCEL || 'Cancel'; + var eCancel = '
    ' + MSG_CANCEL + ''; + if ($("#g-dialog .submit").length) { + $("#g-dialog .submit").addClass("ui-state-default ui-corner-all"); + $.fn.gallery_hover_init(); + $("#g-dialog .submit").parent().append(eCancel); + $("#g-dialog .g-cancel").click(function(event) { + $("#g-dialog").dialog("close"); + event.preventDefault(); + }); + } + $("#g-dialog .ui-state-default").hover( + function() { + $(this).addClass("ui-state-hover"); + }, + function() { + $(this).removeClass("ui-state-hover"); + } + ); + }, + + close_dialog: function(event, ui) { + var self = $("#g-dialog").dialog("option", "self"); + if ($("#g-dialog form").length) { + self._trigger("form_closing", null, $("#g-dialog form")); + } + self._trigger("dialog_closing", null, $("#g-dialog")); + $("#g-dialog").dialog("destroy").remove(); + }, + + _ajaxify_dialog: function() { + var self = this; + $("#g-dialog form").ajaxForm({ + dataType: 'json', + beforeSubmit: function(formData, form, options) { + form.find(":submit") + .addClass("ui-state-disabled") + .attr("disabled", "disabled"); + return true; + }, + success: function(data) { + if (data.html) { + $("#g-dialog").html(data.html); + $("#g-dialog").dialog("option", "position", "center"); + $("#g-dialog form :submit").removeClass("ui-state-disabled") + .attr("disabled", null); + self._set_title(); + self._ajaxify_dialog(); + self.form_loaded(null, $("#g-dialog form")); + if (typeof data.reset == 'function') { + eval(data.reset + '()'); + } + } + if (data.result == "success") { + if (data.location) { + window.location = data.location; + } else { + window.location.reload(); + } + } + }, + error: function(xhr, textStatus, errorThrown) { + $("#g-dialog").html(xhr.responseText); + self._set_title(); + self._layout(); + } + }); + }, + + _set_title: function() { + // Remove titlebar for progress dialogs or set title + if ($("#g-dialog #g-progress").length) { + $(".ui-dialog-titlebar").remove(); + } else if ($("#g-dialog h1").length) { + $("#g-dialog").dialog('option', 'title', $("#g-dialog h1:eq(0)").html()); + $("#g-dialog h1:eq(0)").hide(); + } else if ($("#g-dialog fieldset legend").length) { + $("#g-dialog").dialog('option', 'title', $("#g-dialog fieldset legend:eq(0)").html()); + } + }, + + form_closing: function(event, ui) {}, + dialog_closing: function(event, ui) {} + }); + + $.extend($.ui.gallery_dialog, { + defaults: { + autoResize: false + ,show: 'clip' + ,hide: 'clip' + ,height: 'auto' + ,width: 'auto' + ,autoOpen: false + ,modal: true + ,position: 'center' + ,draggable: false + } + }); +})(jQuery); diff --git a/themes/greydragon/js/jquery-ui.min.js b/themes/greydragon/js/jquery-ui.min.js new file mode 100755 index 0000000..efbd3e5 --- /dev/null +++ b/themes/greydragon/js/jquery-ui.min.js @@ -0,0 +1,7 @@ +/*! jQuery UI - v1.10.4 - 2014-03-16 +* http://jqueryui.com +* Includes: jquery.ui.core.js, jquery.ui.widget.js, jquery.ui.mouse.js, jquery.ui.position.js, jquery.ui.draggable.js, jquery.ui.droppable.js, jquery.ui.resizable.js, jquery.ui.selectable.js, jquery.ui.sortable.js, jquery.ui.accordion.js, jquery.ui.autocomplete.js, jquery.ui.button.js, jquery.ui.datepicker.js, jquery.ui.dialog.js, jquery.ui.menu.js, jquery.ui.progressbar.js, jquery.ui.slider.js, jquery.ui.spinner.js, jquery.ui.tabs.js, jquery.ui.tooltip.js, jquery.ui.effect.js, jquery.ui.effect-blind.js, jquery.ui.effect-bounce.js, jquery.ui.effect-clip.js, jquery.ui.effect-drop.js, jquery.ui.effect-explode.js, jquery.ui.effect-fade.js, jquery.ui.effect-fold.js, jquery.ui.effect-highlight.js, jquery.ui.effect-pulsate.js, jquery.ui.effect-scale.js, jquery.ui.effect-shake.js, jquery.ui.effect-slide.js, jquery.ui.effect-transfer.js +* Copyright 2014 jQuery Foundation and other contributors; Licensed MIT */ + +(function(e,t){function i(t,i){var s,a,o,r=t.nodeName.toLowerCase();return"area"===r?(s=t.parentNode,a=s.name,t.href&&a&&"map"===s.nodeName.toLowerCase()?(o=e("img[usemap=#"+a+"]")[0],!!o&&n(o)):!1):(/input|select|textarea|button|object/.test(r)?!t.disabled:"a"===r?t.href||i:i)&&n(t)}function n(t){return e.expr.filters.visible(t)&&!e(t).parents().addBack().filter(function(){return"hidden"===e.css(this,"visibility")}).length}var s=0,a=/^ui-id-\d+$/;e.ui=e.ui||{},e.extend(e.ui,{version:"1.10.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,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,SPACE:32,TAB:9,UP:38}}),e.fn.extend({focus:function(t){return function(i,n){return"number"==typeof i?this.each(function(){var t=this;setTimeout(function(){e(t).focus(),n&&n.call(t)},i)}):t.apply(this,arguments)}}(e.fn.focus),scrollParent:function(){var t;return t=e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(i){if(i!==t)return this.css("zIndex",i);if(this.length)for(var n,s,a=e(this[0]);a.length&&a[0]!==document;){if(n=a.css("position"),("absolute"===n||"relative"===n||"fixed"===n)&&(s=parseInt(a.css("zIndex"),10),!isNaN(s)&&0!==s))return s;a=a.parent()}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++s)})},removeUniqueId:function(){return this.each(function(){a.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(i){return!!e.data(i,t)}}):function(t,i,n){return!!e.data(t,n[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),s=isNaN(n);return(s||n>=0)&&i(t,!s)}}),e("").outerWidth(1).jquery||e.each(["Width","Height"],function(i,n){function s(t,i,n,s){return e.each(a,function(){i-=parseFloat(e.css(t,"padding"+this))||0,n&&(i-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(i-=parseFloat(e.css(t,"margin"+this))||0)}),i}var a="Width"===n?["Left","Right"]:["Top","Bottom"],o=n.toLowerCase(),r={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+n]=function(i){return i===t?r["inner"+n].call(this):this.each(function(){e(this).css(o,s(this,i)+"px")})},e.fn["outer"+n]=function(t,i){return"number"!=typeof t?r["outer"+n].call(this,t):this.each(function(){e(this).css(o,s(this,t,!0,i)+"px")})}}),e.fn.addBack||(e.fn.addBack=function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}),e("").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(i){return arguments.length?t.call(this,e.camelCase(i)):t.call(this)}}(e.fn.removeData)),e.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),e.support.selectstart="onselectstart"in document.createElement("div"),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,i,n){var s,a=e.ui[t].prototype;for(s in n)a.plugins[s]=a.plugins[s]||[],a.plugins[s].push([i,n[s]])},call:function(e,t,i){var n,s=e.plugins[t];if(s&&e.element[0].parentNode&&11!==e.element[0].parentNode.nodeType)for(n=0;s.length>n;n++)e.options[s[n][0]]&&s[n][1].apply(e.element,i)}},hasScroll:function(t,i){if("hidden"===e(t).css("overflow"))return!1;var n=i&&"left"===i?"scrollLeft":"scrollTop",s=!1;return t[n]>0?!0:(t[n]=1,s=t[n]>0,t[n]=0,s)}})})(jQuery);(function(t,e){var i=0,s=Array.prototype.slice,n=t.cleanData;t.cleanData=function(e){for(var i,s=0;null!=(i=e[s]);s++)try{t(i).triggerHandler("remove")}catch(o){}n(e)},t.widget=function(i,s,n){var o,a,r,h,l={},c=i.split(".")[0];i=i.split(".")[1],o=c+"-"+i,n||(n=s,s=t.Widget),t.expr[":"][o.toLowerCase()]=function(e){return!!t.data(e,o)},t[c]=t[c]||{},a=t[c][i],r=t[c][i]=function(t,i){return this._createWidget?(arguments.length&&this._createWidget(t,i),e):new r(t,i)},t.extend(r,a,{version:n.version,_proto:t.extend({},n),_childConstructors:[]}),h=new s,h.options=t.widget.extend({},h.options),t.each(n,function(i,n){return t.isFunction(n)?(l[i]=function(){var t=function(){return s.prototype[i].apply(this,arguments)},e=function(t){return s.prototype[i].apply(this,t)};return function(){var i,s=this._super,o=this._superApply;return this._super=t,this._superApply=e,i=n.apply(this,arguments),this._super=s,this._superApply=o,i}}(),e):(l[i]=n,e)}),r.prototype=t.widget.extend(h,{widgetEventPrefix:a?h.widgetEventPrefix||i:i},l,{constructor:r,namespace:c,widgetName:i,widgetFullName:o}),a?(t.each(a._childConstructors,function(e,i){var s=i.prototype;t.widget(s.namespace+"."+s.widgetName,r,i._proto)}),delete a._childConstructors):s._childConstructors.push(r),t.widget.bridge(i,r)},t.widget.extend=function(i){for(var n,o,a=s.call(arguments,1),r=0,h=a.length;h>r;r++)for(n in a[r])o=a[r][n],a[r].hasOwnProperty(n)&&o!==e&&(i[n]=t.isPlainObject(o)?t.isPlainObject(i[n])?t.widget.extend({},i[n],o):t.widget.extend({},o):o);return i},t.widget.bridge=function(i,n){var o=n.prototype.widgetFullName||i;t.fn[i]=function(a){var r="string"==typeof a,h=s.call(arguments,1),l=this;return a=!r&&h.length?t.widget.extend.apply(null,[a].concat(h)):a,r?this.each(function(){var s,n=t.data(this,o);return n?t.isFunction(n[a])&&"_"!==a.charAt(0)?(s=n[a].apply(n,h),s!==n&&s!==e?(l=s&&s.jquery?l.pushStack(s.get()):s,!1):e):t.error("no such method '"+a+"' for "+i+" widget instance"):t.error("cannot call methods on "+i+" prior to initialization; "+"attempted to call method '"+a+"'")}):this.each(function(){var e=t.data(this,o);e?e.option(a||{})._init():t.data(this,o,new n(a,this))}),l}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
    ",options:{disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this.bindings=t(),this.hoverable=t(),this.focusable=t(),s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:t.noop,_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(t.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:t.noop,widget:function(){return this.element},option:function(i,s){var n,o,a,r=i;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof i)if(r={},n=i.split("."),i=n.shift(),n.length){for(o=r[i]=t.widget.extend({},this.options[i]),a=0;n.length-1>a;a++)o[n[a]]=o[n[a]]||{},o=o[n[a]];if(i=n.pop(),1===arguments.length)return o[i]===e?null:o[i];o[i]=s}else{if(1===arguments.length)return this.options[i]===e?null:this.options[i];r[i]=s}return this._setOptions(r),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return this.options[t]=e,"disabled"===t&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!e).attr("aria-disabled",e),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(i,s,n){var o,a=this;"boolean"!=typeof i&&(n=s,s=i,i=!1),n?(s=o=t(s),this.bindings=this.bindings.add(s)):(n=s,s=this.element,o=this.widget()),t.each(n,function(n,r){function h(){return i||a.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof r?a[r]:r).apply(a,arguments):e}"string"!=typeof r&&(h.guid=r.guid=r.guid||h.guid||t.guid++);var l=n.match(/^(\w+)\s*(.*)$/),c=l[1]+a.eventNamespace,u=l[2];u?o.delegate(u,c,h):s.bind(c,h)})},_off:function(t,e){e=(e||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,t.unbind(e).undelegate(e)},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){t(e.currentTarget).addClass("ui-state-hover")},mouseleave:function(e){t(e.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){t(e.currentTarget).addClass("ui-state-focus")},focusout:function(e){t(e.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}})})(jQuery);(function(t){var e=!1;t(document).mouseup(function(){e=!1}),t.widget("ui.mouse",{version:"1.10.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.bind("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).bind("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):undefined}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&t(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(i){if(!e){this._mouseStarted&&this._mouseUp(i),this._mouseDownEvent=i;var s=this,n=1===i.which,a="string"==typeof this.options.cancel&&i.target.nodeName?t(i.target).closest(this.options.cancel).length:!1;return n&&!a&&this._mouseCapture(i)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){s.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(i)&&this._mouseDelayMet(i)&&(this._mouseStarted=this._mouseStart(i)!==!1,!this._mouseStarted)?(i.preventDefault(),!0):(!0===t.data(i.target,this.widgetName+".preventClickEvent")&&t.removeData(i.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return s._mouseMove(t)},this._mouseUpDelegate=function(t){return s._mouseUp(t)},t(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),i.preventDefault(),e=!0,!0)):!0}},_mouseMove:function(e){return t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button?this._mouseUp(e):this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){return t(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),!1},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}})})(jQuery);(function(t,e){function i(t,e,i){return[parseFloat(t[0])*(p.test(t[0])?e/100:1),parseFloat(t[1])*(p.test(t[1])?i/100:1)]}function s(e,i){return parseInt(t.css(e,i),10)||0}function n(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}t.ui=t.ui||{};var a,o=Math.max,r=Math.abs,l=Math.round,h=/left|center|right/,c=/top|center|bottom/,u=/[\+\-]\d+(\.[\d]+)?%?/,d=/^\w+/,p=/%$/,f=t.fn.position;t.position={scrollbarWidth:function(){if(a!==e)return a;var i,s,n=t("
    "),o=n.children()[0];return t("body").append(n),i=o.offsetWidth,n.css("overflow","scroll"),s=o.offsetWidth,i===s&&(s=n[0].clientWidth),n.remove(),a=i-s},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widths?"left":i>0?"right":"center",vertical:0>a?"top":n>0?"bottom":"middle"};u>p&&p>r(i+s)&&(l.horizontal="center"),d>g&&g>r(n+a)&&(l.vertical="middle"),l.important=o(r(i),r(s))>o(r(n),r(a))?"horizontal":"vertical",e.using.call(this,t,l)}),c.offset(t.extend(M,{using:h}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,l=n-r,h=r+e.collisionWidth-a-n;e.collisionWidth>a?l>0&&0>=h?(i=t.left+l+e.collisionWidth-a-n,t.left+=l-i):t.left=h>0&&0>=l?n:l>h?n+a-e.collisionWidth:n:l>0?t.left+=l:h>0?t.left-=h:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,l=n-r,h=r+e.collisionHeight-a-n;e.collisionHeight>a?l>0&&0>=h?(i=t.top+l+e.collisionHeight-a-n,t.top+=l-i):t.top=h>0&&0>=l?n:l>h?n+a-e.collisionHeight:n:l>0?t.top+=l:h>0?t.top-=h:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,a=n.offset.left+n.scrollLeft,o=n.width,l=n.isWindow?n.scrollLeft:n.offset.left,h=t.left-e.collisionPosition.marginLeft,c=h-l,u=h+e.collisionWidth-o-l,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-o-a,(0>i||r(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-l,(s>0||u>r(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,a=n.offset.top+n.scrollTop,o=n.height,l=n.isWindow?n.scrollTop:n.offset.top,h=t.top-e.collisionPosition.marginTop,c=h-l,u=h+e.collisionHeight-o-l,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,g=-2*e.offset[1];0>c?(s=t.top+p+f+g+e.collisionHeight-o-a,t.top+p+f+g>c&&(0>s||r(c)>s)&&(t.top+=p+f+g)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+g-l,t.top+p+f+g>u&&(i>0||u>r(i))&&(t.top+=p+f+g))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}},function(){var e,i,s,n,a,o=document.getElementsByTagName("body")[0],r=document.createElement("div");e=document.createElement(o?"div":"body"),s={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&t.extend(s,{position:"absolute",left:"-1000px",top:"-1000px"});for(a in s)e.style[a]=s[a];e.appendChild(r),i=o||document.documentElement,i.insertBefore(e,i.firstChild),r.style.cssText="position: absolute; left: 10.7432222px;",n=t(r).offset().left,t.support.offsetFractions=n>10&&11>n,e.innerHTML="",i.removeChild(e)}()})(jQuery);(function(t){t.widget("ui.draggable",t.ui.mouse,{version:"1.10.4",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1,drag:null,start:null,stop:null},_create:function(){"original"!==this.options.helper||/^(?: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(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(e){var i=this.options;return this.helper||i.disabled||t(e.target).closest(".ui-resizable-handle").length>0?!1:(this.handle=this._getHandle(e),this.handle?(t(i.iframeFix===!0?"iframe":i.iframeFix).each(function(){t("
    ").css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(t(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(e){var i=this.options;return this.helper=this._createHelper(e),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),t.ui.ddmanager&&(t.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offsetParent=this.helper.offsetParent(),this.offsetParentCssPosition=this.offsetParent.css("position"),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.offset.scroll=!1,t.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.position=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this._setContainment(),this._trigger("start",e)===!1?(this._clear(),!1):(this._cacheHelperProportions(),t.ui.ddmanager&&!i.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this._mouseDrag(e,!0),t.ui.ddmanager&&t.ui.ddmanager.dragStart(this,e),!0)},_mouseDrag:function(e,i){if("fixed"===this.offsetParentCssPosition&&(this.offset.parent=this._getParentOffset()),this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),!i){var s=this._uiHash();if(this._trigger("drag",e,s)===!1)return this._mouseUp({}),!1;this.position=s.position}return this.options.axis&&"y"===this.options.axis||(this.helper[0].style.left=this.position.left+"px"),this.options.axis&&"x"===this.options.axis||(this.helper[0].style.top=this.position.top+"px"),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),!1},_mouseStop:function(e){var i=this,s=!1;return t.ui.ddmanager&&!this.options.dropBehaviour&&(s=t.ui.ddmanager.drop(this,e)),this.dropped&&(s=this.dropped,this.dropped=!1),"original"!==this.options.helper||t.contains(this.element[0].ownerDocument,this.element[0])?("invalid"===this.options.revert&&!s||"valid"===this.options.revert&&s||this.options.revert===!0||t.isFunction(this.options.revert)&&this.options.revert.call(this.element,s)?t(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){i._trigger("stop",e)!==!1&&i._clear()}):this._trigger("stop",e)!==!1&&this._clear(),!1):!1},_mouseUp:function(e){return t("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),t.ui.ddmanager&&t.ui.ddmanager.dragStop(this,e),t.ui.mouse.prototype._mouseUp.call(this,e)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(e){return this.options.handle?!!t(e.target).closest(this.element.find(this.options.handle)).length:!0},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e])):"clone"===i.helper?this.element.clone().removeAttr("id"):this.element;return s.parents("body").length||s.appendTo("parent"===i.appendTo?this.element[0].parentNode:i.appendTo),s[0]===this.element[0]||/(fixed|absolute)/.test(s.css("position"))||s.css("position","absolute"),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.element.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}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,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;return n.containment?"window"===n.containment?(this.containment=[t(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,t(window).scrollLeft()+t(window).width()-this.helperProportions.width-this.margins.left,t(window).scrollTop()+(t(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):"document"===n.containment?(this.containment=[0,0,t(document).width()-this.helperProportions.width-this.margins.left,(t(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top],undefined):n.containment.constructor===Array?(this.containment=n.containment,undefined):("parent"===n.containment&&(n.containment=this.helper[0].parentNode),i=t(n.containment),s=i[0],s&&(e="hidden"!==i.css("overflow"),this.containment=[(parseInt(i.css("borderLeftWidth"),10)||0)+(parseInt(i.css("paddingLeft"),10)||0),(parseInt(i.css("borderTopWidth"),10)||0)+(parseInt(i.css("paddingTop"),10)||0),(e?Math.max(s.scrollWidth,s.offsetWidth):s.offsetWidth)-(parseInt(i.css("borderRightWidth"),10)||0)-(parseInt(i.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(e?Math.max(s.scrollHeight,s.offsetHeight):s.offsetHeight)-(parseInt(i.css("borderBottomWidth"),10)||0)-(parseInt(i.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=i),undefined):(this.containment=null,undefined)},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent;return this.offset.scroll||(this.offset.scroll={top:n.scrollTop(),left:n.scrollLeft()}),{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top)*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)*s}},_generatePosition:function(e){var i,s,n,a,o=this.options,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,l=e.pageX,h=e.pageY;return this.offset.scroll||(this.offset.scroll={top:r.scrollTop(),left:r.scrollLeft()}),this.originalPosition&&(this.containment&&(this.relative_container?(s=this.relative_container.offset(),i=[this.containment[0]+s.left,this.containment[1]+s.top,this.containment[2]+s.left,this.containment[3]+s.top]):i=this.containment,e.pageX-this.offset.click.lefti[2]&&(l=i[2]+this.offset.click.left),e.pageY-this.offset.click.top>i[3]&&(h=i[3]+this.offset.click.top)),o.grid&&(n=o.grid[1]?this.originalPageY+Math.round((h-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY,h=i?n-this.offset.click.top>=i[1]||n-this.offset.click.top>i[3]?n:n-this.offset.click.top>=i[1]?n-o.grid[1]:n+o.grid[1]:n,a=o.grid[0]?this.originalPageX+Math.round((l-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX,l=i?a-this.offset.click.left>=i[0]||a-this.offset.click.left>i[2]?a:a-this.offset.click.left>=i[0]?a-o.grid[0]:a+o.grid[0]:a)),{top:h-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():this.offset.scroll.top),left:l-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]===this.element[0]||this.cancelHelperRemoval||this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(e,i,s){return s=s||this._uiHash(),t.ui.plugin.call(this,e,[i,s]),"drag"===e&&(this.positionAbs=this._convertPositionTo("absolute")),t.Widget.prototype._trigger.call(this,e,i,s)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),t.ui.plugin.add("draggable","connectToSortable",{start:function(e,i){var s=t(this).data("ui-draggable"),n=s.options,a=t.extend({},i,{item:s.element});s.sortables=[],t(n.connectToSortable).each(function(){var i=t.data(this,"ui-sortable");i&&!i.options.disabled&&(s.sortables.push({instance:i,shouldRevert:i.options.revert}),i.refreshPositions(),i._trigger("activate",e,a))})},stop:function(e,i){var s=t(this).data("ui-draggable"),n=t.extend({},i,{item:s.element});t.each(s.sortables,function(){this.instance.isOver?(this.instance.isOver=0,s.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=this.shouldRevert),this.instance._mouseStop(e),this.instance.options.helper=this.instance.options._helper,"original"===s.options.helper&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",e,n))})},drag:function(e,i){var s=t(this).data("ui-draggable"),n=this;t.each(s.sortables,function(){var a=!1,o=this;this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(a=!0,t.each(s.sortables,function(){return this.instance.positionAbs=s.positionAbs,this.instance.helperProportions=s.helperProportions,this.instance.offset.click=s.offset.click,this!==o&&this.instance._intersectsWith(this.instance.containerCache)&&t.contains(o.instance.element[0],this.instance.element[0])&&(a=!1),a})),a?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=t(n).clone().removeAttr("id").appendTo(this.instance.element).data("ui-sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return i.helper[0]},e.target=this.instance.currentItem[0],this.instance._mouseCapture(e,!0),this.instance._mouseStart(e,!0,!0),this.instance.offset.click.top=s.offset.click.top,this.instance.offset.click.left=s.offset.click.left,this.instance.offset.parent.left-=s.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=s.offset.parent.top-this.instance.offset.parent.top,s._trigger("toSortable",e),s.dropped=this.instance.element,s.currentItem=s.element,this.instance.fromOutside=s),this.instance.currentItem&&this.instance._mouseDrag(e)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",e,this.instance._uiHash(this.instance)),this.instance._mouseStop(e,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),s._trigger("fromSortable",e),s.dropped=!1)})}}),t.ui.plugin.add("draggable","cursor",{start:function(){var e=t("body"),i=t(this).data("ui-draggable").options;e.css("cursor")&&(i._cursor=e.css("cursor")),e.css("cursor",i.cursor)},stop:function(){var e=t(this).data("ui-draggable").options;e._cursor&&t("body").css("cursor",e._cursor)}}),t.ui.plugin.add("draggable","opacity",{start:function(e,i){var s=t(i.helper),n=t(this).data("ui-draggable").options;s.css("opacity")&&(n._opacity=s.css("opacity")),s.css("opacity",n.opacity)},stop:function(e,i){var s=t(this).data("ui-draggable").options;s._opacity&&t(i.helper).css("opacity",s._opacity)}}),t.ui.plugin.add("draggable","scroll",{start:function(){var e=t(this).data("ui-draggable");e.scrollParent[0]!==document&&"HTML"!==e.scrollParent[0].tagName&&(e.overflowOffset=e.scrollParent.offset())},drag:function(e){var i=t(this).data("ui-draggable"),s=i.options,n=!1;i.scrollParent[0]!==document&&"HTML"!==i.scrollParent[0].tagName?(s.axis&&"x"===s.axis||(i.overflowOffset.top+i.scrollParent[0].offsetHeight-e.pageY=0;u--)r=p.snapElements[u].left,l=r+p.snapElements[u].width,h=p.snapElements[u].top,c=h+p.snapElements[u].height,r-f>_||m>l+f||h-f>b||v>c+f||!t.contains(p.snapElements[u].item.ownerDocument,p.snapElements[u].item)?(p.snapElements[u].snapping&&p.options.snap.release&&p.options.snap.release.call(p.element,e,t.extend(p._uiHash(),{snapItem:p.snapElements[u].item})),p.snapElements[u].snapping=!1):("inner"!==g.snapMode&&(s=f>=Math.abs(h-b),n=f>=Math.abs(c-v),a=f>=Math.abs(r-_),o=f>=Math.abs(l-m),s&&(i.position.top=p._convertPositionTo("relative",{top:h-p.helperProportions.height,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:c,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r-p.helperProportions.width}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:l}).left-p.margins.left)),d=s||n||a||o,"outer"!==g.snapMode&&(s=f>=Math.abs(h-v),n=f>=Math.abs(c-b),a=f>=Math.abs(r-m),o=f>=Math.abs(l-_),s&&(i.position.top=p._convertPositionTo("relative",{top:h,left:0}).top-p.margins.top),n&&(i.position.top=p._convertPositionTo("relative",{top:c-p.helperProportions.height,left:0}).top-p.margins.top),a&&(i.position.left=p._convertPositionTo("relative",{top:0,left:r}).left-p.margins.left),o&&(i.position.left=p._convertPositionTo("relative",{top:0,left:l-p.helperProportions.width}).left-p.margins.left)),!p.snapElements[u].snapping&&(s||n||a||o||d)&&p.options.snap.snap&&p.options.snap.snap.call(p.element,e,t.extend(p._uiHash(),{snapItem:p.snapElements[u].item})),p.snapElements[u].snapping=s||n||a||o||d)}}),t.ui.plugin.add("draggable","stack",{start:function(){var e,i=this.data("ui-draggable").options,s=t.makeArray(t(i.stack)).sort(function(e,i){return(parseInt(t(e).css("zIndex"),10)||0)-(parseInt(t(i).css("zIndex"),10)||0)});s.length&&(e=parseInt(t(s[0]).css("zIndex"),10)||0,t(s).each(function(i){t(this).css("zIndex",e+i)}),this.css("zIndex",e+s.length))}}),t.ui.plugin.add("draggable","zIndex",{start:function(e,i){var s=t(i.helper),n=t(this).data("ui-draggable").options;s.css("zIndex")&&(n._zIndex=s.css("zIndex")),s.css("zIndex",n.zIndex)},stop:function(e,i){var s=t(this).data("ui-draggable").options;s._zIndex&&t(i.helper).css("zIndex",s._zIndex)}})})(jQuery);(function(t){function e(t,e,i){return t>e&&e+i>t}t.widget("ui.droppable",{version:"1.10.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var e,i=this.options,s=i.accept;this.isover=!1,this.isout=!0,this.accept=t.isFunction(s)?s:function(t){return t.is(s)},this.proportions=function(){return arguments.length?(e=arguments[0],undefined):e?e:e={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}},t.ui.ddmanager.droppables[i.scope]=t.ui.ddmanager.droppables[i.scope]||[],t.ui.ddmanager.droppables[i.scope].push(this),i.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){for(var e=0,i=t.ui.ddmanager.droppables[this.options.scope];i.length>e;e++)i[e]===this&&i.splice(e,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(e,i){"accept"===e&&(this.accept=t.isFunction(i)?i:function(t){return t.is(i)}),t.Widget.prototype._setOption.apply(this,arguments)},_activate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),i&&this._trigger("activate",e,this.ui(i))},_deactivate:function(e){var i=t.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),i&&this._trigger("deactivate",e,this.ui(i))},_over:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",e,this.ui(i)))},_out:function(e){var i=t.ui.ddmanager.current;i&&(i.currentItem||i.element)[0]!==this.element[0]&&this.accept.call(this.element[0],i.currentItem||i.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",e,this.ui(i)))},_drop:function(e,i){var s=i||t.ui.ddmanager.current,n=!1;return s&&(s.currentItem||s.element)[0]!==this.element[0]?(this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var e=t.data(this,"ui-droppable");return e.options.greedy&&!e.options.disabled&&e.options.scope===s.options.scope&&e.accept.call(e.element[0],s.currentItem||s.element)&&t.ui.intersect(s,t.extend(e,{offset:e.element.offset()}),e.options.tolerance)?(n=!0,!1):undefined}),n?!1:this.accept.call(this.element[0],s.currentItem||s.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",e,this.ui(s)),this.element):!1):!1},ui:function(t){return{draggable:t.currentItem||t.element,helper:t.helper,position:t.position,offset:t.positionAbs}}}),t.ui.intersect=function(t,i,s){if(!i.offset)return!1;var n,a,o=(t.positionAbs||t.position.absolute).left,r=(t.positionAbs||t.position.absolute).top,l=o+t.helperProportions.width,h=r+t.helperProportions.height,c=i.offset.left,u=i.offset.top,d=c+i.proportions().width,p=u+i.proportions().height;switch(s){case"fit":return o>=c&&d>=l&&r>=u&&p>=h;case"intersect":return o+t.helperProportions.width/2>c&&d>l-t.helperProportions.width/2&&r+t.helperProportions.height/2>u&&p>h-t.helperProportions.height/2;case"pointer":return n=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,a=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,e(a,u,i.proportions().height)&&e(n,c,i.proportions().width);case"touch":return(r>=u&&p>=r||h>=u&&p>=h||u>r&&h>p)&&(o>=c&&d>=o||l>=c&&d>=l||c>o&&l>d);default:return!1}},t.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(e,i){var s,n,a=t.ui.ddmanager.droppables[e.options.scope]||[],o=i?i.type:null,r=(e.currentItem||e.element).find(":data(ui-droppable)").addBack();t:for(s=0;a.length>s;s++)if(!(a[s].options.disabled||e&&!a[s].accept.call(a[s].element[0],e.currentItem||e.element))){for(n=0;r.length>n;n++)if(r[n]===a[s].element[0]){a[s].proportions().height=0;continue t}a[s].visible="none"!==a[s].element.css("display"),a[s].visible&&("mousedown"===o&&a[s]._activate.call(a[s],i),a[s].offset=a[s].element.offset(),a[s].proportions({width:a[s].element[0].offsetWidth,height:a[s].element[0].offsetHeight}))}},drop:function(e,i){var s=!1;return t.each((t.ui.ddmanager.droppables[e.options.scope]||[]).slice(),function(){this.options&&(!this.options.disabled&&this.visible&&t.ui.intersect(e,this,this.options.tolerance)&&(s=this._drop.call(this,i)||s),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],e.currentItem||e.element)&&(this.isout=!0,this.isover=!1,this._deactivate.call(this,i)))}),s},dragStart:function(e,i){e.element.parentsUntil("body").bind("scroll.droppable",function(){e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)})},drag:function(e,i){e.options.refreshPositions&&t.ui.ddmanager.prepareOffsets(e,i),t.each(t.ui.ddmanager.droppables[e.options.scope]||[],function(){if(!this.options.disabled&&!this.greedyChild&&this.visible){var s,n,a,o=t.ui.intersect(e,this,this.options.tolerance),r=!o&&this.isover?"isout":o&&!this.isover?"isover":null;r&&(this.options.greedy&&(n=this.options.scope,a=this.element.parents(":data(ui-droppable)").filter(function(){return t.data(this,"ui-droppable").options.scope===n}),a.length&&(s=t.data(a[0],"ui-droppable"),s.greedyChild="isover"===r)),s&&"isover"===r&&(s.isover=!1,s.isout=!0,s._out.call(s,i)),this[r]=!0,this["isout"===r?"isover":"isout"]=!1,this["isover"===r?"_over":"_out"].call(this,i),s&&"isout"===r&&(s.isout=!1,s.isover=!0,s._over.call(s,i)))}})},dragStop:function(e,i){e.element.parentsUntil("body").unbind("scroll.droppable"),e.options.refreshPositions||t.ui.ddmanager.prepareOffsets(e,i)}}})(jQuery);(function(t){function e(t){return parseInt(t,10)||0}function i(t){return!isNaN(parseInt(t,10))}t.widget("ui.resizable",t.ui.mouse,{version:"1.10.4",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_create:function(){var e,i,s,n,a,o=this,r=this.options;if(this.element.addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!r.aspectRatio,aspectRatio:r.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:r.helper||r.ghost||r.animate?r.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(t("
    ").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("ui-resizable",this.element.data("ui-resizable")),this.elementIsWrapper=!0,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=r.handles||(t(".ui-resizable-handle",this.element).length?{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"}:"e,s,se"),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),e=this.handles.split(","),this.handles={},i=0;e.length>i;i++)s=t.trim(e[i]),a="ui-resizable-"+s,n=t("
    "),n.css({zIndex:r.zIndex}),"se"===s&&n.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(n);this._renderAxis=function(e){var i,s,n,a;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String&&(this.handles[i]=t(this.handles[i],this.element).show()),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)&&(s=t(this.handles[i],this.element),a=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,a),this._proportionallyResize()),t(this.handles[i]).length},this._renderAxis(this.element),this._handles=t(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){o.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),o.axis=n&&n[1]?n[1]:"se")}),r.autoHide&&(this._handles.hide(),t(this.element).addClass("ui-resizable-autohide").mouseenter(function(){r.disabled||(t(this).removeClass("ui-resizable-autohide"),o._handles.show())}).mouseleave(function(){r.disabled||o.resizing||(t(this).addClass("ui-resizable-autohide"),o._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),i(this.originalElement),this},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(i){var s,n,a,o=this.options,r=this.element.position(),h=this.element;return this.resizing=!0,/absolute/.test(h.css("position"))?h.css({position:"absolute",top:h.css("top"),left:h.css("left")}):h.is(".ui-draggable")&&h.css({position:"absolute",top:r.top,left:r.left}),this._renderProxy(),s=e(this.helper.css("left")),n=e(this.helper.css("top")),o.containment&&(s+=t(o.containment).scrollLeft()||0,n+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:s,top:n},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:h.width(),height:h.height()},this.originalSize=this._helper?{width:h.outerWidth(),height:h.outerHeight()}:{width:h.width(),height:h.height()},this.originalPosition={left:s,top:n},this.sizeDiff={width:h.outerWidth()-h.width(),height:h.outerHeight()-h.height()},this.originalMousePosition={left:i.pageX,top:i.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,a=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===a?this.axis+"-resize":a),h.addClass("ui-resizable-resizing"),this._propagate("start",i),!0},_mouseDrag:function(e){var i,s=this.helper,n={},a=this.originalMousePosition,o=this.axis,r=this.position.top,h=this.position.left,l=this.size.width,c=this.size.height,u=e.pageX-a.left||0,d=e.pageY-a.top||0,p=this._change[o];return p?(i=p.apply(this,[e,u,d]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),this.position.top!==r&&(n.top=this.position.top+"px"),this.position.left!==h&&(n.left=this.position.left+"px"),this.size.width!==l&&(n.width=this.size.width+"px"),this.size.height!==c&&(n.height=this.size.height+"px"),s.css(n),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(n)||this._trigger("resize",e,this.ui()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,a,o,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&t.ui.hasScroll(i[0],"left")?0:c.sizeDiff.height,a=s?0:c.sizeDiff.width,o={width:c.helper.width()-a,height:c.helper.height()-n},r=parseInt(c.element.css("left"),10)+(c.position.left-c.originalPosition.left)||null,h=parseInt(c.element.css("top"),10)+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(o,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",e),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(t){var e,s,n,a,o,r=this.options;o={minWidth:i(r.minWidth)?r.minWidth:0,maxWidth:i(r.maxWidth)?r.maxWidth:1/0,minHeight:i(r.minHeight)?r.minHeight:0,maxHeight:i(r.maxHeight)?r.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,n=o.minWidth/this.aspectRatio,s=o.maxHeight*this.aspectRatio,a=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),n>o.minHeight&&(o.minHeight=n),o.maxWidth>s&&(o.maxWidth=s),o.maxHeight>a&&(o.maxHeight=a)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),i(t.left)&&(this.position.left=t.left),i(t.top)&&(this.position.top=t.top),i(t.height)&&(this.size.height=t.height),i(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,s=this.size,n=this.axis;return i(t.height)?t.width=t.height*this.aspectRatio:i(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===n&&(t.left=e.left+(s.width-t.width),t.top=null),"nw"===n&&(t.top=e.top+(s.height-t.height),t.left=e.left+(s.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,s=this.axis,n=i(t.width)&&e.maxWidth&&e.maxWidtht.width,r=i(t.height)&&e.minHeight&&e.minHeight>t.height,h=this.originalPosition.left+this.originalSize.width,l=this.position.top+this.size.height,c=/sw|nw|w/.test(s),u=/nw|ne|n/.test(s);return o&&(t.width=e.minWidth),r&&(t.height=e.minHeight),n&&(t.width=e.maxWidth),a&&(t.height=e.maxHeight),o&&c&&(t.left=h-e.minWidth),n&&c&&(t.left=h-e.maxWidth),r&&u&&(t.top=l-e.minHeight),a&&u&&(t.top=l-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_proportionallyResize:function(){if(this._proportionallyResizeElements.length){var t,e,i,s,n,a=this.helper||this.element;for(t=0;this._proportionallyResizeElements.length>t;t++){if(n=this._proportionallyResizeElements[t],!this.borderDif)for(this.borderDif=[],i=[n.css("borderTopWidth"),n.css("borderRightWidth"),n.css("borderBottomWidth"),n.css("borderLeftWidth")],s=[n.css("paddingTop"),n.css("paddingRight"),n.css("paddingBottom"),n.css("paddingLeft")],e=0;i.length>e;e++)this.borderDif[e]=(parseInt(i[e],10)||0)+(parseInt(s[e],10)||0);n.css({height:a.height()-this.borderDif[0]-this.borderDif[2]||0,width:a.width()-this.borderDif[1]-this.borderDif[3]||0})}}},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
    "),this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++i.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).data("ui-resizable"),s=i.options,n=i._proportionallyResizeElements,a=n.length&&/textarea/i.test(n[0].nodeName),o=a&&t.ui.hasScroll(n[0],"left")?0:i.sizeDiff.height,r=a?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-o},l=parseInt(i.element.css("left"),10)+(i.position.left-i.originalPosition.left)||null,c=parseInt(i.element.css("top"),10)+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseInt(i.element.css("width"),10),height:parseInt(i.element.css("height"),10),top:parseInt(i.element.css("top"),10),left:parseInt(i.element.css("left"),10)};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var i,s,n,a,o,r,h,l=t(this).data("ui-resizable"),c=l.options,u=l.element,d=c.containment,p=d instanceof t?d.get(0):/parent/.test(d)?u.parent().get(0):d;p&&(l.containerElement=t(p),/document/.test(d)||d===document?(l.containerOffset={left:0,top:0},l.containerPosition={left:0,top:0},l.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(i=t(p),s=[],t(["Top","Right","Left","Bottom"]).each(function(t,n){s[t]=e(i.css("padding"+n))}),l.containerOffset=i.offset(),l.containerPosition=i.position(),l.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},n=l.containerOffset,a=l.containerSize.height,o=l.containerSize.width,r=t.ui.hasScroll(p,"left")?p.scrollWidth:o,h=t.ui.hasScroll(p)?p.scrollHeight:a,l.parentData={element:p,left:n.left,top:n.top,width:r,height:h}))},resize:function(e){var i,s,n,a,o=t(this).data("ui-resizable"),r=o.options,h=o.containerOffset,l=o.position,c=o._aspectRatio||e.shiftKey,u={top:0,left:0},d=o.containerElement;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(o._helper?h.left:0)&&(o.size.width=o.size.width+(o._helper?o.position.left-h.left:o.position.left-u.left),c&&(o.size.height=o.size.width/o.aspectRatio),o.position.left=r.helper?h.left:0),l.top<(o._helper?h.top:0)&&(o.size.height=o.size.height+(o._helper?o.position.top-h.top:o.position.top),c&&(o.size.width=o.size.height*o.aspectRatio),o.position.top=o._helper?h.top:0),o.offset.left=o.parentData.left+o.position.left,o.offset.top=o.parentData.top+o.position.top,i=Math.abs((o._helper?o.offset.left-u.left:o.offset.left-u.left)+o.sizeDiff.width),s=Math.abs((o._helper?o.offset.top-u.top:o.offset.top-h.top)+o.sizeDiff.height),n=o.containerElement.get(0)===o.element.parent().get(0),a=/relative|absolute/.test(o.containerElement.css("position")),n&&a&&(i-=Math.abs(o.parentData.left)),i+o.size.width>=o.parentData.width&&(o.size.width=o.parentData.width-i,c&&(o.size.height=o.size.width/o.aspectRatio)),s+o.size.height>=o.parentData.height&&(o.size.height=o.parentData.height-s,c&&(o.size.width=o.size.height*o.aspectRatio))},stop:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.containerOffset,n=e.containerPosition,a=e.containerElement,o=t(e.helper),r=o.offset(),h=o.outerWidth()-e.sizeDiff.width,l=o.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(a.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(a.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).data("ui-resizable"),i=e.options,s=function(e){t(e).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseInt(e.width(),10),height:parseInt(e.height(),10),left:parseInt(e.css("left"),10),top:parseInt(e.css("top"),10)})})};"object"!=typeof i.alsoResize||i.alsoResize.parentNode?s(i.alsoResize):i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):t.each(i.alsoResize,function(t){s(t)})},resize:function(e,i){var s=t(this).data("ui-resizable"),n=s.options,a=s.originalSize,o=s.originalPosition,r={height:s.size.height-a.height||0,width:s.size.width-a.width||0,top:s.position.top-o.top||0,left:s.position.left-o.left||0},h=function(e,s){t(e).each(function(){var e=t(this),n=t(this).data("ui-resizable-alsoresize"),a={},o=s&&s.length?s:e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(n[e]||0)+(r[e]||0);i&&i>=0&&(a[e]=i||null)}),e.css(a)})};"object"!=typeof n.alsoResize||n.alsoResize.nodeType?h(n.alsoResize):t.each(n.alsoResize,function(t,e){h(t,e)})},stop:function(){t(this).removeData("resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass("string"==typeof i.ghost?i.ghost:""),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).data("ui-resizable");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).data("ui-resizable");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e=t(this).data("ui-resizable"),i=e.options,s=e.size,n=e.originalSize,a=e.originalPosition,o=e.axis,r="number"==typeof i.grid?[i.grid,i.grid]:i.grid,h=r[0]||1,l=r[1]||1,c=Math.round((s.width-n.width)/h)*h,u=Math.round((s.height-n.height)/l)*l,d=n.width+c,p=n.height+u,f=i.maxWidth&&d>i.maxWidth,g=i.maxHeight&&p>i.maxHeight,m=i.minWidth&&i.minWidth>d,v=i.minHeight&&i.minHeight>p;i.grid=r,m&&(d+=h),v&&(p+=l),f&&(d-=h),g&&(p-=l),/^(se|s|e)$/.test(o)?(e.size.width=d,e.size.height=p):/^(ne)$/.test(o)?(e.size.width=d,e.size.height=p,e.position.top=a.top-u):/^(sw)$/.test(o)?(e.size.width=d,e.size.height=p,e.position.left=a.left-c):(p-l>0?(e.size.height=p,e.position.top=a.top-u):(e.size.height=l,e.position.top=a.top+n.height-l),d-h>0?(e.size.width=d,e.position.left=a.left-c):(e.size.width=h,e.position.left=a.left+n.width-h))}})})(jQuery);(function(t){t.widget("ui.selectable",t.ui.mouse,{version:"1.10.4",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var e,i=this;this.element.addClass("ui-selectable"),this.dragged=!1,this.refresh=function(){e=t(i.options.filter,i.element[0]),e.addClass("ui-selectee"),e.each(function(){var e=t(this),i=e.offset();t.data(this,"selectable-item",{element:this,$element:e,left:i.left,top:i.top,right:i.left+e.outerWidth(),bottom:i.top+e.outerHeight(),startselected:!1,selected:e.hasClass("ui-selected"),selecting:e.hasClass("ui-selecting"),unselecting:e.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=e.addClass("ui-selectee"),this._mouseInit(),this.helper=t("
    ")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(e){var i=this,s=this.options;this.opos=[e.pageX,e.pageY],this.options.disabled||(this.selectees=t(s.filter,this.element[0]),this._trigger("start",e),t(s.appendTo).append(this.helper),this.helper.css({left:e.pageX,top:e.pageY,width:0,height:0}),s.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var s=t.data(this,"selectable-item");s.startselected=!0,e.metaKey||e.ctrlKey||(s.$element.removeClass("ui-selected"),s.selected=!1,s.$element.addClass("ui-unselecting"),s.unselecting=!0,i._trigger("unselecting",e,{unselecting:s.element}))}),t(e.target).parents().addBack().each(function(){var s,n=t.data(this,"selectable-item");return n?(s=!e.metaKey&&!e.ctrlKey||!n.$element.hasClass("ui-selected"),n.$element.removeClass(s?"ui-unselecting":"ui-selected").addClass(s?"ui-selecting":"ui-unselecting"),n.unselecting=!s,n.selecting=s,n.selected=s,s?i._trigger("selecting",e,{selecting:n.element}):i._trigger("unselecting",e,{unselecting:n.element}),!1):undefined}))},_mouseDrag:function(e){if(this.dragged=!0,!this.options.disabled){var i,s=this,n=this.options,a=this.opos[0],o=this.opos[1],r=e.pageX,l=e.pageY;return a>r&&(i=r,r=a,a=i),o>l&&(i=l,l=o,o=i),this.helper.css({left:a,top:o,width:r-a,height:l-o}),this.selectees.each(function(){var i=t.data(this,"selectable-item"),h=!1;i&&i.element!==s.element[0]&&("touch"===n.tolerance?h=!(i.left>r||a>i.right||i.top>l||o>i.bottom):"fit"===n.tolerance&&(h=i.left>a&&r>i.right&&i.top>o&&l>i.bottom),h?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,s._trigger("selecting",e,{selecting:i.element}))):(i.selecting&&((e.metaKey||e.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),s._trigger("unselecting",e,{unselecting:i.element}))),i.selected&&(e.metaKey||e.ctrlKey||i.startselected||(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,s._trigger("unselecting",e,{unselecting:i.element})))))}),!1}},_mouseStop:function(e){var i=this;return this.dragged=!1,t(".ui-unselecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");s.$element.removeClass("ui-unselecting"),s.unselecting=!1,s.startselected=!1,i._trigger("unselected",e,{unselected:s.element})}),t(".ui-selecting",this.element[0]).each(function(){var s=t.data(this,"selectable-item");s.$element.removeClass("ui-selecting").addClass("ui-selected"),s.selecting=!1,s.selected=!0,s.startselected=!0,i._trigger("selected",e,{selected:s.element})}),this._trigger("stop",e),this.helper.remove(),!1}})})(jQuery);(function(t){function e(t,e,i){return t>e&&e+i>t}function i(t){return/left|right/.test(t.css("float"))||/inline|table-cell/.test(t.css("display"))}t.widget("ui.sortable",t.ui.mouse,{version:"1.10.4",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_create:function(){var t=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?"x"===t.axis||i(this.items[0].item):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var t=this.items.length-1;t>=0;t--)this.items[t].item.removeData(this.widgetName+"-item");return this},_setOption:function(e,i){"disabled"===e?(this.options[e]=i,this.widget().toggleClass("ui-sortable-disabled",!!i)):t.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(e,i){var s=null,n=!1,o=this;return this.reverting?!1:this.options.disabled||"static"===this.options.type?!1:(this._refreshItems(e),t(e.target).parents().each(function(){return t.data(this,o.widgetName+"-item")===o?(s=t(this),!1):undefined}),t.data(e.target,o.widgetName+"-item")===o&&(s=t(e.target)),s?!this.options.handle||i||(t(this.options.handle,s).find("*").addBack().each(function(){this===e.target&&(n=!0)}),n)?(this.currentItem=s,this._removeCurrentsFromItems(),!0):!1:!1)},_mouseStart:function(e,i,s){var n,o,a=this.options;if(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},t.extend(this.offset,{click:{left:e.pageX-this.offset.left,top:e.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(e),this.originalPageX=e.pageX,this.originalPageY=e.pageY,a.cursorAt&&this._adjustOffsetFromHelper(a.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!==this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),a.containment&&this._setContainment(),a.cursor&&"auto"!==a.cursor&&(o=this.document.find("body"),this.storedCursor=o.css("cursor"),o.css("cursor",a.cursor),this.storedStylesheet=t("").appendTo(o)),a.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",a.opacity)),a.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",a.zIndex)),this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",e,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions(),!s)for(n=this.containers.length-1;n>=0;n--)this.containers[n]._trigger("activate",e,this._uiHash(this));return t.ui.ddmanager&&(t.ui.ddmanager.current=this),t.ui.ddmanager&&!a.dropBehaviour&&t.ui.ddmanager.prepareOffsets(this,e),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(e),!0},_mouseDrag:function(e){var i,s,n,o,a=this.options,r=!1;for(this.position=this._generatePosition(e),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs),this.options.scroll&&(this.scrollParent[0]!==document&&"HTML"!==this.scrollParent[0].tagName?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-e.pageY=0;i--)if(s=this.items[i],n=s.item[0],o=this._intersectsWithPointer(s),o&&s.instance===this.currentContainer&&n!==this.currentItem[0]&&this.placeholder[1===o?"next":"prev"]()[0]!==n&&!t.contains(this.placeholder[0],n)&&("semi-dynamic"===this.options.type?!t.contains(this.element[0],n):!0)){if(this.direction=1===o?"down":"up","pointer"!==this.options.tolerance&&!this._intersectsWithSides(s))break;this._rearrange(e,s),this._trigger("change",e,this._uiHash());break}return this._contactContainers(e),t.ui.ddmanager&&t.ui.ddmanager.drag(this,e),this._trigger("sort",e,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(e,i){if(e){if(t.ui.ddmanager&&!this.options.dropBehaviour&&t.ui.ddmanager.drop(this,e),this.options.revert){var s=this,n=this.placeholder.offset(),o=this.options.axis,a={};o&&"x"!==o||(a.left=n.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollLeft)),o&&"y"!==o||(a.top=n.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===document.body?0:this.offsetParent[0].scrollTop)),this.reverting=!0,t(this.helper).animate(a,parseInt(this.options.revert,10)||500,function(){s._clear(e)})}else this._clear(e,i);return!1}},cancel:function(){if(this.dragging){this._mouseUp({target:null}),"original"===this.options.helper?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var e=this.containers.length-1;e>=0;e--)this.containers[e]._trigger("deactivate",null,this._uiHash(this)),this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",null,this._uiHash(this)),this.containers[e].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),"original"!==this.options.helper&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),t.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?t(this.domPosition.prev).after(this.currentItem):t(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},t(i).each(function(){var i=(t(e.item||this).attr(e.attribute||"id")||"").match(e.expression||/(.+)[\-=_](.+)/);i&&s.push((e.key||i[1]+"[]")+"="+(e.key&&e.expression?i[1]:i[2]))}),!s.length&&e.key&&s.push(e.key+"="),s.join("&")},toArray:function(e){var i=this._getItemsAsjQuery(e&&e.connected),s=[];return e=e||{},i.each(function(){s.push(t(e.item||this).attr(e.attribute||"id")||"")}),s},_intersectsWith:function(t){var e=this.positionAbs.left,i=e+this.helperProportions.width,s=this.positionAbs.top,n=s+this.helperProportions.height,o=t.left,a=o+t.width,r=t.top,h=r+t.height,l=this.offset.click.top,c=this.offset.click.left,u="x"===this.options.axis||s+l>r&&h>s+l,d="y"===this.options.axis||e+c>o&&a>e+c,p=u&&d;return"pointer"===this.options.tolerance||this.options.forcePointerForContainers||"pointer"!==this.options.tolerance&&this.helperProportions[this.floating?"width":"height"]>t[this.floating?"width":"height"]?p:e+this.helperProportions.width/2>o&&a>i-this.helperProportions.width/2&&s+this.helperProportions.height/2>r&&h>n-this.helperProportions.height/2},_intersectsWithPointer:function(t){var i="x"===this.options.axis||e(this.positionAbs.top+this.offset.click.top,t.top,t.height),s="y"===this.options.axis||e(this.positionAbs.left+this.offset.click.left,t.left,t.width),n=i&&s,o=this._getDragVerticalDirection(),a=this._getDragHorizontalDirection();return n?this.floating?a&&"right"===a||"down"===o?2:1:o&&("down"===o?2:1):!1},_intersectsWithSides:function(t){var i=e(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),s=e(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),n=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return this.floating&&o?"right"===o&&s||"left"===o&&!s:n&&("down"===n&&i||"up"===n&&!i)},_getDragVerticalDirection:function(){var t=this.positionAbs.top-this.lastPositionAbs.top;return 0!==t&&(t>0?"down":"up")},_getDragHorizontalDirection:function(){var t=this.positionAbs.left-this.lastPositionAbs.left;return 0!==t&&(t>0?"right":"left")},refresh:function(t){return this._refreshItems(t),this.refreshPositions(),this},_connectWith:function(){var t=this.options;return t.connectWith.constructor===String?[t.connectWith]:t.connectWith},_getItemsAsjQuery:function(e){function i(){r.push(this)}var s,n,o,a,r=[],h=[],l=this._connectWith();if(l&&e)for(s=l.length-1;s>=0;s--)for(o=t(l[s]),n=o.length-1;n>=0;n--)a=t.data(o[n],this.widgetFullName),a&&a!==this&&!a.options.disabled&&h.push([t.isFunction(a.options.items)?a.options.items.call(a.element):t(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a]);for(h.push([t.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):t(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]),s=h.length-1;s>=0;s--)h[s][0].each(i);return t(r)},_removeCurrentsFromItems:function(){var e=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=t.grep(this.items,function(t){for(var i=0;e.length>i;i++)if(e[i]===t.item[0])return!1;return!0})},_refreshItems:function(e){this.items=[],this.containers=[this];var i,s,n,o,a,r,h,l,c=this.items,u=[[t.isFunction(this.options.items)?this.options.items.call(this.element[0],e,{item:this.currentItem}):t(this.options.items,this.element),this]],d=this._connectWith();if(d&&this.ready)for(i=d.length-1;i>=0;i--)for(n=t(d[i]),s=n.length-1;s>=0;s--)o=t.data(n[s],this.widgetFullName),o&&o!==this&&!o.options.disabled&&(u.push([t.isFunction(o.options.items)?o.options.items.call(o.element[0],e,{item:this.currentItem}):t(o.options.items,o.element),o]),this.containers.push(o));for(i=u.length-1;i>=0;i--)for(a=u[i][1],r=u[i][0],s=0,l=r.length;l>s;s++)h=t(r[s]),h.data(this.widgetName+"-item",a),c.push({item:h,instance:a,width:0,height:0,left:0,top:0})},refreshPositions:function(e){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());var i,s,n,o;for(i=this.items.length-1;i>=0;i--)s=this.items[i],s.instance!==this.currentContainer&&this.currentContainer&&s.item[0]!==this.currentItem[0]||(n=this.options.toleranceElement?t(this.options.toleranceElement,s.item):s.item,e||(s.width=n.outerWidth(),s.height=n.outerHeight()),o=n.offset(),s.left=o.left,s.top=o.top);if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(i=this.containers.length-1;i>=0;i--)o=this.containers[i].element.offset(),this.containers[i].containerCache.left=o.left,this.containers[i].containerCache.top=o.top,this.containers[i].containerCache.width=this.containers[i].element.outerWidth(),this.containers[i].containerCache.height=this.containers[i].element.outerHeight();return this},_createPlaceholder:function(e){e=e||this;var i,s=e.options;s.placeholder&&s.placeholder.constructor!==String||(i=s.placeholder,s.placeholder={element:function(){var s=e.currentItem[0].nodeName.toLowerCase(),n=t("<"+s+">",e.document[0]).addClass(i||e.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");return"tr"===s?e.currentItem.children().each(function(){t(" ",e.document[0]).attr("colspan",t(this).attr("colspan")||1).appendTo(n)}):"img"===s&&n.attr("src",e.currentItem.attr("src")),i||n.css("visibility","hidden"),n},update:function(t,n){(!i||s.forcePlaceholderSize)&&(n.height()||n.height(e.currentItem.innerHeight()-parseInt(e.currentItem.css("paddingTop")||0,10)-parseInt(e.currentItem.css("paddingBottom")||0,10)),n.width()||n.width(e.currentItem.innerWidth()-parseInt(e.currentItem.css("paddingLeft")||0,10)-parseInt(e.currentItem.css("paddingRight")||0,10)))}}),e.placeholder=t(s.placeholder.element.call(e.element,e.currentItem)),e.currentItem.after(e.placeholder),s.placeholder.update(e,e.placeholder)},_contactContainers:function(s){var n,o,a,r,h,l,c,u,d,p,f=null,g=null;for(n=this.containers.length-1;n>=0;n--)if(!t.contains(this.currentItem[0],this.containers[n].element[0]))if(this._intersectsWith(this.containers[n].containerCache)){if(f&&t.contains(this.containers[n].element[0],f.element[0]))continue;f=this.containers[n],g=n}else this.containers[n].containerCache.over&&(this.containers[n]._trigger("out",s,this._uiHash(this)),this.containers[n].containerCache.over=0);if(f)if(1===this.containers.length)this.containers[g].containerCache.over||(this.containers[g]._trigger("over",s,this._uiHash(this)),this.containers[g].containerCache.over=1);else{for(a=1e4,r=null,p=f.floating||i(this.currentItem),h=p?"left":"top",l=p?"width":"height",c=this.positionAbs[h]+this.offset.click[h],o=this.items.length-1;o>=0;o--)t.contains(this.containers[g].element[0],this.items[o].item[0])&&this.items[o].item[0]!==this.currentItem[0]&&(!p||e(this.positionAbs.top+this.offset.click.top,this.items[o].top,this.items[o].height))&&(u=this.items[o].item.offset()[h],d=!1,Math.abs(u-c)>Math.abs(u+this.items[o][l]-c)&&(d=!0,u+=this.items[o][l]),a>Math.abs(u-c)&&(a=Math.abs(u-c),r=this.items[o],this.direction=d?"up":"down"));if(!r&&!this.options.dropOnEmpty)return;if(this.currentContainer===this.containers[g])return;r?this._rearrange(s,r,null,!0):this._rearrange(s,null,this.containers[g].element,!0),this._trigger("change",s,this._uiHash()),this.containers[g]._trigger("change",s,this._uiHash(this)),this.currentContainer=this.containers[g],this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[g]._trigger("over",s,this._uiHash(this)),this.containers[g].containerCache.over=1}},_createHelper:function(e){var i=this.options,s=t.isFunction(i.helper)?t(i.helper.apply(this.element[0],[e,this.currentItem])):"clone"===i.helper?this.currentItem.clone():this.currentItem;return s.parents("body").length||t("parent"!==i.appendTo?i.appendTo:this.currentItem[0].parentNode)[0].appendChild(s[0]),s[0]===this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(!s[0].style.width||i.forceHelperSize)&&s.width(this.currentItem.width()),(!s[0].style.height||i.forceHelperSize)&&s.height(this.currentItem.height()),s},_adjustOffsetFromHelper:function(e){"string"==typeof e&&(e=e.split(" ")),t.isArray(e)&&(e={left:+e[0],top:+e[1]||0}),"left"in e&&(this.offset.click.left=e.left+this.margins.left),"right"in e&&(this.offset.click.left=this.helperProportions.width-e.right+this.margins.left),"top"in e&&(this.offset.click.top=e.top+this.margins.top),"bottom"in e&&(this.offset.click.top=this.helperProportions.height-e.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var e=this.offsetParent.offset();return"absolute"===this.cssPosition&&this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])&&(e.left+=this.scrollParent.scrollLeft(),e.top+=this.scrollParent.scrollTop()),(this.offsetParent[0]===document.body||this.offsetParent[0].tagName&&"html"===this.offsetParent[0].tagName.toLowerCase()&&t.ui.ie)&&(e={top:0,left:0}),{top:e.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:e.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if("relative"===this.cssPosition){var t=this.currentItem.position();return{top:t.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:t.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var e,i,s,n=this.options;"parent"===n.containment&&(n.containment=this.helper[0].parentNode),("document"===n.containment||"window"===n.containment)&&(this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,t("document"===n.containment?document:window).width()-this.helperProportions.width-this.margins.left,(t("document"===n.containment?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]),/^(document|window|parent)$/.test(n.containment)||(e=t(n.containment)[0],i=t(n.containment).offset(),s="hidden"!==t(e).css("overflow"),this.containment=[i.left+(parseInt(t(e).css("borderLeftWidth"),10)||0)+(parseInt(t(e).css("paddingLeft"),10)||0)-this.margins.left,i.top+(parseInt(t(e).css("borderTopWidth"),10)||0)+(parseInt(t(e).css("paddingTop"),10)||0)-this.margins.top,i.left+(s?Math.max(e.scrollWidth,e.offsetWidth):e.offsetWidth)-(parseInt(t(e).css("borderLeftWidth"),10)||0)-(parseInt(t(e).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,i.top+(s?Math.max(e.scrollHeight,e.offsetHeight):e.offsetHeight)-(parseInt(t(e).css("borderTopWidth"),10)||0)-(parseInt(t(e).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top])},_convertPositionTo:function(e,i){i||(i=this.position);var s="absolute"===e?1:-1,n="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(n[0].tagName);return{top:i.top+this.offset.relative.top*s+this.offset.parent.top*s-("fixed"===this.cssPosition?-this.scrollParent.scrollTop():o?0:n.scrollTop())*s,left:i.left+this.offset.relative.left*s+this.offset.parent.left*s-("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():o?0:n.scrollLeft())*s}},_generatePosition:function(e){var i,s,n=this.options,o=e.pageX,a=e.pageY,r="absolute"!==this.cssPosition||this.scrollParent[0]!==document&&t.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,h=/(html|body)/i.test(r[0].tagName);return"relative"!==this.cssPosition||this.scrollParent[0]!==document&&this.scrollParent[0]!==this.offsetParent[0]||(this.offset.relative=this._getRelativeOffset()),this.originalPosition&&(this.containment&&(e.pageX-this.offset.click.leftthis.containment[2]&&(o=this.containment[2]+this.offset.click.left),e.pageY-this.offset.click.top>this.containment[3]&&(a=this.containment[3]+this.offset.click.top)),n.grid&&(i=this.originalPageY+Math.round((a-this.originalPageY)/n.grid[1])*n.grid[1],a=this.containment?i-this.offset.click.top>=this.containment[1]&&i-this.offset.click.top<=this.containment[3]?i:i-this.offset.click.top>=this.containment[1]?i-n.grid[1]:i+n.grid[1]:i,s=this.originalPageX+Math.round((o-this.originalPageX)/n.grid[0])*n.grid[0],o=this.containment?s-this.offset.click.left>=this.containment[0]&&s-this.offset.click.left<=this.containment[2]?s:s-this.offset.click.left>=this.containment[0]?s-n.grid[0]:s+n.grid[0]:s)),{top:a-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+("fixed"===this.cssPosition?-this.scrollParent.scrollTop():h?0:r.scrollTop()),left:o-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+("fixed"===this.cssPosition?-this.scrollParent.scrollLeft():h?0:r.scrollLeft())}},_rearrange:function(t,e,i,s){i?i[0].appendChild(this.placeholder[0]):e.item[0].parentNode.insertBefore(this.placeholder[0],"down"===this.direction?e.item[0]:e.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var n=this.counter;this._delay(function(){n===this.counter&&this.refreshPositions(!s)})},_clear:function(t,e){function i(t,e,i){return function(s){i._trigger(t,s,e._uiHash(e))}}this.reverting=!1;var s,n=[];if(!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null,this.helper[0]===this.currentItem[0]){for(s in this._storedCSS)("auto"===this._storedCSS[s]||"static"===this._storedCSS[s])&&(this._storedCSS[s]="");this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();for(this.fromOutside&&!e&&n.push(function(t){this._trigger("receive",t,this._uiHash(this.fromOutside))}),!this.fromOutside&&this.domPosition.prev===this.currentItem.prev().not(".ui-sortable-helper")[0]&&this.domPosition.parent===this.currentItem.parent()[0]||e||n.push(function(t){this._trigger("update",t,this._uiHash())}),this!==this.currentContainer&&(e||(n.push(function(t){this._trigger("remove",t,this._uiHash())}),n.push(function(t){return function(e){t._trigger("receive",e,this._uiHash(this))}}.call(this,this.currentContainer)),n.push(function(t){return function(e){t._trigger("update",e,this._uiHash(this))}}.call(this,this.currentContainer)))),s=this.containers.length-1;s>=0;s--)e||n.push(i("deactivate",this,this.containers[s])),this.containers[s].containerCache.over&&(n.push(i("out",this,this.containers[s])),this.containers[s].containerCache.over=0);if(this.storedCursor&&(this.document.find("body").css("cursor",this.storedCursor),this.storedStylesheet.remove()),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex","auto"===this._storedZIndex?"":this._storedZIndex),this.dragging=!1,this.cancelHelperRemoval){if(!e){for(this._trigger("beforeStop",t,this._uiHash()),s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}if(e||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!==this.currentItem[0]&&this.helper.remove(),this.helper=null,!e){for(s=0;n.length>s;s++)n[s].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){t.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(e){var i=e||this;return{helper:i.helper,placeholder:i.placeholder||t([]),position:i.position,originalPosition:i.originalPosition,offset:i.positionAbs,item:i.currentItem,sender:e?e.element:null}}})})(jQuery);(function(e){var t=0,i={},a={};i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="hide",a.height=a.paddingTop=a.paddingBottom=a.borderTopWidth=a.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.10.4",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist"),t.collapsible||t.active!==!1&&null!=t.active||(t.active=0),this._processPanels(),0>t.active&&(t.active+=this.headers.length),this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:this.active.length?this.active.next():e(),content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),"content"!==this.options.heightStyle&&e.css("height","")},_setOption:function(e,t){return"active"===e?(this._activate(t),undefined):("event"===e&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),"collapsible"!==e||t||this.options.active!==!1||this._activate(0),"icons"===e&&(this._destroyIcons(),t&&this._createIcons()),"disabled"===e&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t),undefined)},_keydown:function(t){if(!t.altKey&&!t.ctrlKey){var i=e.ui.keyCode,a=this.headers.length,s=this.headers.index(t.target),n=!1;switch(t.keyCode){case i.RIGHT:case i.DOWN:n=this.headers[(s+1)%a];break;case i.LEFT:case i.UP:n=this.headers[(s-1+a)%a];break;case i.SPACE:case i.ENTER:this._eventHandler(t);break;case i.HOME:n=this.headers[0];break;case i.END:n=this.headers[a-1]}n&&(e(t.target).attr("tabIndex",-1),e(n).attr("tabIndex",0),n.focus(),t.preventDefault())}},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t=this.options;this._processPanels(),t.active===!1&&t.collapsible===!0||!this.headers.length?(t.active=!1,this.active=e()):t.active===!1?this._activate(0):this.active.length&&!e.contains(this.element[0],this.active[0])?this.headers.length===this.headers.find(".ui-state-disabled").length?(t.active=!1,this.active=e()):this._activate(Math.max(0,t.active-1)):t.active=this.headers.index(this.active),this._destroyIcons(),this._refresh()},_processPanels:function(){this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide()},_refresh:function(){var i,a=this.options,s=a.heightStyle,n=this.element.parent(),r=this.accordionId="ui-accordion-"+(this.element.attr("id")||++t);this.active=this._findActive(a.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all"),this.active.next().addClass("ui-accordion-content-active").show(),this.headers.attr("role","tab").each(function(t){var i=e(this),a=i.attr("id"),s=i.next(),n=s.attr("id");a||(a=r+"-header-"+t,i.attr("id",a)),n||(n=r+"-panel-"+t,s.attr("id",n)),i.attr("aria-controls",n),s.attr("aria-labelledby",a)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._createIcons(),this._setupEvents(a.event),"fill"===s?(i=n.height(),this.element.siblings(":visible").each(function(){var t=e(this),a=t.css("position");"absolute"!==a&&"fixed"!==a&&(i-=t.outerHeight(!0))}),this.headers.each(function(){i-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,i-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):"auto"===s&&(i=0,this.headers.next().each(function(){i=Math.max(i,e(this).css("height","").height())}).height(i))},_activate:function(t){var i=this._findActive(t)[0];i!==this.active[0]&&(i=i||this.active[0],this._eventHandler({target:i,currentTarget:i,preventDefault:e.noop}))},_findActive:function(t){return"number"==typeof t?this.headers.eq(t):e()},_setupEvents:function(t){var i={keydown:"_keydown"};t&&e.each(t.split(" "),function(e,t){i[t]="_eventHandler"}),this._off(this.headers.add(this.headers.next())),this._on(this.headers,i),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._hoverable(this.headers),this._focusable(this.headers)},_eventHandler:function(t){var i=this.options,a=this.active,s=e(t.currentTarget),n=s[0]===a[0],r=n&&i.collapsible,o=r?e():s.next(),h=a.next(),d={oldHeader:a,oldPanel:h,newHeader:r?e():s,newPanel:o};t.preventDefault(),n&&!i.collapsible||this._trigger("beforeActivate",t,d)===!1||(i.active=r?!1:this.headers.index(s),this.active=n?e():s,this._toggle(d),a.removeClass("ui-accordion-header-active ui-state-active"),i.icons&&a.children(".ui-accordion-header-icon").removeClass(i.icons.activeHeader).addClass(i.icons.header),n||(s.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),i.icons&&s.children(".ui-accordion-header-icon").removeClass(i.icons.header).addClass(i.icons.activeHeader),s.next().addClass("ui-accordion-content-active")))},_toggle:function(t){var i=t.newPanel,a=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=i,this.prevHide=a,this.options.animate?this._animate(i,a,t):(a.hide(),i.show(),this._toggleComplete(t)),a.attr({"aria-hidden":"true"}),a.prev().attr("aria-selected","false"),i.length&&a.length?a.prev().attr({tabIndex:-1,"aria-expanded":"false"}):i.length&&this.headers.filter(function(){return 0===e(this).attr("tabIndex")}).attr("tabIndex",-1),i.attr("aria-hidden","false").prev().attr({"aria-selected":"true",tabIndex:0,"aria-expanded":"true"})},_animate:function(e,t,s){var n,r,o,h=this,d=0,c=e.length&&(!t.length||e.index()",options:{appendTo:null,autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var t,i,s,n=this.element[0].nodeName.toLowerCase(),a="textarea"===n,o="input"===n;this.isMultiLine=a?!0:o?!1:this.element.prop("isContentEditable"),this.valueMethod=this.element[a||o?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(n){if(this.element.prop("readOnly"))return t=!0,s=!0,i=!0,undefined;t=!1,s=!1,i=!1;var a=e.ui.keyCode;switch(n.keyCode){case a.PAGE_UP:t=!0,this._move("previousPage",n);break;case a.PAGE_DOWN:t=!0,this._move("nextPage",n);break;case a.UP:t=!0,this._keyEvent("previous",n);break;case a.DOWN:t=!0,this._keyEvent("next",n);break;case a.ENTER:case a.NUMPAD_ENTER:this.menu.active&&(t=!0,n.preventDefault(),this.menu.select(n));break;case a.TAB:this.menu.active&&this.menu.select(n);break;case a.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(n),n.preventDefault());break;default:i=!0,this._searchTimeout(n)}},keypress:function(s){if(t)return t=!1,(!this.isMultiLine||this.menu.element.is(":visible"))&&s.preventDefault(),undefined;if(!i){var n=e.ui.keyCode;switch(s.keyCode){case n.PAGE_UP:this._move("previousPage",s);break;case n.PAGE_DOWN:this._move("nextPage",s);break;case n.UP:this._keyEvent("previous",s);break;case n.DOWN:this._keyEvent("next",s)}}},input:function(e){return s?(s=!1,e.preventDefault(),undefined):(this._searchTimeout(e),undefined)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){return this.cancelBlur?(delete this.cancelBlur,undefined):(clearTimeout(this.searching),this.close(e),this._change(e),undefined)}}),this._initSource(),this.menu=e("
      ").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().data("ui-menu"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var i=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(s){s.target===t.element[0]||s.target===i||e.contains(i,s.target)||t.close()})})},menufocus:function(t,i){if(this.isNewMenu&&(this.isNewMenu=!1,t.originalEvent&&/^mouse/.test(t.originalEvent.type)))return this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)}),undefined;var s=i.item.data("ui-autocomplete-item");!1!==this._trigger("focus",t,{item:s})?t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(s.value):this.liveRegion.text(s.value)},menuselect:function(e,t){var i=t.item.data("ui-autocomplete-item"),s=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s,this.selectedItem=i})),!1!==this._trigger("select",e,{item:i})&&this._value(i.value),this.term=this._value(),this.close(e),this.selectedItem=i}}),this.liveRegion=e("",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertBefore(this.element),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),"source"===e&&this._initSource(),"appendTo"===e&&this.menu.element.appendTo(this._appendTo()),"disabled"===e&&t&&this.xhr&&this.xhr.abort()},_appendTo:function(){var t=this.options.appendTo;return t&&(t=t.jquery||t.nodeType?e(t):this.document.find(t).eq(0)),t||(t=this.element.closest(".ui-front")),t.length||(t=this.document[0].body),t},_initSource:function(){var t,i,s=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(i,s){s(e.ui.autocomplete.filter(t,i.term))}):"string"==typeof this.options.source?(i=this.options.source,this.source=function(t,n){s.xhr&&s.xhr.abort(),s.xhr=e.ajax({url:i,data:t,dataType:"json",success:function(e){n(e)},error:function(){n([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){return e=null!=e?e:this._value(),this.term=this._value(),e.length").append(e("").text(i.label)).appendTo(t)},_move:function(e,t){return this.menu.element.is(":visible")?this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)?(this._value(this.term),this.menu.blur(),undefined):(this.menu[e](t),undefined):(this.search(null,t),undefined)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){(!this.isMultiLine||this.menu.element.is(":visible"))&&(this._move(e,t),t.preventDefault())}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,i){var s=RegExp(e.ui.autocomplete.escapeRegex(i),"i");return e.grep(t,function(e){return s.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var t;this._superApply(arguments),this.options.disabled||this.cancelSearch||(t=e&&e.length?this.options.messages.results(e.length):this.options.messages.noResults,this.liveRegion.text(t))}})})(jQuery);(function(e){var t,i="ui-button ui-widget ui-state-default ui-corner-all",n="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",s=function(){var t=e(this);setTimeout(function(){t.find(":ui-button").button("refresh")},1)},a=function(t){var i=t.name,n=t.form,s=e([]);return i&&(i=i.replace(/'/g,"\\'"),s=n?e(n).find("[name='"+i+"']"):e("[name='"+i+"']",t.ownerDocument).filter(function(){return!this.form})),s};e.widget("ui.button",{version:"1.10.4",defaultElement:"").addClass(this._triggerClass).html(n?e("").attr({src:n,alt:s,title:s}):s)),t[o?"before":"after"](i.trigger),i.trigger.click(function(){return e.datepicker._datepickerShowing&&e.datepicker._lastInput===t[0]?e.datepicker._hideDatepicker():e.datepicker._datepickerShowing&&e.datepicker._lastInput!==t[0]?(e.datepicker._hideDatepicker(),e.datepicker._showDatepicker(t[0])):e.datepicker._showDatepicker(t[0]),!1}))},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t,i,a,s,n=new Date(2009,11,20),r=this._get(e,"dateFormat");r.match(/[DM]/)&&(t=function(e){for(i=0,a=0,s=0;e.length>s;s++)e[s].length>i&&(i=e[s].length,a=s);return a},n.setMonth(t(this._get(e,r.match(/MM/)?"monthNames":"monthNamesShort"))),n.setDate(t(this._get(e,r.match(/DD/)?"dayNames":"dayNamesShort"))+20-n.getDay())),e.input.attr("size",this._formatDate(e,n).length)}},_inlineDatepicker:function(t,i){var a=e(t);a.hasClass(this.markerClassName)||(a.addClass(this.markerClassName).append(i.dpDiv),e.data(t,r,i),this._setDate(i,this._getDefaultDate(i),!0),this._updateDatepicker(i),this._updateAlternate(i),i.settings.disabled&&this._disableDatepicker(t),i.dpDiv.css("display","block"))},_dialogDatepicker:function(t,i,a,n,o){var u,c,h,l,d,p=this._dialogInst;return p||(this.uuid+=1,u="dp"+this.uuid,this._dialogInput=e(""),this._dialogInput.keydown(this._doKeyDown),e("body").append(this._dialogInput),p=this._dialogInst=this._newInst(this._dialogInput,!1),p.settings={},e.data(this._dialogInput[0],r,p)),s(p.settings,n||{}),i=i&&i.constructor===Date?this._formatDate(p,i):i,this._dialogInput.val(i),this._pos=o?o.length?o:[o.pageX,o.pageY]:null,this._pos||(c=document.documentElement.clientWidth,h=document.documentElement.clientHeight,l=document.documentElement.scrollLeft||document.body.scrollLeft,d=document.documentElement.scrollTop||document.body.scrollTop,this._pos=[c/2-100+l,h/2-150+d]),this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),p.settings.onSelect=a,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),e.blockUI&&e.blockUI(this.dpDiv),e.data(this._dialogInput[0],r,p),this},_destroyDatepicker:function(t){var i,a=e(t),s=e.data(t,r);a.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),e.removeData(t,r),"input"===i?(s.append.remove(),s.trigger.remove(),a.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):("div"===i||"span"===i)&&a.removeClass(this.markerClassName).empty())},_enableDatepicker:function(t){var i,a,s=e(t),n=e.data(t,r);s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""})):("div"===i||"span"===i)&&(a=s.children("."+this._inlineClass),a.children().removeClass("ui-state-disabled"),a.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}))},_disableDatepicker:function(t){var i,a,s=e(t),n=e.data(t,r);s.hasClass(this.markerClassName)&&(i=t.nodeName.toLowerCase(),"input"===i?(t.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"})):("div"===i||"span"===i)&&(a=s.children("."+this._inlineClass),a.children().addClass("ui-state-disabled"),a.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)),this._disabledInputs=e.map(this._disabledInputs,function(e){return e===t?null:e}),this._disabledInputs[this._disabledInputs.length]=t)},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;this._disabledInputs.length>t;t++)if(this._disabledInputs[t]===e)return!0;return!1},_getInst:function(t){try{return e.data(t,r)}catch(i){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(i,a,n){var r,o,u,c,h=this._getInst(i);return 2===arguments.length&&"string"==typeof a?"defaults"===a?e.extend({},e.datepicker._defaults):h?"all"===a?e.extend({},h.settings):this._get(h,a):null:(r=a||{},"string"==typeof a&&(r={},r[a]=n),h&&(this._curInst===h&&this._hideDatepicker(),o=this._getDateDatepicker(i,!0),u=this._getMinMaxDate(h,"min"),c=this._getMinMaxDate(h,"max"),s(h.settings,r),null!==u&&r.dateFormat!==t&&r.minDate===t&&(h.settings.minDate=this._formatDate(h,u)),null!==c&&r.dateFormat!==t&&r.maxDate===t&&(h.settings.maxDate=this._formatDate(h,c)),"disabled"in r&&(r.disabled?this._disableDatepicker(i):this._enableDatepicker(i)),this._attachments(e(i),h),this._autoSize(h),this._setDate(h,o),this._updateAlternate(h),this._updateDatepicker(h)),t)},_changeDatepicker:function(e,t,i){this._optionDatepicker(e,t,i)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var i=this._getInst(e);i&&(this._setDate(i,t),this._updateDatepicker(i),this._updateAlternate(i))},_getDateDatepicker:function(e,t){var i=this._getInst(e);return i&&!i.inline&&this._setDateFromField(i,t),i?this._getDate(i):null},_doKeyDown:function(t){var i,a,s,n=e.datepicker._getInst(t.target),r=!0,o=n.dpDiv.is(".ui-datepicker-rtl");if(n._keyEvent=!0,e.datepicker._datepickerShowing)switch(t.keyCode){case 9:e.datepicker._hideDatepicker(),r=!1;break;case 13:return s=e("td."+e.datepicker._dayOverClass+":not(."+e.datepicker._currentClass+")",n.dpDiv),s[0]&&e.datepicker._selectDay(t.target,n.selectedMonth,n.selectedYear,s[0]),i=e.datepicker._get(n,"onSelect"),i?(a=e.datepicker._formatDate(n),i.apply(n.input?n.input[0]:null,[a,n])):e.datepicker._hideDatepicker(),!1;case 27:e.datepicker._hideDatepicker();break;case 33:e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 34:e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 35:(t.ctrlKey||t.metaKey)&&e.datepicker._clearDate(t.target),r=t.ctrlKey||t.metaKey;break;case 36:(t.ctrlKey||t.metaKey)&&e.datepicker._gotoToday(t.target),r=t.ctrlKey||t.metaKey;break;case 37:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?1:-1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?-e.datepicker._get(n,"stepBigMonths"):-e.datepicker._get(n,"stepMonths"),"M");break;case 38:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,-7,"D"),r=t.ctrlKey||t.metaKey;break;case 39:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,o?-1:1,"D"),r=t.ctrlKey||t.metaKey,t.originalEvent.altKey&&e.datepicker._adjustDate(t.target,t.ctrlKey?+e.datepicker._get(n,"stepBigMonths"):+e.datepicker._get(n,"stepMonths"),"M");break;case 40:(t.ctrlKey||t.metaKey)&&e.datepicker._adjustDate(t.target,7,"D"),r=t.ctrlKey||t.metaKey;break;default:r=!1}else 36===t.keyCode&&t.ctrlKey?e.datepicker._showDatepicker(this):r=!1;r&&(t.preventDefault(),t.stopPropagation())},_doKeyPress:function(i){var a,s,n=e.datepicker._getInst(i.target);return e.datepicker._get(n,"constrainInput")?(a=e.datepicker._possibleChars(e.datepicker._get(n,"dateFormat")),s=String.fromCharCode(null==i.charCode?i.keyCode:i.charCode),i.ctrlKey||i.metaKey||" ">s||!a||a.indexOf(s)>-1):t},_doKeyUp:function(t){var i,a=e.datepicker._getInst(t.target);if(a.input.val()!==a.lastVal)try{i=e.datepicker.parseDate(e.datepicker._get(a,"dateFormat"),a.input?a.input.val():null,e.datepicker._getFormatConfig(a)),i&&(e.datepicker._setDateFromField(a),e.datepicker._updateAlternate(a),e.datepicker._updateDatepicker(a))}catch(s){}return!0},_showDatepicker:function(t){if(t=t.target||t,"input"!==t.nodeName.toLowerCase()&&(t=e("input",t.parentNode)[0]),!e.datepicker._isDisabledDatepicker(t)&&e.datepicker._lastInput!==t){var i,a,n,r,o,u,c;i=e.datepicker._getInst(t),e.datepicker._curInst&&e.datepicker._curInst!==i&&(e.datepicker._curInst.dpDiv.stop(!0,!0),i&&e.datepicker._datepickerShowing&&e.datepicker._hideDatepicker(e.datepicker._curInst.input[0])),a=e.datepicker._get(i,"beforeShow"),n=a?a.apply(t,[t,i]):{},n!==!1&&(s(i.settings,n),i.lastVal=null,e.datepicker._lastInput=t,e.datepicker._setDateFromField(i),e.datepicker._inDialog&&(t.value=""),e.datepicker._pos||(e.datepicker._pos=e.datepicker._findPos(t),e.datepicker._pos[1]+=t.offsetHeight),r=!1,e(t).parents().each(function(){return r|="fixed"===e(this).css("position"),!r}),o={left:e.datepicker._pos[0],top:e.datepicker._pos[1]},e.datepicker._pos=null,i.dpDiv.empty(),i.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),e.datepicker._updateDatepicker(i),o=e.datepicker._checkOffset(i,o,r),i.dpDiv.css({position:e.datepicker._inDialog&&e.blockUI?"static":r?"fixed":"absolute",display:"none",left:o.left+"px",top:o.top+"px"}),i.inline||(u=e.datepicker._get(i,"showAnim"),c=e.datepicker._get(i,"duration"),i.dpDiv.zIndex(e(t).zIndex()+1),e.datepicker._datepickerShowing=!0,e.effects&&e.effects.effect[u]?i.dpDiv.show(u,e.datepicker._get(i,"showOptions"),c):i.dpDiv[u||"show"](u?c:null),e.datepicker._shouldFocusInput(i)&&i.input.focus(),e.datepicker._curInst=i))}},_updateDatepicker:function(t){this.maxRows=4,n=t,t.dpDiv.empty().append(this._generateHTML(t)),this._attachHandlers(t),t.dpDiv.find("."+this._dayOverClass+" a").mouseover();var i,a=this._getNumberOfMonths(t),s=a[1],r=17;t.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),s>1&&t.dpDiv.addClass("ui-datepicker-multi-"+s).css("width",r*s+"em"),t.dpDiv[(1!==a[0]||1!==a[1]?"add":"remove")+"Class"]("ui-datepicker-multi"),t.dpDiv[(this._get(t,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),t===e.datepicker._curInst&&e.datepicker._datepickerShowing&&e.datepicker._shouldFocusInput(t)&&t.input.focus(),t.yearshtml&&(i=t.yearshtml,setTimeout(function(){i===t.yearshtml&&t.yearshtml&&t.dpDiv.find("select.ui-datepicker-year:first").replaceWith(t.yearshtml),i=t.yearshtml=null},0))},_shouldFocusInput:function(e){return e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&!e.input.is(":focus")},_checkOffset:function(t,i,a){var s=t.dpDiv.outerWidth(),n=t.dpDiv.outerHeight(),r=t.input?t.input.outerWidth():0,o=t.input?t.input.outerHeight():0,u=document.documentElement.clientWidth+(a?0:e(document).scrollLeft()),c=document.documentElement.clientHeight+(a?0:e(document).scrollTop());return i.left-=this._get(t,"isRTL")?s-r:0,i.left-=a&&i.left===t.input.offset().left?e(document).scrollLeft():0,i.top-=a&&i.top===t.input.offset().top+o?e(document).scrollTop():0,i.left-=Math.min(i.left,i.left+s>u&&u>s?Math.abs(i.left+s-u):0),i.top-=Math.min(i.top,i.top+n>c&&c>n?Math.abs(n+o):0),i},_findPos:function(t){for(var i,a=this._getInst(t),s=this._get(a,"isRTL");t&&("hidden"===t.type||1!==t.nodeType||e.expr.filters.hidden(t));)t=t[s?"previousSibling":"nextSibling"];return i=e(t).offset(),[i.left,i.top]},_hideDatepicker:function(t){var i,a,s,n,o=this._curInst;!o||t&&o!==e.data(t,r)||this._datepickerShowing&&(i=this._get(o,"showAnim"),a=this._get(o,"duration"),s=function(){e.datepicker._tidyDialog(o)},e.effects&&(e.effects.effect[i]||e.effects[i])?o.dpDiv.hide(i,e.datepicker._get(o,"showOptions"),a,s):o.dpDiv["slideDown"===i?"slideUp":"fadeIn"===i?"fadeOut":"hide"](i?a:null,s),i||s(),this._datepickerShowing=!1,n=this._get(o,"onClose"),n&&n.apply(o.input?o.input[0]:null,[o.input?o.input.val():"",o]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),e.blockUI&&(e.unblockUI(),e("body").append(this.dpDiv))),this._inDialog=!1)},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(t){if(e.datepicker._curInst){var i=e(t.target),a=e.datepicker._getInst(i[0]);(i[0].id!==e.datepicker._mainDivId&&0===i.parents("#"+e.datepicker._mainDivId).length&&!i.hasClass(e.datepicker.markerClassName)&&!i.closest("."+e.datepicker._triggerClass).length&&e.datepicker._datepickerShowing&&(!e.datepicker._inDialog||!e.blockUI)||i.hasClass(e.datepicker.markerClassName)&&e.datepicker._curInst!==a)&&e.datepicker._hideDatepicker()}},_adjustDate:function(t,i,a){var s=e(t),n=this._getInst(s[0]);this._isDisabledDatepicker(s[0])||(this._adjustInstDate(n,i+("M"===a?this._get(n,"showCurrentAtPos"):0),a),this._updateDatepicker(n))},_gotoToday:function(t){var i,a=e(t),s=this._getInst(a[0]);this._get(s,"gotoCurrent")&&s.currentDay?(s.selectedDay=s.currentDay,s.drawMonth=s.selectedMonth=s.currentMonth,s.drawYear=s.selectedYear=s.currentYear):(i=new Date,s.selectedDay=i.getDate(),s.drawMonth=s.selectedMonth=i.getMonth(),s.drawYear=s.selectedYear=i.getFullYear()),this._notifyChange(s),this._adjustDate(a)},_selectMonthYear:function(t,i,a){var s=e(t),n=this._getInst(s[0]);n["selected"+("M"===a?"Month":"Year")]=n["draw"+("M"===a?"Month":"Year")]=parseInt(i.options[i.selectedIndex].value,10),this._notifyChange(n),this._adjustDate(s)},_selectDay:function(t,i,a,s){var n,r=e(t);e(s).hasClass(this._unselectableClass)||this._isDisabledDatepicker(r[0])||(n=this._getInst(r[0]),n.selectedDay=n.currentDay=e("a",s).html(),n.selectedMonth=n.currentMonth=i,n.selectedYear=n.currentYear=a,this._selectDate(t,this._formatDate(n,n.currentDay,n.currentMonth,n.currentYear)))},_clearDate:function(t){var i=e(t);this._selectDate(i,"")},_selectDate:function(t,i){var a,s=e(t),n=this._getInst(s[0]);i=null!=i?i:this._formatDate(n),n.input&&n.input.val(i),this._updateAlternate(n),a=this._get(n,"onSelect"),a?a.apply(n.input?n.input[0]:null,[i,n]):n.input&&n.input.trigger("change"),n.inline?this._updateDatepicker(n):(this._hideDatepicker(),this._lastInput=n.input[0],"object"!=typeof n.input[0]&&n.input.focus(),this._lastInput=null)},_updateAlternate:function(t){var i,a,s,n=this._get(t,"altField");n&&(i=this._get(t,"altFormat")||this._get(t,"dateFormat"),a=this._getDate(t),s=this.formatDate(i,a,this._getFormatConfig(t)),e(n).each(function(){e(this).val(s)}))},noWeekends:function(e){var t=e.getDay();return[t>0&&6>t,""]},iso8601Week:function(e){var t,i=new Date(e.getTime());return i.setDate(i.getDate()+4-(i.getDay()||7)),t=i.getTime(),i.setMonth(0),i.setDate(1),Math.floor(Math.round((t-i)/864e5)/7)+1},parseDate:function(i,a,s){if(null==i||null==a)throw"Invalid arguments";if(a="object"==typeof a?""+a:a+"",""===a)return null;var n,r,o,u,c=0,h=(s?s.shortYearCutoff:null)||this._defaults.shortYearCutoff,l="string"!=typeof h?h:(new Date).getFullYear()%100+parseInt(h,10),d=(s?s.dayNamesShort:null)||this._defaults.dayNamesShort,p=(s?s.dayNames:null)||this._defaults.dayNames,g=(s?s.monthNamesShort:null)||this._defaults.monthNamesShort,m=(s?s.monthNames:null)||this._defaults.monthNames,f=-1,_=-1,v=-1,k=-1,y=!1,b=function(e){var t=i.length>n+1&&i.charAt(n+1)===e;return t&&n++,t},D=function(e){var t=b(e),i="@"===e?14:"!"===e?20:"y"===e&&t?4:"o"===e?3:2,s=RegExp("^\\d{1,"+i+"}"),n=a.substring(c).match(s);if(!n)throw"Missing number at position "+c;return c+=n[0].length,parseInt(n[0],10)},w=function(i,s,n){var r=-1,o=e.map(b(i)?n:s,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)});if(e.each(o,function(e,i){var s=i[1];return a.substr(c,s.length).toLowerCase()===s.toLowerCase()?(r=i[0],c+=s.length,!1):t}),-1!==r)return r+1;throw"Unknown name at position "+c},M=function(){if(a.charAt(c)!==i.charAt(n))throw"Unexpected literal at position "+c;c++};for(n=0;i.length>n;n++)if(y)"'"!==i.charAt(n)||b("'")?M():y=!1;else switch(i.charAt(n)){case"d":v=D("d");break;case"D":w("D",d,p);break;case"o":k=D("o");break;case"m":_=D("m");break;case"M":_=w("M",g,m);break;case"y":f=D("y");break;case"@":u=new Date(D("@")),f=u.getFullYear(),_=u.getMonth()+1,v=u.getDate();break;case"!":u=new Date((D("!")-this._ticksTo1970)/1e4),f=u.getFullYear(),_=u.getMonth()+1,v=u.getDate();break;case"'":b("'")?M():y=!0;break;default:M()}if(a.length>c&&(o=a.substr(c),!/^\s+/.test(o)))throw"Extra/unparsed characters found in date: "+o;if(-1===f?f=(new Date).getFullYear():100>f&&(f+=(new Date).getFullYear()-(new Date).getFullYear()%100+(l>=f?0:-100)),k>-1)for(_=1,v=k;;){if(r=this._getDaysInMonth(f,_-1),r>=v)break;_++,v-=r}if(u=this._daylightSavingAdjust(new Date(f,_-1,v)),u.getFullYear()!==f||u.getMonth()+1!==_||u.getDate()!==v)throw"Invalid date";return u},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:1e7*60*60*24*(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925)),formatDate:function(e,t,i){if(!t)return"";var a,s=(i?i.dayNamesShort:null)||this._defaults.dayNamesShort,n=(i?i.dayNames:null)||this._defaults.dayNames,r=(i?i.monthNamesShort:null)||this._defaults.monthNamesShort,o=(i?i.monthNames:null)||this._defaults.monthNames,u=function(t){var i=e.length>a+1&&e.charAt(a+1)===t;return i&&a++,i},c=function(e,t,i){var a=""+t;if(u(e))for(;i>a.length;)a="0"+a;return a},h=function(e,t,i,a){return u(e)?a[t]:i[t]},l="",d=!1;if(t)for(a=0;e.length>a;a++)if(d)"'"!==e.charAt(a)||u("'")?l+=e.charAt(a):d=!1;else switch(e.charAt(a)){case"d":l+=c("d",t.getDate(),2);break;case"D":l+=h("D",t.getDay(),s,n);break;case"o":l+=c("o",Math.round((new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime()-new Date(t.getFullYear(),0,0).getTime())/864e5),3);break;case"m":l+=c("m",t.getMonth()+1,2);break;case"M":l+=h("M",t.getMonth(),r,o);break;case"y":l+=u("y")?t.getFullYear():(10>t.getYear()%100?"0":"")+t.getYear()%100;break;case"@":l+=t.getTime();break;case"!":l+=1e4*t.getTime()+this._ticksTo1970;break;case"'":u("'")?l+="'":d=!0;break;default:l+=e.charAt(a)}return l},_possibleChars:function(e){var t,i="",a=!1,s=function(i){var a=e.length>t+1&&e.charAt(t+1)===i;return a&&t++,a};for(t=0;e.length>t;t++)if(a)"'"!==e.charAt(t)||s("'")?i+=e.charAt(t):a=!1;else switch(e.charAt(t)){case"d":case"m":case"y":case"@":i+="0123456789";break;case"D":case"M":return null;case"'":s("'")?i+="'":a=!0;break;default:i+=e.charAt(t)}return i},_get:function(e,i){return e.settings[i]!==t?e.settings[i]:this._defaults[i]},_setDateFromField:function(e,t){if(e.input.val()!==e.lastVal){var i=this._get(e,"dateFormat"),a=e.lastVal=e.input?e.input.val():null,s=this._getDefaultDate(e),n=s,r=this._getFormatConfig(e);try{n=this.parseDate(i,a,r)||s}catch(o){a=t?"":a}e.selectedDay=n.getDate(),e.drawMonth=e.selectedMonth=n.getMonth(),e.drawYear=e.selectedYear=n.getFullYear(),e.currentDay=a?n.getDate():0,e.currentMonth=a?n.getMonth():0,e.currentYear=a?n.getFullYear():0,this._adjustInstDate(e)}},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(t,i,a){var s=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},n=function(i){try{return e.datepicker.parseDate(e.datepicker._get(t,"dateFormat"),i,e.datepicker._getFormatConfig(t))}catch(a){}for(var s=(i.toLowerCase().match(/^c/)?e.datepicker._getDate(t):null)||new Date,n=s.getFullYear(),r=s.getMonth(),o=s.getDate(),u=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,c=u.exec(i);c;){switch(c[2]||"d"){case"d":case"D":o+=parseInt(c[1],10);break;case"w":case"W":o+=7*parseInt(c[1],10);break;case"m":case"M":r+=parseInt(c[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r));break;case"y":case"Y":n+=parseInt(c[1],10),o=Math.min(o,e.datepicker._getDaysInMonth(n,r))}c=u.exec(i)}return new Date(n,r,o)},r=null==i||""===i?a:"string"==typeof i?n(i):"number"==typeof i?isNaN(i)?a:s(i):new Date(i.getTime());return r=r&&"Invalid Date"==""+r?a:r,r&&(r.setHours(0),r.setMinutes(0),r.setSeconds(0),r.setMilliseconds(0)),this._daylightSavingAdjust(r)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,i){var a=!t,s=e.selectedMonth,n=e.selectedYear,r=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=r.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=r.getMonth(),e.drawYear=e.selectedYear=e.currentYear=r.getFullYear(),s===e.selectedMonth&&n===e.selectedYear||i||this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(a?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&""===e.input.val()?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(t){var i=this._get(t,"stepMonths"),a="#"+t.id.replace(/\\\\/g,"\\");t.dpDiv.find("[data-handler]").map(function(){var t={prev:function(){e.datepicker._adjustDate(a,-i,"M")},next:function(){e.datepicker._adjustDate(a,+i,"M")},hide:function(){e.datepicker._hideDatepicker()},today:function(){e.datepicker._gotoToday(a)},selectDay:function(){return e.datepicker._selectDay(a,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return e.datepicker._selectMonthYear(a,this,"M"),!1},selectYear:function(){return e.datepicker._selectMonthYear(a,this,"Y"),!1}};e(this).bind(this.getAttribute("data-event"),t[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t,i,a,s,n,r,o,u,c,h,l,d,p,g,m,f,_,v,k,y,b,D,w,M,C,x,I,N,T,A,E,S,Y,F,P,O,j,K,R,H=new Date,W=this._daylightSavingAdjust(new Date(H.getFullYear(),H.getMonth(),H.getDate())),L=this._get(e,"isRTL"),U=this._get(e,"showButtonPanel"),B=this._get(e,"hideIfNoPrevNext"),z=this._get(e,"navigationAsDateFormat"),q=this._getNumberOfMonths(e),G=this._get(e,"showCurrentAtPos"),J=this._get(e,"stepMonths"),Q=1!==q[0]||1!==q[1],V=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),$=this._getMinMaxDate(e,"min"),X=this._getMinMaxDate(e,"max"),Z=e.drawMonth-G,et=e.drawYear;if(0>Z&&(Z+=12,et--),X)for(t=this._daylightSavingAdjust(new Date(X.getFullYear(),X.getMonth()-q[0]*q[1]+1,X.getDate())),t=$&&$>t?$:t;this._daylightSavingAdjust(new Date(et,Z,1))>t;)Z--,0>Z&&(Z=11,et--);for(e.drawMonth=Z,e.drawYear=et,i=this._get(e,"prevText"),i=z?this.formatDate(i,this._daylightSavingAdjust(new Date(et,Z-J,1)),this._getFormatConfig(e)):i,a=this._canAdjustMonth(e,-1,et,Z)?""+i+"":B?"":""+i+"",s=this._get(e,"nextText"),s=z?this.formatDate(s,this._daylightSavingAdjust(new Date(et,Z+J,1)),this._getFormatConfig(e)):s,n=this._canAdjustMonth(e,1,et,Z)?""+s+"":B?"":""+s+"",r=this._get(e,"currentText"),o=this._get(e,"gotoCurrent")&&e.currentDay?V:W,r=z?this.formatDate(r,o,this._getFormatConfig(e)):r,u=e.inline?"":"",c=U?"
      "+(L?u:"")+(this._isInRange(e,o)?"":"")+(L?"":u)+"
      ":"",h=parseInt(this._get(e,"firstDay"),10),h=isNaN(h)?0:h,l=this._get(e,"showWeek"),d=this._get(e,"dayNames"),p=this._get(e,"dayNamesMin"),g=this._get(e,"monthNames"),m=this._get(e,"monthNamesShort"),f=this._get(e,"beforeShowDay"),_=this._get(e,"showOtherMonths"),v=this._get(e,"selectOtherMonths"),k=this._getDefaultDate(e),y="",D=0;q[0]>D;D++){for(w="",this.maxRows=4,M=0;q[1]>M;M++){if(C=this._daylightSavingAdjust(new Date(et,Z,e.selectedDay)),x=" ui-corner-all",I="",Q){if(I+="
      "}for(I+="
      "+(/all|left/.test(x)&&0===D?L?n:a:"")+(/all|right/.test(x)&&0===D?L?a:n:"")+this._generateMonthYearHeader(e,Z,et,$,X,D>0||M>0,g,m)+"
      "+"",N=l?"":"",b=0;7>b;b++)T=(b+h)%7,N+="=5?" class='ui-datepicker-week-end'":"")+">"+""+p[T]+"";for(I+=N+"",A=this._getDaysInMonth(et,Z),et===e.selectedYear&&Z===e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,A)),E=(this._getFirstDayOfMonth(et,Z)-h+7)%7,S=Math.ceil((E+A)/7),Y=Q?this.maxRows>S?this.maxRows:S:S,this.maxRows=Y,F=this._daylightSavingAdjust(new Date(et,Z,1-E)),P=0;Y>P;P++){for(I+="",O=l?"":"",b=0;7>b;b++)j=f?f.apply(e.input?e.input[0]:null,[F]):[!0,""],K=F.getMonth()!==Z,R=K&&!v||!j[0]||$&&$>F||X&&F>X,O+="",F.setDate(F.getDate()+1),F=this._daylightSavingAdjust(F);I+=O+""}Z++,Z>11&&(Z=0,et++),I+="
      "+this._get(e,"weekHeader")+"
      "+this._get(e,"calculateWeek")(F)+""+(K&&!_?" ":R?""+F.getDate()+"":""+F.getDate()+"")+"
      "+(Q?"
      "+(q[0]>0&&M===q[1]-1?"
      ":""):""),w+=I}y+=w}return y+=c,e._keyEvent=!1,y},_generateMonthYearHeader:function(e,t,i,a,s,n,r,o){var u,c,h,l,d,p,g,m,f=this._get(e,"changeMonth"),_=this._get(e,"changeYear"),v=this._get(e,"showMonthAfterYear"),k="
      ",y="";if(n||!f)y+=""+r[t]+"";else{for(u=a&&a.getFullYear()===i,c=s&&s.getFullYear()===i,y+=""}if(v||(k+=y+(!n&&f&&_?"":" ")),!e.yearshtml)if(e.yearshtml="",n||!_)k+=""+i+"";else{for(l=this._get(e,"yearRange").split(":"),d=(new Date).getFullYear(),p=function(e){var t=e.match(/c[+\-].*/)?i+parseInt(e.substring(1),10):e.match(/[+\-].*/)?d+parseInt(e,10):parseInt(e,10); +return isNaN(t)?d:t},g=p(l[0]),m=Math.max(g,p(l[1]||"")),g=a?Math.max(g,a.getFullYear()):g,m=s?Math.min(m,s.getFullYear()):m,e.yearshtml+="",k+=e.yearshtml,e.yearshtml=null}return k+=this._get(e,"yearSuffix"),v&&(k+=(!n&&f&&_?"":" ")+y),k+="
      "},_adjustInstDate:function(e,t,i){var a=e.drawYear+("Y"===i?t:0),s=e.drawMonth+("M"===i?t:0),n=Math.min(e.selectedDay,this._getDaysInMonth(a,s))+("D"===i?t:0),r=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(a,s,n)));e.selectedDay=r.getDate(),e.drawMonth=e.selectedMonth=r.getMonth(),e.drawYear=e.selectedYear=r.getFullYear(),("M"===i||"Y"===i)&&this._notifyChange(e)},_restrictMinMax:function(e,t){var i=this._getMinMaxDate(e,"min"),a=this._getMinMaxDate(e,"max"),s=i&&i>t?i:t;return a&&s>a?a:s},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return null==t?[1,1]:"number"==typeof t?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return new Date(e,t,1).getDay()},_canAdjustMonth:function(e,t,i,a){var s=this._getNumberOfMonths(e),n=this._daylightSavingAdjust(new Date(i,a+(0>t?t:s[0]*s[1]),1));return 0>t&&n.setDate(this._getDaysInMonth(n.getFullYear(),n.getMonth())),this._isInRange(e,n)},_isInRange:function(e,t){var i,a,s=this._getMinMaxDate(e,"min"),n=this._getMinMaxDate(e,"max"),r=null,o=null,u=this._get(e,"yearRange");return u&&(i=u.split(":"),a=(new Date).getFullYear(),r=parseInt(i[0],10),o=parseInt(i[1],10),i[0].match(/[+\-].*/)&&(r+=a),i[1].match(/[+\-].*/)&&(o+=a)),(!s||t.getTime()>=s.getTime())&&(!n||t.getTime()<=n.getTime())&&(!r||t.getFullYear()>=r)&&(!o||o>=t.getFullYear())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t="string"!=typeof t?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,i,a){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var s=t?"object"==typeof t?t:this._daylightSavingAdjust(new Date(a,i,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),s,this._getFormatConfig(e))}}),e.fn.datepicker=function(t){if(!this.length)return this;e.datepicker.initialized||(e(document).mousedown(e.datepicker._checkExternalClick),e.datepicker.initialized=!0),0===e("#"+e.datepicker._mainDivId).length&&e("body").append(e.datepicker.dpDiv);var i=Array.prototype.slice.call(arguments,1);return"string"!=typeof t||"isDisabled"!==t&&"getDate"!==t&&"widget"!==t?"option"===t&&2===arguments.length&&"string"==typeof arguments[1]?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i)):this.each(function(){"string"==typeof t?e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this].concat(i)):e.datepicker._attachDatepicker(this,t)}):e.datepicker["_"+t+"Datepicker"].apply(e.datepicker,[this[0]].concat(i))},e.datepicker=new i,e.datepicker.initialized=!1,e.datepicker.uuid=(new Date).getTime(),e.datepicker.version="1.10.4"})(jQuery);(function(e){var t={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.10.4",options:{appendTo:"body",autoOpen:!0,buttons:[],closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var i=e(this).css(t).offset().top;0>i&&e(this).css("top",t.top-i)}},resizable:!0,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height},this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.originalTitle=this.element.attr("title"),this.options.title=this.options.title||this.originalTitle,this._createWrapper(),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog),this._createTitlebar(),this._createButtonPane(),this.options.draggable&&e.fn.draggable&&this._makeDraggable(),this.options.resizable&&e.fn.resizable&&this._makeResizable(),this._isOpen=!1},_init:function(){this.options.autoOpen&&this.open()},_appendTo:function(){var t=this.options.appendTo;return t&&(t.jquery||t.nodeType)?e(t):this.document.find(t||"body").eq(0)},_destroy:function(){var e,t=this.originalPosition;this._destroyOverlay(),this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach(),this.uiDialog.stop(!0,!0).remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},disable:e.noop,enable:e.noop,close:function(t){var i,a=this;if(this._isOpen&&this._trigger("beforeClose",t)!==!1){if(this._isOpen=!1,this._destroyOverlay(),!this.opener.filter(":focusable").focus().length)try{i=this.document[0].activeElement,i&&"body"!==i.nodeName.toLowerCase()&&e(i).blur()}catch(s){}this._hide(this.uiDialog,this.options.hide,function(){a._trigger("close",t)})}},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(e,t){var i=!!this.uiDialog.nextAll(":visible").insertBefore(this.uiDialog).length;return i&&!t&&this._trigger("focus",e),i},open:function(){var t=this;return this._isOpen?(this._moveToTop()&&this._focusTabbable(),undefined):(this._isOpen=!0,this.opener=e(this.document[0].activeElement),this._size(),this._position(),this._createOverlay(),this._moveToTop(null,!0),this._show(this.uiDialog,this.options.show,function(){t._focusTabbable(),t._trigger("focus")}),this._trigger("open"),undefined)},_focusTabbable:function(){var e=this.element.find("[autofocus]");e.length||(e=this.element.find(":tabbable")),e.length||(e=this.uiDialogButtonPane.find(":tabbable")),e.length||(e=this.uiDialogTitlebarClose.filter(":tabbable")),e.length||(e=this.uiDialog),e.eq(0).focus()},_keepFocus:function(t){function i(){var t=this.document[0].activeElement,i=this.uiDialog[0]===t||e.contains(this.uiDialog[0],t);i||this._focusTabbable()}t.preventDefault(),i.call(this),this._delay(i)},_createWrapper:function(){this.uiDialog=e("
      ").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo()),this._on(this.uiDialog,{keydown:function(t){if(this.options.closeOnEscape&&!t.isDefaultPrevented()&&t.keyCode&&t.keyCode===e.ui.keyCode.ESCAPE)return t.preventDefault(),this.close(t),undefined;if(t.keyCode===e.ui.keyCode.TAB){var i=this.uiDialog.find(":tabbable"),a=i.filter(":first"),s=i.filter(":last");t.target!==s[0]&&t.target!==this.uiDialog[0]||t.shiftKey?t.target!==a[0]&&t.target!==this.uiDialog[0]||!t.shiftKey||(s.focus(1),t.preventDefault()):(a.focus(1),t.preventDefault())}},mousedown:function(e){this._moveToTop(e)&&this._focusTabbable()}}),this.element.find("[aria-describedby]").length||this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})},_createTitlebar:function(){var t;this.uiDialogTitlebar=e("
      ").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog),this._on(this.uiDialogTitlebar,{mousedown:function(t){e(t.target).closest(".ui-dialog-titlebar-close")||this.uiDialog.focus()}}),this.uiDialogTitlebarClose=e("").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:!1}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar),this._on(this.uiDialogTitlebarClose,{click:function(e){e.preventDefault(),this.close(e)}}),t=e("").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar),this._title(t),this.uiDialog.attr({"aria-labelledby":t.attr("id")})},_title:function(e){this.options.title||e.html(" "),e.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=e("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),this.uiButtonSet=e("
      ").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane),this._createButtons()},_createButtons:function(){var t=this,i=this.options.buttons;return this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),e.isEmptyObject(i)||e.isArray(i)&&!i.length?(this.uiDialog.removeClass("ui-dialog-buttons"),undefined):(e.each(i,function(i,a){var s,n;a=e.isFunction(a)?{click:a,text:i}:a,a=e.extend({type:"button"},a),s=a.click,a.click=function(){s.apply(t.element[0],arguments)},n={icons:a.icons,text:a.showText},delete a.icons,delete a.showText,e("",a).button(n).appendTo(t.uiButtonSet)}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog),undefined)},_makeDraggable:function(){function t(e){return{position:e.position,offset:e.offset}}var i=this,a=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(a,s){e(this).addClass("ui-dialog-dragging"),i._blockFrames(),i._trigger("dragStart",a,t(s))},drag:function(e,a){i._trigger("drag",e,t(a))},stop:function(s,n){a.position=[n.position.left-i.document.scrollLeft(),n.position.top-i.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),i._unblockFrames(),i._trigger("dragStop",s,t(n))}})},_makeResizable:function(){function t(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}var i=this,a=this.options,s=a.resizable,n=this.uiDialog.css("position"),r="string"==typeof s?s:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:a.maxWidth,maxHeight:a.maxHeight,minWidth:a.minWidth,minHeight:this._minHeight(),handles:r,start:function(a,s){e(this).addClass("ui-dialog-resizing"),i._blockFrames(),i._trigger("resizeStart",a,t(s))},resize:function(e,a){i._trigger("resize",e,t(a))},stop:function(s,n){a.height=e(this).height(),a.width=e(this).width(),e(this).removeClass("ui-dialog-resizing"),i._unblockFrames(),i._trigger("resizeStop",s,t(n))}}).css("position",n)},_minHeight:function(){var e=this.options;return"auto"===e.height?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(){var e=this.uiDialog.is(":visible");e||this.uiDialog.show(),this.uiDialog.position(this.options.position),e||this.uiDialog.hide()},_setOptions:function(a){var s=this,n=!1,r={};e.each(a,function(e,a){s._setOption(e,a),e in t&&(n=!0),e in i&&(r[e]=a)}),n&&(this._size(),this._position()),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option",r)},_setOption:function(e,t){var i,a,s=this.uiDialog;"dialogClass"===e&&s.removeClass(this.options.dialogClass).addClass(t),"disabled"!==e&&(this._super(e,t),"appendTo"===e&&this.uiDialog.appendTo(this._appendTo()),"buttons"===e&&this._createButtons(),"closeText"===e&&this.uiDialogTitlebarClose.button({label:""+t}),"draggable"===e&&(i=s.is(":data(ui-draggable)"),i&&!t&&s.draggable("destroy"),!i&&t&&this._makeDraggable()),"position"===e&&this._position(),"resizable"===e&&(a=s.is(":data(ui-resizable)"),a&&!t&&s.resizable("destroy"),a&&"string"==typeof t&&s.resizable("option","handles",t),a||t===!1||this._makeResizable()),"title"===e&&this._title(this.uiDialogTitlebar.find(".ui-dialog-title")))},_size:function(){var e,t,i,a=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0}),a.minWidth>a.width&&(a.width=a.minWidth),e=this.uiDialog.css({height:"auto",width:a.width}).outerHeight(),t=Math.max(0,a.minHeight-e),i="number"==typeof a.maxHeight?Math.max(0,a.maxHeight-e):"none","auto"===a.height?this.element.css({minHeight:t,maxHeight:i,height:"auto"}):this.element.height(Math.max(0,a.height-e)),this.uiDialog.is(":data(ui-resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var t=e(this);return e("
      ").css({position:"absolute",width:t.outerWidth(),height:t.outerHeight()}).appendTo(t.parent()).offset(t.offset())[0]})},_unblockFrames:function(){this.iframeBlocks&&(this.iframeBlocks.remove(),delete this.iframeBlocks)},_allowInteraction:function(t){return e(t.target).closest(".ui-dialog").length?!0:!!e(t.target).closest(".ui-datepicker").length},_createOverlay:function(){if(this.options.modal){var t=this,i=this.widgetFullName;e.ui.dialog.overlayInstances||this._delay(function(){e.ui.dialog.overlayInstances&&this.document.bind("focusin.dialog",function(a){t._allowInteraction(a)||(a.preventDefault(),e(".ui-dialog:visible:last .ui-dialog-content").data(i)._focusTabbable())})}),this.overlay=e("
      ").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo()),this._on(this.overlay,{mousedown:"_keepFocus"}),e.ui.dialog.overlayInstances++}},_destroyOverlay:function(){this.options.modal&&this.overlay&&(e.ui.dialog.overlayInstances--,e.ui.dialog.overlayInstances||this.document.unbind("focusin.dialog"),this.overlay.remove(),this.overlay=null)}}),e.ui.dialog.overlayInstances=0,e.uiBackCompat!==!1&&e.widget("ui.dialog",e.ui.dialog,{_position:function(){var t,i=this.options.position,a=[],s=[0,0];i?(("string"==typeof i||"object"==typeof i&&"0"in i)&&(a=i.split?i.split(" "):[i[0],i[1]],1===a.length&&(a[1]=a[0]),e.each(["left","top"],function(e,t){+a[e]===a[e]&&(s[e]=a[e],a[e]=t)}),i={my:a[0]+(0>s[0]?s[0]:"+"+s[0])+" "+a[1]+(0>s[1]?s[1]:"+"+s[1]),at:a.join(" ")}),i=e.extend({},e.ui.dialog.prototype.options.position,i)):i=e.ui.dialog.prototype.options.position,t=this.uiDialog.is(":visible"),t||this.uiDialog.show(),this.uiDialog.position(i),t||this.uiDialog.hide()}})})(jQuery);(function(t){t.widget("ui.menu",{version:"1.10.4",defaultElement:"
        ",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.mouseHandled=!1,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,t.proxy(function(t){this.options.disabled&&t.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(t){t.preventDefault()},"click .ui-state-disabled > a":function(t){t.preventDefault()},"click .ui-menu-item:has(a)":function(e){var i=t(e.target).closest(".ui-menu-item");!this.mouseHandled&&i.not(".ui-state-disabled").length&&(this.select(e),e.isPropagationStopped()||(this.mouseHandled=!0),i.has(".ui-menu").length?this.expand(e):!this.element.is(":focus")&&t(this.document[0].activeElement).closest(".ui-menu").length&&(this.element.trigger("focus",[!0]),this.active&&1===this.active.parents(".ui-menu").length&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(e){var i=t(e.currentTarget);i.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(e,i)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(t,e){var i=this.active||this.element.children(".ui-menu-item").eq(0);e||this.focus(t,i)},blur:function(e){this._delay(function(){t.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(e)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(e){t(e.target).closest(".ui-menu").length||this.collapseAll(e),this.mouseHandled=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var e=t(this);e.data("ui-menu-submenu-carat")&&e.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(e){function i(t){return t.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var s,n,a,o,r,l=!0;switch(e.keyCode){case t.ui.keyCode.PAGE_UP:this.previousPage(e);break;case t.ui.keyCode.PAGE_DOWN:this.nextPage(e);break;case t.ui.keyCode.HOME:this._move("first","first",e);break;case t.ui.keyCode.END:this._move("last","last",e);break;case t.ui.keyCode.UP:this.previous(e);break;case t.ui.keyCode.DOWN:this.next(e);break;case t.ui.keyCode.LEFT:this.collapse(e);break;case t.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(e);break;case t.ui.keyCode.ENTER:case t.ui.keyCode.SPACE:this._activate(e);break;case t.ui.keyCode.ESCAPE:this.collapse(e);break;default:l=!1,n=this.previousFilter||"",a=String.fromCharCode(e.keyCode),o=!1,clearTimeout(this.filterTimer),a===n?o=!0:a=n+a,r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())}),s=o&&-1!==s.index(this.active.next())?this.active.nextAll(".ui-menu-item"):s,s.length||(a=String.fromCharCode(e.keyCode),r=RegExp("^"+i(a),"i"),s=this.activeMenu.children(".ui-menu-item").filter(function(){return r.test(t(this).children("a").text())})),s.length?(this.focus(e,s),s.length>1?(this.previousFilter=a,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}l&&e.preventDefault()},_activate:function(t){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(t):this.select(t))},refresh:function(){var e,i=this.options.icons.submenu,s=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length),s.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var e=t(this),s=e.prev("a"),n=t("").addClass("ui-menu-icon ui-icon "+i).data("ui-menu-submenu-carat",!0);s.attr("aria-haspopup","true").prepend(n),e.attr("aria-labelledby",s.attr("id"))}),e=s.add(this.element),e.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),e.children(":not(.ui-menu-item)").each(function(){var e=t(this);/[^\-\u2014\u2013\s]/.test(e.text())||e.addClass("ui-widget-content ui-menu-divider")}),e.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!t.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(t,e){"icons"===t&&this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(e.submenu),this._super(t,e)},focus:function(t,e){var i,s;this.blur(t,t&&"focus"===t.type),this._scrollIntoView(e),this.active=e.first(),s=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",s.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),t&&"keydown"===t.type?this._close():this.timer=this._delay(function(){this._close()},this.delay),i=e.children(".ui-menu"),i.length&&t&&/^mouse/.test(t.type)&&this._startOpening(i),this.activeMenu=e.parent(),this._trigger("focus",t,{item:e})},_scrollIntoView:function(e){var i,s,n,a,o,r;this._hasScroll()&&(i=parseFloat(t.css(this.activeMenu[0],"borderTopWidth"))||0,s=parseFloat(t.css(this.activeMenu[0],"paddingTop"))||0,n=e.offset().top-this.activeMenu.offset().top-i-s,a=this.activeMenu.scrollTop(),o=this.activeMenu.height(),r=e.height(),0>n?this.activeMenu.scrollTop(a+n):n+r>o&&this.activeMenu.scrollTop(a+n-o+r))},blur:function(t,e){e||clearTimeout(this.timer),this.active&&(this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",t,{item:this.active}))},_startOpening:function(t){clearTimeout(this.timer),"true"===t.attr("aria-hidden")&&(this.timer=this._delay(function(){this._close(),this._open(t)},this.delay))},_open:function(e){var i=t.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(e.parents(".ui-menu")).hide().attr("aria-hidden","true"),e.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(i)},collapseAll:function(e,i){clearTimeout(this.timer),this.timer=this._delay(function(){var s=i?this.element:t(e&&e.target).closest(this.element.find(".ui-menu"));s.length||(s=this.element),this._close(s),this.blur(e),this.activeMenu=s},this.delay)},_close:function(t){t||(t=this.active?this.active.parent():this.element),t.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(t){var e=this.active&&this.active.parent().closest(".ui-menu-item",this.element);e&&e.length&&(this._close(),this.focus(t,e))},expand:function(t){var e=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();e&&e.length&&(this._open(e.parent()),this._delay(function(){this.focus(t,e)}))},next:function(t){this._move("next","first",t)},previous:function(t){this._move("prev","last",t)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(t,e,i){var s;this.active&&(s="first"===t||"last"===t?this.active["first"===t?"prevAll":"nextAll"](".ui-menu-item").eq(-1):this.active[t+"All"](".ui-menu-item").eq(0)),s&&s.length&&this.active||(s=this.activeMenu.children(".ui-menu-item")[e]()),this.focus(i,s)},nextPage:function(e){var i,s,n;return this.active?(this.isLastItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return i=t(this),0>i.offset().top-s-n}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())),undefined):(this.next(e),undefined)},previousPage:function(e){var i,s,n;return this.active?(this.isFirstItem()||(this._hasScroll()?(s=this.active.offset().top,n=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return i=t(this),i.offset().top-s+n>0}),this.focus(e,i)):this.focus(e,this.activeMenu.children(".ui-menu-item").first())),undefined):(this.next(e),undefined)},_hasScroll:function(){return this.element.outerHeight()
      ").appendTo(this.element),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(t){return t===e?this.options.value:(this.options.value=this._constrainedValue(t),this._refreshValue(),e)},_constrainedValue:function(t){return t===e&&(t=this.options.value),this.indeterminate=t===!1,"number"!=typeof t&&(t=0),this.indeterminate?!1:Math.min(this.options.max,Math.max(this.min,t))},_setOptions:function(t){var e=t.value;delete t.value,this._super(t),this.options.value=this._constrainedValue(e),this._refreshValue()},_setOption:function(t,e){"max"===t&&(e=Math.max(this.min,e)),this._super(t,e)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var e=this.options.value,i=this._percentage();this.valueDiv.toggle(this.indeterminate||e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(i.toFixed(0)+"%"),this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate),this.indeterminate?(this.element.removeAttr("aria-valuenow"),this.overlayDiv||(this.overlayDiv=t("
      ").appendTo(this.valueDiv))):(this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":e}),this.overlayDiv&&(this.overlayDiv.remove(),this.overlayDiv=null)),this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),e===this.options.max&&this._trigger("complete")}})})(jQuery);(function(t){var e=5;t.widget("ui.slider",t.ui.mouse,{version:"1.10.4",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},_create:function(){this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"),this._refresh(),this._setOption("disabled",this.options.disabled),this._animateOff=!1},_refresh:function(){this._createRange(),this._createHandles(),this._setupEvents(),this._refreshValue()},_createHandles:function(){var e,i,s=this.options,n=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),a="",o=[];for(i=s.values&&s.values.length||1,n.length>i&&(n.slice(i).remove(),n=n.slice(0,i)),e=n.length;i>e;e++)o.push(a);this.handles=n.add(t(o.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.each(function(e){t(this).data("ui-slider-handle-index",e)})},_createRange:function(){var e=this.options,i="";e.range?(e.range===!0&&(e.values?e.values.length&&2!==e.values.length?e.values=[e.values[0],e.values[0]]:t.isArray(e.values)&&(e.values=e.values.slice(0)):e.values=[this._valueMin(),this._valueMin()]),this.range&&this.range.length?this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""}):(this.range=t("
      ").appendTo(this.element),i="ui-slider-range ui-widget-header ui-corner-all"),this.range.addClass(i+("min"===e.range||"max"===e.range?" ui-slider-range-"+e.range:""))):(this.range&&this.range.remove(),this.range=null)},_setupEvents:function(){var t=this.handles.add(this.range).filter("a");this._off(t),this._on(t,this._handleEvents),this._hoverable(t),this._focusable(t)},_destroy:function(){this.handles.remove(),this.range&&this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(e){var i,s,n,a,o,r,l,h,u=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),i={x:e.pageX,y:e.pageY},s=this._normValueFromMouse(i),n=this._valueMax()-this._valueMin()+1,this.handles.each(function(e){var i=Math.abs(s-u.values(e));(n>i||n===i&&(e===u._lastChangedValue||u.values(e)===c.min))&&(n=i,a=t(this),o=e)}),r=this._start(e,o),r===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,a.addClass("ui-state-active").focus(),l=a.offset(),h=!t(e.target).parents().addBack().is(".ui-slider-handle"),this._clickOffset=h?{left:0,top:0}:{left:e.pageX-l.left-a.width()/2,top:e.pageY-l.top-a.height()/2-(parseInt(a.css("borderTopWidth"),10)||0)-(parseInt(a.css("borderBottomWidth"),10)||0)+(parseInt(a.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(e,o,s),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(t){var e={x:t.pageX,y:t.pageY},i=this._normValueFromMouse(e);return this._slide(t,this._handleIndex,i),!1},_mouseStop:function(t){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(t,this._handleIndex),this._change(t,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation="vertical"===this.options.orientation?"vertical":"horizontal"},_normValueFromMouse:function(t){var e,i,s,n,a;return"horizontal"===this.orientation?(e=this.elementSize.width,i=t.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(e=this.elementSize.height,i=t.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),s=i/e,s>1&&(s=1),0>s&&(s=0),"vertical"===this.orientation&&(s=1-s),n=this._valueMax()-this._valueMin(),a=this._valueMin()+s*n,this._trimAlignValue(a)},_start:function(t,e){var i={handle:this.handles[e],value:this.value()};return this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("start",t,i)},_slide:function(t,e,i){var s,n,a;this.options.values&&this.options.values.length?(s=this.values(e?0:1),2===this.options.values.length&&this.options.range===!0&&(0===e&&i>s||1===e&&s>i)&&(i=s),i!==this.values(e)&&(n=this.values(),n[e]=i,a=this._trigger("slide",t,{handle:this.handles[e],value:i,values:n}),s=this.values(e?0:1),a!==!1&&this.values(e,i))):i!==this.value()&&(a=this._trigger("slide",t,{handle:this.handles[e],value:i}),a!==!1&&this.value(i))},_stop:function(t,e){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._trigger("stop",t,i)},_change:function(t,e){if(!this._keySliding&&!this._mouseSliding){var i={handle:this.handles[e],value:this.value()};this.options.values&&this.options.values.length&&(i.value=this.values(e),i.values=this.values()),this._lastChangedValue=e,this._trigger("change",t,i)}},value:function(t){return arguments.length?(this.options.value=this._trimAlignValue(t),this._refreshValue(),this._change(null,0),undefined):this._value()},values:function(e,i){var s,n,a;if(arguments.length>1)return this.options.values[e]=this._trimAlignValue(i),this._refreshValue(),this._change(null,e),undefined;if(!arguments.length)return this._values();if(!t.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(e):this.value();for(s=this.options.values,n=arguments[0],a=0;s.length>a;a+=1)s[a]=this._trimAlignValue(n[a]),this._change(null,a);this._refreshValue()},_setOption:function(e,i){var s,n=0;switch("range"===e&&this.options.range===!0&&("min"===i?(this.options.value=this._values(0),this.options.values=null):"max"===i&&(this.options.value=this._values(this.options.values.length-1),this.options.values=null)),t.isArray(this.options.values)&&(n=this.options.values.length),t.Widget.prototype._setOption.apply(this,arguments),e){case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":for(this._animateOff=!0,this._refreshValue(),s=0;n>s;s+=1)this._change(null,s);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1;break;case"range":this._animateOff=!0,this._refresh(),this._animateOff=!1}},_value:function(){var t=this.options.value;return t=this._trimAlignValue(t)},_values:function(t){var e,i,s;if(arguments.length)return e=this.options.values[t],e=this._trimAlignValue(e);if(this.options.values&&this.options.values.length){for(i=this.options.values.slice(),s=0;i.length>s;s+=1)i[s]=this._trimAlignValue(i[s]);return i}return[]},_trimAlignValue:function(t){if(this._valueMin()>=t)return this._valueMin();if(t>=this._valueMax())return this._valueMax();var e=this.options.step>0?this.options.step:1,i=(t-this._valueMin())%e,s=t-i;return 2*Math.abs(i)>=e&&(s+=i>0?e:-e),parseFloat(s.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var e,i,s,n,a,o=this.options.range,r=this.options,l=this,h=this._animateOff?!1:r.animate,u={};this.options.values&&this.options.values.length?this.handles.each(function(s){i=100*((l.values(s)-l._valueMin())/(l._valueMax()-l._valueMin())),u["horizontal"===l.orientation?"left":"bottom"]=i+"%",t(this).stop(1,1)[h?"animate":"css"](u,r.animate),l.options.range===!0&&("horizontal"===l.orientation?(0===s&&l.range.stop(1,1)[h?"animate":"css"]({left:i+"%"},r.animate),1===s&&l.range[h?"animate":"css"]({width:i-e+"%"},{queue:!1,duration:r.animate})):(0===s&&l.range.stop(1,1)[h?"animate":"css"]({bottom:i+"%"},r.animate),1===s&&l.range[h?"animate":"css"]({height:i-e+"%"},{queue:!1,duration:r.animate}))),e=i}):(s=this.value(),n=this._valueMin(),a=this._valueMax(),i=a!==n?100*((s-n)/(a-n)):0,u["horizontal"===this.orientation?"left":"bottom"]=i+"%",this.handle.stop(1,1)[h?"animate":"css"](u,r.animate),"min"===o&&"horizontal"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({width:i+"%"},r.animate),"max"===o&&"horizontal"===this.orientation&&this.range[h?"animate":"css"]({width:100-i+"%"},{queue:!1,duration:r.animate}),"min"===o&&"vertical"===this.orientation&&this.range.stop(1,1)[h?"animate":"css"]({height:i+"%"},r.animate),"max"===o&&"vertical"===this.orientation&&this.range[h?"animate":"css"]({height:100-i+"%"},{queue:!1,duration:r.animate}))},_handleEvents:{keydown:function(i){var s,n,a,o,r=t(i.target).data("ui-slider-handle-index");switch(i.keyCode){case t.ui.keyCode.HOME:case t.ui.keyCode.END:case t.ui.keyCode.PAGE_UP:case t.ui.keyCode.PAGE_DOWN:case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(i.preventDefault(),!this._keySliding&&(this._keySliding=!0,t(i.target).addClass("ui-state-active"),s=this._start(i,r),s===!1))return}switch(o=this.options.step,n=a=this.options.values&&this.options.values.length?this.values(r):this.value(),i.keyCode){case t.ui.keyCode.HOME:a=this._valueMin();break;case t.ui.keyCode.END:a=this._valueMax();break;case t.ui.keyCode.PAGE_UP:a=this._trimAlignValue(n+(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.PAGE_DOWN:a=this._trimAlignValue(n-(this._valueMax()-this._valueMin())/e);break;case t.ui.keyCode.UP:case t.ui.keyCode.RIGHT:if(n===this._valueMax())return;a=this._trimAlignValue(n+o);break;case t.ui.keyCode.DOWN:case t.ui.keyCode.LEFT:if(n===this._valueMin())return;a=this._trimAlignValue(n-o)}this._slide(i,r,a)},click:function(t){t.preventDefault()},keyup:function(e){var i=t(e.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(e,i),this._change(e,i),t(e.target).removeClass("ui-state-active"))}}})})(jQuery);(function(t){function e(t){return function(){var e=this.element.val();t.apply(this,arguments),this._refresh(),e!==this.element.val()&&this._trigger("change")}}t.widget("ui.spinner",{version:"1.10.4",defaultElement:"",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),""!==this.value()&&this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var e={},i=this.element;return t.each(["min","max","step"],function(t,s){var n=i.attr(s);void 0!==n&&n.length&&(e[s]=n)}),e},_events:{keydown:function(t){this._start(t)&&this._keydown(t)&&t.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(t){return this.cancelBlur?(delete this.cancelBlur,void 0):(this._stop(),this._refresh(),this.previous!==this.element.val()&&this._trigger("change",t),void 0)},mousewheel:function(t,e){if(e){if(!this.spinning&&!this._start(t))return!1;this._spin((e>0?1:-1)*this.options.step,t),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(t)},100),t.preventDefault()}},"mousedown .ui-spinner-button":function(e){function i(){var t=this.element[0]===this.document[0].activeElement;t||(this.element.focus(),this.previous=s,this._delay(function(){this.previous=s}))}var s;s=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),e.preventDefault(),i.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,i.call(this)}),this._start(e)!==!1&&this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(e){return t(e.currentTarget).hasClass("ui-state-active")?this._start(e)===!1?!1:(this._repeat(null,t(e.currentTarget).hasClass("ui-spinner-up")?1:-1,e),void 0):void 0},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var t=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=t.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(.5*t.height())&&t.height()>0&&t.height(t.height()),this.options.disabled&&this.disable()},_keydown:function(e){var i=this.options,s=t.ui.keyCode;switch(e.keyCode){case s.UP:return this._repeat(null,1,e),!0;case s.DOWN:return this._repeat(null,-1,e),!0;case s.PAGE_UP:return this._repeat(null,i.page,e),!0;case s.PAGE_DOWN:return this._repeat(null,-i.page,e),!0}return!1},_uiSpinnerHtml:function(){return""},_buttonHtml:function(){return""+""+""+""+""},_start:function(t){return this.spinning||this._trigger("start",t)!==!1?(this.counter||(this.counter=1),this.spinning=!0,!0):!1},_repeat:function(t,e,i){t=t||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,e,i)},t),this._spin(e*this.options.step,i)},_spin:function(t,e){var i=this.value()||0;this.counter||(this.counter=1),i=this._adjustValue(i+t*this._increment(this.counter)),this.spinning&&this._trigger("spin",e,{value:i})===!1||(this._value(i),this.counter++)},_increment:function(e){var i=this.options.incremental;return i?t.isFunction(i)?i(e):Math.floor(e*e*e/5e4-e*e/500+17*e/200+1):1},_precision:function(){var t=this._precisionOf(this.options.step);return null!==this.options.min&&(t=Math.max(t,this._precisionOf(this.options.min))),t},_precisionOf:function(t){var e=""+t,i=e.indexOf(".");return-1===i?0:e.length-i-1},_adjustValue:function(t){var e,i,s=this.options;return e=null!==s.min?s.min:0,i=t-e,i=Math.round(i/s.step)*s.step,t=e+i,t=parseFloat(t.toFixed(this._precision())),null!==s.max&&t>s.max?s.max:null!==s.min&&s.min>t?s.min:t},_stop:function(t){this.spinning&&(clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",t))},_setOption:function(t,e){if("culture"===t||"numberFormat"===t){var i=this._parse(this.element.val());return this.options[t]=e,this.element.val(this._format(i)),void 0}("max"===t||"min"===t||"step"===t)&&"string"==typeof e&&(e=this._parse(e)),"icons"===t&&(this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(e.up),this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(e.down)),this._super(t,e),"disabled"===t&&(e?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:e(function(t){this._super(t),this._value(this.element.val())}),_parse:function(t){return"string"==typeof t&&""!==t&&(t=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(t,10,this.options.culture):+t),""===t||isNaN(t)?null:t},_format:function(t){return""===t?"":window.Globalize&&this.options.numberFormat?Globalize.format(t,this.options.numberFormat,this.options.culture):t},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(t,e){var i;""!==t&&(i=this._parse(t),null!==i&&(e||(i=this._adjustValue(i)),t=this._format(i))),this.element.val(t),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:e(function(t){this._stepUp(t)}),_stepUp:function(t){this._start()&&(this._spin((t||1)*this.options.step),this._stop())},stepDown:e(function(t){this._stepDown(t)}),_stepDown:function(t){this._start()&&(this._spin((t||1)*-this.options.step),this._stop())},pageUp:e(function(t){this._stepUp((t||1)*this.options.page)}),pageDown:e(function(t){this._stepDown((t||1)*this.options.page)}),value:function(t){return arguments.length?(e(this._value).call(this,t),void 0):this._parse(this.element.val())},widget:function(){return this.uiSpinner}})})(jQuery);(function(t,e){function i(){return++n}function s(t){return t=t.cloneNode(!1),t.hash.length>1&&decodeURIComponent(t.href.replace(a,""))===decodeURIComponent(location.href.replace(a,""))}var n=0,a=/#.*$/;t.widget("ui.tabs",{version:"1.10.4",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var e=this,i=this.options;this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",i.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(e){t(this).is(".ui-state-disabled")&&e.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){t(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs(),i.active=this._initialActive(),t.isArray(i.disabled)&&(i.disabled=t.unique(i.disabled.concat(t.map(this.tabs.filter(".ui-state-disabled"),function(t){return e.tabs.index(t)}))).sort()),this.active=this.options.active!==!1&&this.anchors.length?this._findActive(i.active):t(),this._refresh(),this.active.length&&this.load(i.active)},_initialActive:function(){var i=this.options.active,s=this.options.collapsible,n=location.hash.substring(1);return null===i&&(n&&this.tabs.each(function(s,a){return t(a).attr("aria-controls")===n?(i=s,!1):e}),null===i&&(i=this.tabs.index(this.tabs.filter(".ui-tabs-active"))),(null===i||-1===i)&&(i=this.tabs.length?0:!1)),i!==!1&&(i=this.tabs.index(this.tabs.eq(i)),-1===i&&(i=s?!1:0)),!s&&i===!1&&this.anchors.length&&(i=0),i},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):t()}},_tabKeydown:function(i){var s=t(this.document[0].activeElement).closest("li"),n=this.tabs.index(s),a=!0;if(!this._handlePageNav(i)){switch(i.keyCode){case t.ui.keyCode.RIGHT:case t.ui.keyCode.DOWN:n++;break;case t.ui.keyCode.UP:case t.ui.keyCode.LEFT:a=!1,n--;break;case t.ui.keyCode.END:n=this.anchors.length-1;break;case t.ui.keyCode.HOME:n=0;break;case t.ui.keyCode.SPACE:return i.preventDefault(),clearTimeout(this.activating),this._activate(n),e;case t.ui.keyCode.ENTER:return i.preventDefault(),clearTimeout(this.activating),this._activate(n===this.options.active?!1:n),e;default:return}i.preventDefault(),clearTimeout(this.activating),n=this._focusNextTab(n,a),i.ctrlKey||(s.attr("aria-selected","false"),this.tabs.eq(n).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",n)},this.delay))}},_panelKeydown:function(e){this._handlePageNav(e)||e.ctrlKey&&e.keyCode===t.ui.keyCode.UP&&(e.preventDefault(),this.active.focus())},_handlePageNav:function(i){return i.altKey&&i.keyCode===t.ui.keyCode.PAGE_UP?(this._activate(this._focusNextTab(this.options.active-1,!1)),!0):i.altKey&&i.keyCode===t.ui.keyCode.PAGE_DOWN?(this._activate(this._focusNextTab(this.options.active+1,!0)),!0):e},_findNextTab:function(e,i){function s(){return e>n&&(e=0),0>e&&(e=n),e}for(var n=this.tabs.length-1;-1!==t.inArray(s(),this.options.disabled);)e=i?e+1:e-1;return e},_focusNextTab:function(t,e){return t=this._findNextTab(t,e),this.tabs.eq(t).focus(),t},_setOption:function(t,i){return"active"===t?(this._activate(i),e):"disabled"===t?(this._setupDisabled(i),e):(this._super(t,i),"collapsible"===t&&(this.element.toggleClass("ui-tabs-collapsible",i),i||this.options.active!==!1||this._activate(0)),"event"===t&&this._setupEvents(i),"heightStyle"===t&&this._setupHeightStyle(i),e)},_tabId:function(t){return t.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(t){return t?t.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var e=this.options,i=this.tablist.children(":has(a[href])");e.disabled=t.map(i.filter(".ui-state-disabled"),function(t){return i.index(t)}),this._processTabs(),e.active!==!1&&this.anchors.length?this.active.length&&!t.contains(this.tablist[0],this.active[0])?this.tabs.length===e.disabled.length?(e.active=!1,this.active=t()):this._activate(this._findNextTab(Math.max(0,e.active-1),!1)):e.active=this.tabs.index(this.active):(e.active=!1,this.active=t()),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var e=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return t("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=t(),this.anchors.each(function(i,n){var a,o,r,h=t(n).uniqueId().attr("id"),l=t(n).closest("li"),c=l.attr("aria-controls");s(n)?(a=n.hash,o=e.element.find(e._sanitizeSelector(a))):(r=e._tabId(l),a="#"+r,o=e.element.find(a),o.length||(o=e._createPanel(r),o.insertAfter(e.panels[i-1]||e.tablist)),o.attr("aria-live","polite")),o.length&&(e.panels=e.panels.add(o)),c&&l.data("ui-tabs-aria-controls",c),l.attr({"aria-controls":a.substring(1),"aria-labelledby":h}),o.attr("aria-labelledby",h)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(e){return t("
      ").attr("id",e).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(e){t.isArray(e)&&(e.length?e.length===this.anchors.length&&(e=!0):e=!1);for(var i,s=0;i=this.tabs[s];s++)e===!0||-1!==t.inArray(s,e)?t(i).addClass("ui-state-disabled").attr("aria-disabled","true"):t(i).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=e},_setupEvents:function(e){var i={click:function(t){t.preventDefault()}};e&&t.each(e.split(" "),function(t,e){i[e]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,i),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(e){var i,s=this.element.parent();"fill"===e?(i=s.height(),i-=this.element.outerHeight()-this.element.height(),this.element.siblings(":visible").each(function(){var e=t(this),s=e.css("position");"absolute"!==s&&"fixed"!==s&&(i-=e.outerHeight(!0))}),this.element.children().not(this.panels).each(function(){i-=t(this).outerHeight(!0)}),this.panels.each(function(){t(this).height(Math.max(0,i-t(this).innerHeight()+t(this).height()))}).css("overflow","auto")):"auto"===e&&(i=0,this.panels.each(function(){i=Math.max(i,t(this).height("").height())}).height(i))},_eventHandler:function(e){var i=this.options,s=this.active,n=t(e.currentTarget),a=n.closest("li"),o=a[0]===s[0],r=o&&i.collapsible,h=r?t():this._getPanelForTab(a),l=s.length?this._getPanelForTab(s):t(),c={oldTab:s,oldPanel:l,newTab:r?t():a,newPanel:h};e.preventDefault(),a.hasClass("ui-state-disabled")||a.hasClass("ui-tabs-loading")||this.running||o&&!i.collapsible||this._trigger("beforeActivate",e,c)===!1||(i.active=r?!1:this.tabs.index(a),this.active=o?t():a,this.xhr&&this.xhr.abort(),l.length||h.length||t.error("jQuery UI Tabs: Mismatching fragment identifier."),h.length&&this.load(this.tabs.index(a),e),this._toggle(e,c))},_toggle:function(e,i){function s(){a.running=!1,a._trigger("activate",e,i)}function n(){i.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),o.length&&a.options.show?a._show(o,a.options.show,s):(o.show(),s())}var a=this,o=i.newPanel,r=i.oldPanel;this.running=!0,r.length&&this.options.hide?this._hide(r,this.options.hide,function(){i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),n()}):(i.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),r.hide(),n()),r.attr({"aria-expanded":"false","aria-hidden":"true"}),i.oldTab.attr("aria-selected","false"),o.length&&r.length?i.oldTab.attr("tabIndex",-1):o.length&&this.tabs.filter(function(){return 0===t(this).attr("tabIndex")}).attr("tabIndex",-1),o.attr({"aria-expanded":"true","aria-hidden":"false"}),i.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(e){var i,s=this._findActive(e);s[0]!==this.active[0]&&(s.length||(s=this.active),i=s.find(".ui-tabs-anchor")[0],this._eventHandler({target:i,currentTarget:i,preventDefault:t.noop}))},_findActive:function(e){return e===!1?t():this.tabs.eq(e)},_getIndex:function(t){return"string"==typeof t&&(t=this.anchors.index(this.anchors.filter("[href$='"+t+"']"))),t},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId(),this.tabs.add(this.panels).each(function(){t.data(this,"ui-tabs-destroy")?t(this).remove():t(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var e=t(this),i=e.data("ui-tabs-aria-controls");i?e.attr("aria-controls",i).removeData("ui-tabs-aria-controls"):e.removeAttr("aria-controls")}),this.panels.show(),"content"!==this.options.heightStyle&&this.panels.css("height","")},enable:function(i){var s=this.options.disabled;s!==!1&&(i===e?s=!1:(i=this._getIndex(i),s=t.isArray(s)?t.map(s,function(t){return t!==i?t:null}):t.map(this.tabs,function(t,e){return e!==i?e:null})),this._setupDisabled(s))},disable:function(i){var s=this.options.disabled;if(s!==!0){if(i===e)s=!0;else{if(i=this._getIndex(i),-1!==t.inArray(i,s))return;s=t.isArray(s)?t.merge([i],s).sort():[i]}this._setupDisabled(s)}},load:function(e,i){e=this._getIndex(e);var n=this,a=this.tabs.eq(e),o=a.find(".ui-tabs-anchor"),r=this._getPanelForTab(a),h={tab:a,panel:r};s(o[0])||(this.xhr=t.ajax(this._ajaxSettings(o,i,h)),this.xhr&&"canceled"!==this.xhr.statusText&&(a.addClass("ui-tabs-loading"),r.attr("aria-busy","true"),this.xhr.success(function(t){setTimeout(function(){r.html(t),n._trigger("load",i,h)},1)}).complete(function(t,e){setTimeout(function(){"abort"===e&&n.panels.stop(!1,!0),a.removeClass("ui-tabs-loading"),r.removeAttr("aria-busy"),t===n.xhr&&delete n.xhr},1)})))},_ajaxSettings:function(e,i,s){var n=this;return{url:e.attr("href"),beforeSend:function(e,a){return n._trigger("beforeLoad",i,t.extend({jqXHR:e,ajaxSettings:a},s))}}},_getPanelForTab:function(e){var i=t(e).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+i))}})})(jQuery);(function(t){function e(e,i){var s=(e.attr("aria-describedby")||"").split(/\s+/);s.push(i),e.data("ui-tooltip-id",i).attr("aria-describedby",t.trim(s.join(" ")))}function i(e){var i=e.data("ui-tooltip-id"),s=(e.attr("aria-describedby")||"").split(/\s+/),n=t.inArray(i,s);-1!==n&&s.splice(n,1),e.removeData("ui-tooltip-id"),s=t.trim(s.join(" ")),s?e.attr("aria-describedby",s):e.removeAttr("aria-describedby")}var s=0;t.widget("ui.tooltip",{version:"1.10.4",options:{content:function(){var e=t(this).attr("title")||"";return t("").text(e).html()},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(e,i){var s=this;return"disabled"===e?(this[i?"_disable":"_enable"](),this.options[e]=i,void 0):(this._super(e,i),"content"===e&&t.each(this.tooltips,function(t,e){s._updateContent(e)}),void 0)},_disable:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0)}),this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.is("[title]")&&e.data("ui-tooltip-title",e.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var e=t(this);e.data("ui-tooltip-title")&&e.attr("title",e.data("ui-tooltip-title"))})},open:function(e){var i=this,s=t(e?e.target:this.element).closest(this.options.items);s.length&&!s.data("ui-tooltip-id")&&(s.attr("title")&&s.data("ui-tooltip-title",s.attr("title")),s.data("ui-tooltip-open",!0),e&&"mouseover"===e.type&&s.parents().each(function(){var e,s=t(this);s.data("ui-tooltip-open")&&(e=t.Event("blur"),e.target=e.currentTarget=this,i.close(e,!0)),s.attr("title")&&(s.uniqueId(),i.parents[this.id]={element:this,title:s.attr("title")},s.attr("title",""))}),this._updateContent(s,e))},_updateContent:function(t,e){var i,s=this.options.content,n=this,o=e?e.type:null;return"string"==typeof s?this._open(e,t,s):(i=s.call(t[0],function(i){t.data("ui-tooltip-open")&&n._delay(function(){e&&(e.type=o),this._open(e,t,i)})}),i&&this._open(e,t,i),void 0)},_open:function(i,s,n){function o(t){l.of=t,a.is(":hidden")||a.position(l)}var a,r,h,l=t.extend({},this.options.position);if(n){if(a=this._find(s),a.length)return a.find(".ui-tooltip-content").html(n),void 0;s.is("[title]")&&(i&&"mouseover"===i.type?s.attr("title",""):s.removeAttr("title")),a=this._tooltip(s),e(s,a.attr("id")),a.find(".ui-tooltip-content").html(n),this.options.track&&i&&/^mouse/.test(i.type)?(this._on(this.document,{mousemove:o}),o(i)):a.position(t.extend({of:s},this.options.position)),a.hide(),this._show(a,this.options.show),this.options.show&&this.options.show.delay&&(h=this.delayedShow=setInterval(function(){a.is(":visible")&&(o(l.of),clearInterval(h))},t.fx.interval)),this._trigger("open",i,{tooltip:a}),r={keyup:function(e){if(e.keyCode===t.ui.keyCode.ESCAPE){var i=t.Event(e);i.currentTarget=s[0],this.close(i,!0)}},remove:function(){this._removeTooltip(a)}},i&&"mouseover"!==i.type||(r.mouseleave="close"),i&&"focusin"!==i.type||(r.focusout="close"),this._on(!0,s,r)}},close:function(e){var s=this,n=t(e?e.currentTarget:this.element),o=this._find(n);this.closing||(clearInterval(this.delayedShow),n.data("ui-tooltip-title")&&n.attr("title",n.data("ui-tooltip-title")),i(n),o.stop(!0),this._hide(o,this.options.hide,function(){s._removeTooltip(t(this))}),n.removeData("ui-tooltip-open"),this._off(n,"mouseleave focusout keyup"),n[0]!==this.element[0]&&this._off(n,"remove"),this._off(this.document,"mousemove"),e&&"mouseleave"===e.type&&t.each(this.parents,function(e,i){t(i.element).attr("title",i.title),delete s.parents[e]}),this.closing=!0,this._trigger("close",e,{tooltip:o}),this.closing=!1)},_tooltip:function(e){var i="ui-tooltip-"+s++,n=t("
      ").attr({id:i,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return t("
      ").addClass("ui-tooltip-content").appendTo(n),n.appendTo(this.document[0].body),this.tooltips[i]=e,n},_find:function(e){var i=e.data("ui-tooltip-id");return i?t("#"+i):t()},_removeTooltip:function(t){t.remove(),delete this.tooltips[t.attr("id")]},_destroy:function(){var e=this;t.each(this.tooltips,function(i,s){var n=t.Event("blur");n.target=n.currentTarget=s[0],e.close(n,!0),t("#"+i).remove(),s.data("ui-tooltip-title")&&(s.attr("title",s.data("ui-tooltip-title")),s.removeData("ui-tooltip-title"))})}})})(jQuery);(function(t,e){var i="ui-effects-";t.effects={effect:{}},function(t,e){function i(t,e,i){var s=u[e.type]||{};return null==t?i||!e.def?null:e.def:(t=s.floor?~~t:parseFloat(t),isNaN(t)?e.def:s.mod?(t+s.mod)%s.mod:0>t?0:t>s.max?s.max:t)}function s(i){var s=h(),n=s._rgba=[];return i=i.toLowerCase(),f(l,function(t,a){var o,r=a.re.exec(i),l=r&&a.parse(r),h=a.space||"rgba";return l?(o=s[h](l),s[c[h].cache]=o[c[h].cache],n=s._rgba=o._rgba,!1):e}),n.length?("0,0,0,0"===n.join()&&t.extend(n,a.transparent),s):a[i]}function n(t,e,i){return i=(i+1)%1,1>6*i?t+6*(e-t)*i:1>2*i?e:2>3*i?t+6*(e-t)*(2/3-i):t}var a,o="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",r=/^([\-+])=\s*(\d+\.?\d*)/,l=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[t[1],t[2],t[3],t[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(t){return[2.55*t[1],2.55*t[2],2.55*t[3],t[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(t){return[parseInt(t[1],16),parseInt(t[2],16),parseInt(t[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(t){return[parseInt(t[1]+t[1],16),parseInt(t[2]+t[2],16),parseInt(t[3]+t[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(t){return[t[1],t[2]/100,t[3]/100,t[4]]}}],h=t.Color=function(e,i,s,n){return new t.Color.fn.parse(e,i,s,n)},c={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},u={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},d=h.support={},p=t("

      ")[0],f=t.each;p.style.cssText="background-color:rgba(1,1,1,.5)",d.rgba=p.style.backgroundColor.indexOf("rgba")>-1,f(c,function(t,e){e.cache="_"+t,e.props.alpha={idx:3,type:"percent",def:1}}),h.fn=t.extend(h.prototype,{parse:function(n,o,r,l){if(n===e)return this._rgba=[null,null,null,null],this;(n.jquery||n.nodeType)&&(n=t(n).css(o),o=e);var u=this,d=t.type(n),p=this._rgba=[];return o!==e&&(n=[n,o,r,l],d="array"),"string"===d?this.parse(s(n)||a._default):"array"===d?(f(c.rgba.props,function(t,e){p[e.idx]=i(n[e.idx],e)}),this):"object"===d?(n instanceof h?f(c,function(t,e){n[e.cache]&&(u[e.cache]=n[e.cache].slice())}):f(c,function(e,s){var a=s.cache;f(s.props,function(t,e){if(!u[a]&&s.to){if("alpha"===t||null==n[t])return;u[a]=s.to(u._rgba)}u[a][e.idx]=i(n[t],e,!0)}),u[a]&&0>t.inArray(null,u[a].slice(0,3))&&(u[a][3]=1,s.from&&(u._rgba=s.from(u[a])))}),this):e},is:function(t){var i=h(t),s=!0,n=this;return f(c,function(t,a){var o,r=i[a.cache];return r&&(o=n[a.cache]||a.to&&a.to(n._rgba)||[],f(a.props,function(t,i){return null!=r[i.idx]?s=r[i.idx]===o[i.idx]:e})),s}),s},_space:function(){var t=[],e=this;return f(c,function(i,s){e[s.cache]&&t.push(i)}),t.pop()},transition:function(t,e){var s=h(t),n=s._space(),a=c[n],o=0===this.alpha()?h("transparent"):this,r=o[a.cache]||a.to(o._rgba),l=r.slice();return s=s[a.cache],f(a.props,function(t,n){var a=n.idx,o=r[a],h=s[a],c=u[n.type]||{};null!==h&&(null===o?l[a]=h:(c.mod&&(h-o>c.mod/2?o+=c.mod:o-h>c.mod/2&&(o-=c.mod)),l[a]=i((h-o)*e+o,n)))}),this[n](l)},blend:function(e){if(1===this._rgba[3])return this;var i=this._rgba.slice(),s=i.pop(),n=h(e)._rgba;return h(t.map(i,function(t,e){return(1-s)*n[e]+s*t}))},toRgbaString:function(){var e="rgba(",i=t.map(this._rgba,function(t,e){return null==t?e>2?1:0:t});return 1===i[3]&&(i.pop(),e="rgb("),e+i.join()+")"},toHslaString:function(){var e="hsla(",i=t.map(this.hsla(),function(t,e){return null==t&&(t=e>2?1:0),e&&3>e&&(t=Math.round(100*t)+"%"),t});return 1===i[3]&&(i.pop(),e="hsl("),e+i.join()+")"},toHexString:function(e){var i=this._rgba.slice(),s=i.pop();return e&&i.push(~~(255*s)),"#"+t.map(i,function(t){return t=(t||0).toString(16),1===t.length?"0"+t:t}).join("")},toString:function(){return 0===this._rgba[3]?"transparent":this.toRgbaString()}}),h.fn.parse.prototype=h.fn,c.hsla.to=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e,i,s=t[0]/255,n=t[1]/255,a=t[2]/255,o=t[3],r=Math.max(s,n,a),l=Math.min(s,n,a),h=r-l,c=r+l,u=.5*c;return e=l===r?0:s===r?60*(n-a)/h+360:n===r?60*(a-s)/h+120:60*(s-n)/h+240,i=0===h?0:.5>=u?h/c:h/(2-c),[Math.round(e)%360,i,u,null==o?1:o]},c.hsla.from=function(t){if(null==t[0]||null==t[1]||null==t[2])return[null,null,null,t[3]];var e=t[0]/360,i=t[1],s=t[2],a=t[3],o=.5>=s?s*(1+i):s+i-s*i,r=2*s-o;return[Math.round(255*n(r,o,e+1/3)),Math.round(255*n(r,o,e)),Math.round(255*n(r,o,e-1/3)),a]},f(c,function(s,n){var a=n.props,o=n.cache,l=n.to,c=n.from;h.fn[s]=function(s){if(l&&!this[o]&&(this[o]=l(this._rgba)),s===e)return this[o].slice();var n,r=t.type(s),u="array"===r||"object"===r?s:arguments,d=this[o].slice();return f(a,function(t,e){var s=u["object"===r?t:e.idx];null==s&&(s=d[e.idx]),d[e.idx]=i(s,e)}),c?(n=h(c(d)),n[o]=d,n):h(d)},f(a,function(e,i){h.fn[e]||(h.fn[e]=function(n){var a,o=t.type(n),l="alpha"===e?this._hsla?"hsla":"rgba":s,h=this[l](),c=h[i.idx];return"undefined"===o?c:("function"===o&&(n=n.call(this,c),o=t.type(n)),null==n&&i.empty?this:("string"===o&&(a=r.exec(n),a&&(n=c+parseFloat(a[2])*("+"===a[1]?1:-1))),h[i.idx]=n,this[l](h)))})})}),h.hook=function(e){var i=e.split(" ");f(i,function(e,i){t.cssHooks[i]={set:function(e,n){var a,o,r="";if("transparent"!==n&&("string"!==t.type(n)||(a=s(n)))){if(n=h(a||n),!d.rgba&&1!==n._rgba[3]){for(o="backgroundColor"===i?e.parentNode:e;(""===r||"transparent"===r)&&o&&o.style;)try{r=t.css(o,"backgroundColor"),o=o.parentNode}catch(l){}n=n.blend(r&&"transparent"!==r?r:"_default")}n=n.toRgbaString()}try{e.style[i]=n}catch(l){}}},t.fx.step[i]=function(e){e.colorInit||(e.start=h(e.elem,i),e.end=h(e.end),e.colorInit=!0),t.cssHooks[i].set(e.elem,e.start.transition(e.end,e.pos))}})},h.hook(o),t.cssHooks.borderColor={expand:function(t){var e={};return f(["Top","Right","Bottom","Left"],function(i,s){e["border"+s+"Color"]=t}),e}},a=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(e){var i,s,n=e.ownerDocument.defaultView?e.ownerDocument.defaultView.getComputedStyle(e,null):e.currentStyle,a={};if(n&&n.length&&n[0]&&n[n[0]])for(s=n.length;s--;)i=n[s],"string"==typeof n[i]&&(a[t.camelCase(i)]=n[i]);else for(i in n)"string"==typeof n[i]&&(a[i]=n[i]);return a}function s(e,i){var s,n,o={};for(s in i)n=i[s],e[s]!==n&&(a[s]||(t.fx.step[s]||!isNaN(parseFloat(n)))&&(o[s]=n));return o}var n=["add","remove","toggle"],a={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};t.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(e,i){t.fx.step[i]=function(t){("none"!==t.end&&!t.setAttr||1===t.pos&&!t.setAttr)&&(jQuery.style(t.elem,i,t.end),t.setAttr=!0)}}),t.fn.addBack||(t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.effects.animateClass=function(e,a,o,r){var l=t.speed(a,o,r);return this.queue(function(){var a,o=t(this),r=o.attr("class")||"",h=l.children?o.find("*").addBack():o;h=h.map(function(){var e=t(this);return{el:e,start:i(this)}}),a=function(){t.each(n,function(t,i){e[i]&&o[i+"Class"](e[i])})},a(),h=h.map(function(){return this.end=i(this.el[0]),this.diff=s(this.start,this.end),this}),o.attr("class",r),h=h.map(function(){var e=this,i=t.Deferred(),s=t.extend({},l,{queue:!1,complete:function(){i.resolve(e)}});return this.el.animate(this.diff,s),i.promise()}),t.when.apply(t,h.get()).done(function(){a(),t.each(arguments,function(){var e=this.el;t.each(this.diff,function(t){e.css(t,"")})}),l.complete.call(o[0])})})},t.fn.extend({addClass:function(e){return function(i,s,n,a){return s?t.effects.animateClass.call(this,{add:i},s,n,a):e.apply(this,arguments)}}(t.fn.addClass),removeClass:function(e){return function(i,s,n,a){return arguments.length>1?t.effects.animateClass.call(this,{remove:i},s,n,a):e.apply(this,arguments)}}(t.fn.removeClass),toggleClass:function(i){return function(s,n,a,o,r){return"boolean"==typeof n||n===e?a?t.effects.animateClass.call(this,n?{add:s}:{remove:s},a,o,r):i.apply(this,arguments):t.effects.animateClass.call(this,{toggle:s},n,a,o)}}(t.fn.toggleClass),switchClass:function(e,i,s,n,a){return t.effects.animateClass.call(this,{add:i,remove:e},s,n,a)}})}(),function(){function s(e,i,s,n){return t.isPlainObject(e)&&(i=e,e=e.effect),e={effect:e},null==i&&(i={}),t.isFunction(i)&&(n=i,s=null,i={}),("number"==typeof i||t.fx.speeds[i])&&(n=s,s=i,i={}),t.isFunction(s)&&(n=s,s=null),i&&t.extend(e,i),s=s||i.duration,e.duration=t.fx.off?0:"number"==typeof s?s:s in t.fx.speeds?t.fx.speeds[s]:t.fx.speeds._default,e.complete=n||i.complete,e}function n(e){return!e||"number"==typeof e||t.fx.speeds[e]?!0:"string"!=typeof e||t.effects.effect[e]?t.isFunction(e)?!0:"object"!=typeof e||e.effect?!1:!0:!0}t.extend(t.effects,{version:"1.10.4",save:function(t,e){for(var s=0;e.length>s;s++)null!==e[s]&&t.data(i+e[s],t[0].style[e[s]])},restore:function(t,s){var n,a;for(a=0;s.length>a;a++)null!==s[a]&&(n=t.data(i+s[a]),n===e&&(n=""),t.css(s[a],n))},setMode:function(t,e){return"toggle"===e&&(e=t.is(":hidden")?"show":"hide"),e},getBaseline:function(t,e){var i,s;switch(t[0]){case"top":i=0;break;case"middle":i=.5;break;case"bottom":i=1;break;default:i=t[0]/e.height}switch(t[1]){case"left":s=0;break;case"center":s=.5;break;case"right":s=1;break;default:s=t[1]/e.width}return{x:s,y:i}},createWrapper:function(e){if(e.parent().is(".ui-effects-wrapper"))return e.parent();var i={width:e.outerWidth(!0),height:e.outerHeight(!0),"float":e.css("float")},s=t("

      ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),n={width:e.width(),height:e.height()},a=document.activeElement;try{a.id}catch(o){a=document.body}return e.wrap(s),(e[0]===a||t.contains(e[0],a))&&t(a).focus(),s=e.parent(),"static"===e.css("position")?(s.css({position:"relative"}),e.css({position:"relative"})):(t.extend(i,{position:e.css("position"),zIndex:e.css("z-index")}),t.each(["top","left","bottom","right"],function(t,s){i[s]=e.css(s),isNaN(parseInt(i[s],10))&&(i[s]="auto")}),e.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),e.css(n),s.css(i).show()},removeWrapper:function(e){var i=document.activeElement;return e.parent().is(".ui-effects-wrapper")&&(e.parent().replaceWith(e),(e[0]===i||t.contains(e[0],i))&&t(i).focus()),e},setTransition:function(e,i,s,n){return n=n||{},t.each(i,function(t,i){var a=e.cssUnit(i);a[0]>0&&(n[i]=a[0]*s+a[1])}),n}}),t.fn.extend({effect:function(){function e(e){function s(){t.isFunction(a)&&a.call(n[0]),t.isFunction(e)&&e()}var n=t(this),a=i.complete,r=i.mode;(n.is(":hidden")?"hide"===r:"show"===r)?(n[r](),s()):o.call(n[0],i,s)}var i=s.apply(this,arguments),n=i.mode,a=i.queue,o=t.effects.effect[i.effect];return t.fx.off||!o?n?this[n](i.duration,i.complete):this.each(function(){i.complete&&i.complete.call(this)}):a===!1?this.each(e):this.queue(a||"fx",e)},show:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="show",this.effect.call(this,i)}}(t.fn.show),hide:function(t){return function(e){if(n(e))return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="hide",this.effect.call(this,i)}}(t.fn.hide),toggle:function(t){return function(e){if(n(e)||"boolean"==typeof e)return t.apply(this,arguments);var i=s.apply(this,arguments);return i.mode="toggle",this.effect.call(this,i)}}(t.fn.toggle),cssUnit:function(e){var i=this.css(e),s=[];return t.each(["em","px","%","pt"],function(t,e){i.indexOf(e)>0&&(s=[parseFloat(i),e])}),s}})}(),function(){var e={};t.each(["Quad","Cubic","Quart","Quint","Expo"],function(t,i){e[i]=function(e){return Math.pow(e,t+2)}}),t.extend(e,{Sine:function(t){return 1-Math.cos(t*Math.PI/2)},Circ:function(t){return 1-Math.sqrt(1-t*t)},Elastic:function(t){return 0===t||1===t?t:-Math.pow(2,8*(t-1))*Math.sin((80*(t-1)-7.5)*Math.PI/15)},Back:function(t){return t*t*(3*t-2)},Bounce:function(t){for(var e,i=4;((e=Math.pow(2,--i))-1)/11>t;);return 1/Math.pow(4,3-i)-7.5625*Math.pow((3*e-2)/22-t,2)}}),t.each(e,function(e,i){t.easing["easeIn"+e]=i,t.easing["easeOut"+e]=function(t){return 1-i(1-t)},t.easing["easeInOut"+e]=function(t){return.5>t?i(2*t)/2:1-i(-2*t+2)/2}})}()})(jQuery);(function(t){var e=/up|down|vertical/,i=/up|left|vertical|horizontal/;t.effects.effect.blind=function(s,n){var a,o,r,l=t(this),h=["position","top","bottom","left","right","height","width"],c=t.effects.setMode(l,s.mode||"hide"),u=s.direction||"up",d=e.test(u),p=d?"height":"width",f=d?"top":"left",g=i.test(u),m={},v="show"===c;l.parent().is(".ui-effects-wrapper")?t.effects.save(l.parent(),h):t.effects.save(l,h),l.show(),a=t.effects.createWrapper(l).css({overflow:"hidden"}),o=a[p](),r=parseFloat(a.css(f))||0,m[p]=v?o:0,g||(l.css(d?"bottom":"right",0).css(d?"top":"left","auto").css({position:"absolute"}),m[f]=v?r:o+r),v&&(a.css(p,0),g||a.css(f,r+o)),a.animate(m,{duration:s.duration,easing:s.easing,queue:!1,complete:function(){"hide"===c&&l.hide(),t.effects.restore(l,h),t.effects.removeWrapper(l),n()}})}})(jQuery);(function(t){t.effects.effect.bounce=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"effect"),h="hide"===l,c="show"===l,u=e.direction||"up",d=e.distance,p=e.times||5,f=2*p+(c||h?1:0),g=e.duration/f,m=e.easing,v="up"===u||"down"===u?"top":"left",_="up"===u||"left"===u,b=o.queue(),y=b.length;for((c||h)&&r.push("opacity"),t.effects.save(o,r),o.show(),t.effects.createWrapper(o),d||(d=o["top"===v?"outerHeight":"outerWidth"]()/3),c&&(a={opacity:1},a[v]=0,o.css("opacity",0).css(v,_?2*-d:2*d).animate(a,g,m)),h&&(d/=Math.pow(2,p-1)),a={},a[v]=0,s=0;p>s;s++)n={},n[v]=(_?"-=":"+=")+d,o.animate(n,g,m).animate(a,g,m),d=h?2*d:d/2;h&&(n={opacity:0},n[v]=(_?"-=":"+=")+d,o.animate(n,g,m)),o.queue(function(){h&&o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}),y>1&&b.splice.apply(b,[1,0].concat(b.splice(y,f+1))),o.dequeue()}})(jQuery);(function(t){t.effects.effect.clip=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","height","width"],l=t.effects.setMode(o,e.mode||"hide"),h="show"===l,c=e.direction||"vertical",u="vertical"===c,d=u?"height":"width",p=u?"top":"left",f={};t.effects.save(o,r),o.show(),s=t.effects.createWrapper(o).css({overflow:"hidden"}),n="IMG"===o[0].tagName?s:o,a=n[d](),h&&(n.css(d,0),n.css(p,a/2)),f[d]=h?a:0,f[p]=h?0:a/2,n.animate(f,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){h||o.hide(),t.effects.restore(o,r),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.drop=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","opacity","height","width"],o=t.effects.setMode(n,e.mode||"hide"),r="show"===o,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l?"pos":"neg",u={opacity:r?1:0};t.effects.save(n,a),n.show(),t.effects.createWrapper(n),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0)/2,r&&n.css("opacity",0).css(h,"pos"===c?-s:s),u[h]=(r?"pos"===c?"+=":"-=":"pos"===c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.explode=function(e,i){function s(){b.push(this),b.length===u*d&&n()}function n(){p.css({visibility:"visible"}),t(b).remove(),g||p.hide(),i()}var a,o,r,l,h,c,u=e.pieces?Math.round(Math.sqrt(e.pieces)):3,d=u,p=t(this),f=t.effects.setMode(p,e.mode||"hide"),g="show"===f,m=p.show().css("visibility","hidden").offset(),v=Math.ceil(p.outerWidth()/d),_=Math.ceil(p.outerHeight()/u),b=[];for(a=0;u>a;a++)for(l=m.top+a*_,c=a-(u-1)/2,o=0;d>o;o++)r=m.left+o*v,h=o-(d-1)/2,p.clone().appendTo("body").wrap("
      ").css({position:"absolute",visibility:"visible",left:-o*v,top:-a*_}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:v,height:_,left:r+(g?h*v:0),top:l+(g?c*_:0),opacity:g?0:1}).animate({left:r+(g?0:h*v),top:l+(g?0:c*_),opacity:g?1:0},e.duration||500,e.easing,s)}})(jQuery);(function(t){t.effects.effect.fade=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"toggle");s.animate({opacity:n},{queue:!1,duration:e.duration,easing:e.easing,complete:i})}})(jQuery);(function(t){t.effects.effect.fold=function(e,i){var s,n,a=t(this),o=["position","top","bottom","left","right","height","width"],r=t.effects.setMode(a,e.mode||"hide"),l="show"===r,h="hide"===r,c=e.size||15,u=/([0-9]+)%/.exec(c),d=!!e.horizFirst,p=l!==d,f=p?["width","height"]:["height","width"],g=e.duration/2,m={},v={};t.effects.save(a,o),a.show(),s=t.effects.createWrapper(a).css({overflow:"hidden"}),n=p?[s.width(),s.height()]:[s.height(),s.width()],u&&(c=parseInt(u[1],10)/100*n[h?0:1]),l&&s.css(d?{height:0,width:c}:{height:c,width:0}),m[f[0]]=l?n[0]:c,v[f[1]]=l?n[1]:0,s.animate(m,g,e.easing).animate(v,g,e.easing,function(){h&&a.hide(),t.effects.restore(a,o),t.effects.removeWrapper(a),i()})}})(jQuery);(function(t){t.effects.effect.highlight=function(e,i){var s=t(this),n=["backgroundImage","backgroundColor","opacity"],a=t.effects.setMode(s,e.mode||"show"),o={backgroundColor:s.css("backgroundColor")};"hide"===a&&(o.opacity=0),t.effects.save(s,n),s.show().css({backgroundImage:"none",backgroundColor:e.color||"#ffff99"}).animate(o,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===a&&s.hide(),t.effects.restore(s,n),i()}})}})(jQuery);(function(t){t.effects.effect.pulsate=function(e,i){var s,n=t(this),a=t.effects.setMode(n,e.mode||"show"),o="show"===a,r="hide"===a,l=o||"hide"===a,h=2*(e.times||5)+(l?1:0),c=e.duration/h,u=0,d=n.queue(),p=d.length;for((o||!n.is(":visible"))&&(n.css("opacity",0).show(),u=1),s=1;h>s;s++)n.animate({opacity:u},c,e.easing),u=1-u;n.animate({opacity:u},c,e.easing),n.queue(function(){r&&n.hide(),i()}),p>1&&d.splice.apply(d,[1,0].concat(d.splice(p,h+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.puff=function(e,i){var s=t(this),n=t.effects.setMode(s,e.mode||"hide"),a="hide"===n,o=parseInt(e.percent,10)||150,r=o/100,l={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()};t.extend(e,{effect:"scale",queue:!1,fade:!0,mode:n,complete:i,percent:a?o:100,from:a?l:{height:l.height*r,width:l.width*r,outerHeight:l.outerHeight*r,outerWidth:l.outerWidth*r}}),s.effect(e)},t.effects.effect.scale=function(e,i){var s=t(this),n=t.extend(!0,{},e),a=t.effects.setMode(s,e.mode||"effect"),o=parseInt(e.percent,10)||(0===parseInt(e.percent,10)?0:"hide"===a?0:100),r=e.direction||"both",l=e.origin,h={height:s.height(),width:s.width(),outerHeight:s.outerHeight(),outerWidth:s.outerWidth()},c={y:"horizontal"!==r?o/100:1,x:"vertical"!==r?o/100:1};n.effect="size",n.queue=!1,n.complete=i,"effect"!==a&&(n.origin=l||["middle","center"],n.restore=!0),n.from=e.from||("show"===a?{height:0,width:0,outerHeight:0,outerWidth:0}:h),n.to={height:h.height*c.y,width:h.width*c.x,outerHeight:h.outerHeight*c.y,outerWidth:h.outerWidth*c.x},n.fade&&("show"===a&&(n.from.opacity=0,n.to.opacity=1),"hide"===a&&(n.from.opacity=1,n.to.opacity=0)),s.effect(n)},t.effects.effect.size=function(e,i){var s,n,a,o=t(this),r=["position","top","bottom","left","right","width","height","overflow","opacity"],l=["position","top","bottom","left","right","overflow","opacity"],h=["width","height","overflow"],c=["fontSize"],u=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],d=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=t.effects.setMode(o,e.mode||"effect"),f=e.restore||"effect"!==p,g=e.scale||"both",m=e.origin||["middle","center"],v=o.css("position"),_=f?r:l,b={height:0,width:0,outerHeight:0,outerWidth:0};"show"===p&&o.show(),s={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},"toggle"===e.mode&&"show"===p?(o.from=e.to||b,o.to=e.from||s):(o.from=e.from||("show"===p?b:s),o.to=e.to||("hide"===p?b:s)),a={from:{y:o.from.height/s.height,x:o.from.width/s.width},to:{y:o.to.height/s.height,x:o.to.width/s.width}},("box"===g||"both"===g)&&(a.from.y!==a.to.y&&(_=_.concat(u),o.from=t.effects.setTransition(o,u,a.from.y,o.from),o.to=t.effects.setTransition(o,u,a.to.y,o.to)),a.from.x!==a.to.x&&(_=_.concat(d),o.from=t.effects.setTransition(o,d,a.from.x,o.from),o.to=t.effects.setTransition(o,d,a.to.x,o.to))),("content"===g||"both"===g)&&a.from.y!==a.to.y&&(_=_.concat(c).concat(h),o.from=t.effects.setTransition(o,c,a.from.y,o.from),o.to=t.effects.setTransition(o,c,a.to.y,o.to)),t.effects.save(o,_),o.show(),t.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(n=t.effects.getBaseline(m,s),o.from.top=(s.outerHeight-o.outerHeight())*n.y,o.from.left=(s.outerWidth-o.outerWidth())*n.x,o.to.top=(s.outerHeight-o.to.outerHeight)*n.y,o.to.left=(s.outerWidth-o.to.outerWidth)*n.x),o.css(o.from),("content"===g||"both"===g)&&(u=u.concat(["marginTop","marginBottom"]).concat(c),d=d.concat(["marginLeft","marginRight"]),h=r.concat(u).concat(d),o.find("*[width]").each(function(){var i=t(this),s={height:i.height(),width:i.width(),outerHeight:i.outerHeight(),outerWidth:i.outerWidth()};f&&t.effects.save(i,h),i.from={height:s.height*a.from.y,width:s.width*a.from.x,outerHeight:s.outerHeight*a.from.y,outerWidth:s.outerWidth*a.from.x},i.to={height:s.height*a.to.y,width:s.width*a.to.x,outerHeight:s.height*a.to.y,outerWidth:s.width*a.to.x},a.from.y!==a.to.y&&(i.from=t.effects.setTransition(i,u,a.from.y,i.from),i.to=t.effects.setTransition(i,u,a.to.y,i.to)),a.from.x!==a.to.x&&(i.from=t.effects.setTransition(i,d,a.from.x,i.from),i.to=t.effects.setTransition(i,d,a.to.x,i.to)),i.css(i.from),i.animate(i.to,e.duration,e.easing,function(){f&&t.effects.restore(i,h)})})),o.animate(o.to,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){0===o.to.opacity&&o.css("opacity",o.from.opacity),"hide"===p&&o.hide(),t.effects.restore(o,_),f||("static"===v?o.css({position:"relative",top:o.to.top,left:o.to.left}):t.each(["top","left"],function(t,e){o.css(e,function(e,i){var s=parseInt(i,10),n=t?o.to.left:o.to.top;return"auto"===i?n+"px":s+n+"px"})})),t.effects.removeWrapper(o),i()}})}})(jQuery);(function(t){t.effects.effect.shake=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","height","width"],o=t.effects.setMode(n,e.mode||"effect"),r=e.direction||"left",l=e.distance||20,h=e.times||3,c=2*h+1,u=Math.round(e.duration/c),d="up"===r||"down"===r?"top":"left",p="up"===r||"left"===r,f={},g={},m={},v=n.queue(),_=v.length;for(t.effects.save(n,a),n.show(),t.effects.createWrapper(n),f[d]=(p?"-=":"+=")+l,g[d]=(p?"+=":"-=")+2*l,m[d]=(p?"-=":"+=")+2*l,n.animate(f,u,e.easing),s=1;h>s;s++)n.animate(g,u,e.easing).animate(m,u,e.easing);n.animate(g,u,e.easing).animate(f,u/2,e.easing).queue(function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}),_>1&&v.splice.apply(v,[1,0].concat(v.splice(_,c+1))),n.dequeue()}})(jQuery);(function(t){t.effects.effect.slide=function(e,i){var s,n=t(this),a=["position","top","bottom","left","right","width","height"],o=t.effects.setMode(n,e.mode||"show"),r="show"===o,l=e.direction||"left",h="up"===l||"down"===l?"top":"left",c="up"===l||"left"===l,u={};t.effects.save(n,a),n.show(),s=e.distance||n["top"===h?"outerHeight":"outerWidth"](!0),t.effects.createWrapper(n).css({overflow:"hidden"}),r&&n.css(h,c?isNaN(s)?"-"+s:-s:s),u[h]=(r?c?"+=":"-=":c?"-=":"+=")+s,n.animate(u,{queue:!1,duration:e.duration,easing:e.easing,complete:function(){"hide"===o&&n.hide(),t.effects.restore(n,a),t.effects.removeWrapper(n),i()}})}})(jQuery);(function(t){t.effects.effect.transfer=function(e,i){var s=t(this),n=t(e.to),a="fixed"===n.css("position"),o=t("body"),r=a?o.scrollTop():0,l=a?o.scrollLeft():0,h=n.offset(),c={top:h.top-r,left:h.left-l,height:n.innerHeight(),width:n.innerWidth()},u=s.offset(),d=t("
      ").appendTo(document.body).addClass(e.className).css({top:u.top-r,left:u.left-l,height:s.innerHeight(),width:s.innerWidth(),position:a?"fixed":"absolute"}).animate(c,e.duration,e.easing,function(){d.remove(),i()})}})(jQuery); \ No newline at end of file diff --git a/themes/greydragon/js/jquery.cycle.js b/themes/greydragon/js/jquery.cycle.js new file mode 100755 index 0000000..dc474ea --- /dev/null +++ b/themes/greydragon/js/jquery.cycle.js @@ -0,0 +1,1543 @@ +/*! + * jQuery Cycle Plugin (with Transition Definitions) + * Examples and documentation at: http://jquery.malsup.com/cycle/ + * Copyright (c) 2007-2013 M. Alsup + * Version: 3.0.3 (11-JUL-2013) + * Dual licensed under the MIT and GPL licenses. + * http://jquery.malsup.com/license.html + * Requires: jQuery v1.7.1 or later + */ +;(function($, undefined) { +"use strict"; + +var ver = '3.0.3'; + +function debug(s) { + if ($.fn.cycle.debug) + log(s); +} +function log() { + /*global console */ + if (window.console && console.log) + console.log('[cycle] ' + Array.prototype.join.call(arguments,' ')); +} +$.expr[':'].paused = function(el) { + return el.cyclePause; +}; + + +// the options arg can be... +// a number - indicates an immediate transition should occur to the given slide index +// a string - 'pause', 'resume', 'toggle', 'next', 'prev', 'stop', 'destroy' or the name of a transition effect (ie, 'fade', 'zoom', etc) +// an object - properties to control the slideshow +// +// the arg2 arg can be... +// the name of an fx (only used in conjunction with a numeric value for 'options') +// the value true (only used in first arg == 'resume') and indicates +// that the resume should occur immediately (not wait for next timeout) + +$.fn.cycle = function(options, arg2) { + var o = { s: this.selector, c: this.context }; + + // in 1.3+ we can fix mistakes with the ready state + if (this.length === 0 && options != 'stop') { + if (!$.isReady && o.s) { + log('DOM not ready, queuing slideshow'); + $(function() { + $(o.s,o.c).cycle(options,arg2); + }); + return this; + } + // is your DOM ready? http://docs.jquery.com/Tutorials:Introducing_$(document).ready() + log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)')); + return this; + } + + // iterate the matched nodeset + return this.each(function() { + var opts = handleArguments(this, options, arg2); + if (opts === false) + return; + + opts.updateActivePagerLink = opts.updateActivePagerLink || $.fn.cycle.updateActivePagerLink; + + // stop existing slideshow for this container (if there is one) + if (this.cycleTimeout) + clearTimeout(this.cycleTimeout); + this.cycleTimeout = this.cyclePause = 0; + this.cycleStop = 0; // issue #108 + + var $cont = $(this); + var $slides = opts.slideExpr ? $(opts.slideExpr, this) : $cont.children(); + var els = $slides.get(); + + if (els.length < 2) { + log('terminating; too few slides: ' + els.length); + return; + } + + var opts2 = buildOptions($cont, $slides, els, opts, o); + if (opts2 === false) + return; + + var startTime = opts2.continuous ? 10 : getTimeout(els[opts2.currSlide], els[opts2.nextSlide], opts2, !opts2.backwards); + + // if it's an auto slideshow, kick it off + if (startTime) { + startTime += (opts2.delay || 0); + if (startTime < 10) + startTime = 10; + debug('first timeout: ' + startTime); + this.cycleTimeout = setTimeout(function(){go(els,opts2,0,!opts.backwards);}, startTime); + } + }); +}; + +function triggerPause(cont, byHover, onPager) { + var opts = $(cont).data('cycle.opts'); + if (!opts) + return; + var paused = !!cont.cyclePause; + if (paused && opts.paused) + opts.paused(cont, opts, byHover, onPager); + else if (!paused && opts.resumed) + opts.resumed(cont, opts, byHover, onPager); +} + +// process the args that were passed to the plugin fn +function handleArguments(cont, options, arg2) { + if (cont.cycleStop === undefined) + cont.cycleStop = 0; + if (options === undefined || options === null) + options = {}; + if (options.constructor == String) { + switch(options) { + case 'destroy': + case 'stop': + var opts = $(cont).data('cycle.opts'); + if (!opts) + return false; + cont.cycleStop++; // callbacks look for change + if (cont.cycleTimeout) + clearTimeout(cont.cycleTimeout); + cont.cycleTimeout = 0; + if (opts.elements) + $(opts.elements).stop(); + $(cont).removeData('cycle.opts'); + if (options == 'destroy') + destroy(cont, opts); + return false; + case 'toggle': + cont.cyclePause = (cont.cyclePause === 1) ? 0 : 1; + checkInstantResume(cont.cyclePause, arg2, cont); + triggerPause(cont); + return false; + case 'pause': + cont.cyclePause = 1; + triggerPause(cont); + return false; + case 'resume': + cont.cyclePause = 0; + checkInstantResume(false, arg2, cont); + triggerPause(cont); + return false; + case 'prev': + case 'next': + opts = $(cont).data('cycle.opts'); + if (!opts) { + log('options not found, "prev/next" ignored'); + return false; + } + if (typeof arg2 == 'string') + opts.oneTimeFx = arg2; + $.fn.cycle[options](opts); + return false; + default: + options = { fx: options }; + } + return options; + } + else if (options.constructor == Number) { + // go to the requested slide + var num = options; + options = $(cont).data('cycle.opts'); + if (!options) { + log('options not found, can not advance slide'); + return false; + } + if (num < 0 || num >= options.elements.length) { + log('invalid slide index: ' + num); + return false; + } + options.nextSlide = num; + if (cont.cycleTimeout) { + clearTimeout(cont.cycleTimeout); + cont.cycleTimeout = 0; + } + if (typeof arg2 == 'string') + options.oneTimeFx = arg2; + go(options.elements, options, 1, num >= options.currSlide); + return false; + } + return options; + + function checkInstantResume(isPaused, arg2, cont) { + if (!isPaused && arg2 === true) { // resume now! + var options = $(cont).data('cycle.opts'); + if (!options) { + log('options not found, can not resume'); + return false; + } + if (cont.cycleTimeout) { + clearTimeout(cont.cycleTimeout); + cont.cycleTimeout = 0; + } + go(options.elements, options, 1, !options.backwards); + } + } +} + +function removeFilter(el, opts) { + if (!$.support.opacity && opts.cleartype && el.style.filter) { + try { el.style.removeAttribute('filter'); } + catch(smother) {} // handle old opera versions + } +} + +// unbind event handlers +function destroy(cont, opts) { + if (opts.next) + $(opts.next).unbind(opts.prevNextEvent); + if (opts.prev) + $(opts.prev).unbind(opts.prevNextEvent); + + if (opts.pager || opts.pagerAnchorBuilder) + $.each(opts.pagerAnchors || [], function() { + this.unbind().remove(); + }); + opts.pagerAnchors = null; + $(cont).unbind('mouseenter.cycle mouseleave.cycle'); + if (opts.destroy) // callback + opts.destroy(opts); +} + +// one-time initialization +function buildOptions($cont, $slides, els, options, o) { + var startingSlideSpecified; + // support metadata plugin (v1.0 and v2.0) + var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.metadata ? $cont.metadata() : $.meta ? $cont.data() : {}); + var meta = $.isFunction($cont.data) ? $cont.data(opts.metaAttr) : null; + if (meta) + opts = $.extend(opts, meta); + if (opts.autostop) + opts.countdown = opts.autostopCount || els.length; + + var cont = $cont[0]; + $cont.data('cycle.opts', opts); + opts.$cont = $cont; + opts.stopCount = cont.cycleStop; + opts.elements = els; + opts.before = opts.before ? [opts.before] : []; + opts.after = opts.after ? [opts.after] : []; + + // push some after callbacks + if (!$.support.opacity && opts.cleartype) + opts.after.push(function() { removeFilter(this, opts); }); + if (opts.continuous) + opts.after.push(function() { go(els,opts,0,!opts.backwards); }); + + saveOriginalOpts(opts); + + // clearType corrections + if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) + clearTypeFix($slides); + + // container requires non-static position so that slides can be position within + if ($cont.css('position') == 'static') + $cont.css('position', 'relative'); + if (opts.width) + $cont.width(opts.width); + if (opts.height && opts.height != 'auto') + $cont.height(opts.height); + + if (opts.startingSlide !== undefined) { + opts.startingSlide = parseInt(opts.startingSlide,10); + if (opts.startingSlide >= els.length || opts.startSlide < 0) + opts.startingSlide = 0; // catch bogus input + else + startingSlideSpecified = true; + } + else if (opts.backwards) + opts.startingSlide = els.length - 1; + else + opts.startingSlide = 0; + + // if random, mix up the slide array + if (opts.random) { + opts.randomMap = []; + for (var i = 0; i < els.length; i++) + opts.randomMap.push(i); + opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;}); + if (startingSlideSpecified) { + // try to find the specified starting slide and if found set start slide index in the map accordingly + for ( var cnt = 0; cnt < els.length; cnt++ ) { + if ( opts.startingSlide == opts.randomMap[cnt] ) { + opts.randomIndex = cnt; + } + } + } + else { + opts.randomIndex = 1; + opts.startingSlide = opts.randomMap[1]; + } + } + else if (opts.startingSlide >= els.length) + opts.startingSlide = 0; // catch bogus input + opts.currSlide = opts.startingSlide || 0; + var first = opts.startingSlide; + + // set position and zIndex on all the slides + $slides.css({position: 'absolute', top:0, left:0}).hide().each(function(i) { + var z; + if (opts.backwards) + z = first ? i <= first ? els.length + (i-first) : first-i : els.length-i; + else + z = first ? i >= first ? els.length - (i-first) : first-i : els.length-i; + $(this).css('z-index', z); + }); + + // make sure first slide is visible + $(els[first]).css('opacity',1).show(); // opacity bit needed to handle restart use case + removeFilter(els[first], opts); + + // stretch slides + if (opts.fit) { + if (!opts.aspect) { + if (opts.width) + $slides.width(opts.width); + if (opts.height && opts.height != 'auto') + $slides.height(opts.height); + } else { + $slides.each(function(){ + var $slide = $(this); + var ratio = (opts.aspect === true) ? $slide.width()/$slide.height() : opts.aspect; + if( opts.width && $slide.width() != opts.width ) { + $slide.width( opts.width ); + $slide.height( opts.width / ratio ); + } + + if( opts.height && $slide.height() < opts.height ) { + $slide.height( opts.height ); + $slide.width( opts.height * ratio ); + } + }); + } + } + + if (opts.center && ((!opts.fit) || opts.aspect)) { + $slides.each(function(){ + var $slide = $(this); + $slide.css({ + "margin-left": opts.width ? + ((opts.width - $slide.width()) / 2) + "px" : + 0, + "margin-top": opts.height ? + ((opts.height - $slide.height()) / 2) + "px" : + 0 + }); + }); + } + + if (opts.center && !opts.fit && !opts.slideResize) { + $slides.each(function(){ + var $slide = $(this); + $slide.css({ + "margin-left": opts.width ? ((opts.width - $slide.width()) / 2) + "px" : 0, + "margin-top": opts.height ? ((opts.height - $slide.height()) / 2) + "px" : 0 + }); + }); + } + + // stretch container + var reshape = (opts.containerResize || opts.containerResizeHeight) && $cont.innerHeight() < 1; + if (reshape) { // do this only if container has no size http://tinyurl.com/da2oa9 + var maxw = 0, maxh = 0; + for(var j=0; j < els.length; j++) { + var $e = $(els[j]), e = $e[0], w = $e.outerWidth(), h = $e.outerHeight(); + if (!w) w = e.offsetWidth || e.width || $e.attr('width'); + if (!h) h = e.offsetHeight || e.height || $e.attr('height'); + maxw = w > maxw ? w : maxw; + maxh = h > maxh ? h : maxh; + } + if (opts.containerResize && maxw > 0 && maxh > 0) + $cont.css({width:maxw+'px',height:maxh+'px'}); + if (opts.containerResizeHeight && maxh > 0) + $cont.css({height:maxh+'px'}); + } + + var pauseFlag = false; // https://github.com/malsup/cycle/issues/44 + if (opts.pause) + $cont.bind('mouseenter.cycle', function(){ + pauseFlag = true; + this.cyclePause++; + triggerPause(cont, true); + }).bind('mouseleave.cycle', function(){ + if (pauseFlag) + this.cyclePause--; + triggerPause(cont, true); + }); + + if (supportMultiTransitions(opts) === false) + return false; + + // apparently a lot of people use image slideshows without height/width attributes on the images. + // Cycle 2.50+ requires the sizing info for every slide; this block tries to deal with that. + var requeue = false; + options.requeueAttempts = options.requeueAttempts || 0; + $slides.each(function() { + // try to get height/width of each slide + var $el = $(this); + this.cycleH = (opts.fit && opts.height) ? opts.height : ($el.height() || this.offsetHeight || this.height || $el.attr('height') || 0); + this.cycleW = (opts.fit && opts.width) ? opts.width : ($el.width() || this.offsetWidth || this.width || $el.attr('width') || 0); + + if ( $el.is('img') ) { + var loading = (this.cycleH === 0 && this.cycleW === 0 && !this.complete); + // don't requeue for images that are still loading but have a valid size + if (loading) { + if (o.s && opts.requeueOnImageNotLoaded && ++options.requeueAttempts < 100) { // track retry count so we don't loop forever + log(options.requeueAttempts,' - img slide not loaded, requeuing slideshow: ', this.src, this.cycleW, this.cycleH); + setTimeout(function() {$(o.s,o.c).cycle(options);}, opts.requeueTimeout); + requeue = true; + return false; // break each loop + } + else { + log('could not determine size of image: '+this.src, this.cycleW, this.cycleH); + } + } + } + return true; + }); + + if (requeue) + return false; + + opts.cssBefore = opts.cssBefore || {}; + opts.cssAfter = opts.cssAfter || {}; + opts.cssFirst = opts.cssFirst || {}; + opts.animIn = opts.animIn || {}; + opts.animOut = opts.animOut || {}; + + $slides.not(':eq('+first+')').css(opts.cssBefore); + $($slides[first]).css(opts.cssFirst); + + if (opts.timeout) { + opts.timeout = parseInt(opts.timeout,10); + // ensure that timeout and speed settings are sane + if (opts.speed.constructor == String) + opts.speed = $.fx.speeds[opts.speed] || parseInt(opts.speed,10); + if (!opts.sync) + opts.speed = opts.speed / 2; + + var buffer = opts.fx == 'none' ? 0 : opts.fx == 'shuffle' ? 500 : 250; + while((opts.timeout - opts.speed) < buffer) // sanitize timeout + opts.timeout += opts.speed; + } + if (opts.easing) + opts.easeIn = opts.easeOut = opts.easing; + if (!opts.speedIn) + opts.speedIn = opts.speed; + if (!opts.speedOut) + opts.speedOut = opts.speed; + + opts.slideCount = els.length; + opts.currSlide = opts.lastSlide = first; + if (opts.random) { + if (++opts.randomIndex == els.length) + opts.randomIndex = 0; + opts.nextSlide = opts.randomMap[opts.randomIndex]; + } + else if (opts.backwards) + opts.nextSlide = opts.startingSlide === 0 ? (els.length-1) : opts.startingSlide-1; + else + opts.nextSlide = opts.startingSlide >= (els.length-1) ? 0 : opts.startingSlide+1; + + // run transition init fn + if (!opts.multiFx) { + var init = $.fn.cycle.transitions[opts.fx]; + if ($.isFunction(init)) + init($cont, $slides, opts); + else if (opts.fx != 'custom' && !opts.multiFx) { + log('unknown transition: ' + opts.fx,'; slideshow terminating'); + return false; + } + } + + // fire artificial events + var e0 = $slides[first]; + if (!opts.skipInitializationCallbacks) { + if (opts.before.length) + opts.before[0].apply(e0, [e0, e0, opts, true]); + if (opts.after.length) + opts.after[0].apply(e0, [e0, e0, opts, true]); + } + if (opts.next) + $(opts.next).bind(opts.prevNextEvent,function(){return advance(opts,1);}); + if (opts.prev) + $(opts.prev).bind(opts.prevNextEvent,function(){return advance(opts,0);}); + if (opts.pager || opts.pagerAnchorBuilder) + buildPager(els,opts); + + exposeAddSlide(opts, els); + + return opts; +} + +// save off original opts so we can restore after clearing state +function saveOriginalOpts(opts) { + opts.original = { before: [], after: [] }; + opts.original.cssBefore = $.extend({}, opts.cssBefore); + opts.original.cssAfter = $.extend({}, opts.cssAfter); + opts.original.animIn = $.extend({}, opts.animIn); + opts.original.animOut = $.extend({}, opts.animOut); + $.each(opts.before, function() { opts.original.before.push(this); }); + $.each(opts.after, function() { opts.original.after.push(this); }); +} + +function supportMultiTransitions(opts) { + var i, tx, txs = $.fn.cycle.transitions; + // look for multiple effects + if (opts.fx.indexOf(',') > 0) { + opts.multiFx = true; + opts.fxs = opts.fx.replace(/\s*/g,'').split(','); + // discard any bogus effect names + for (i=0; i < opts.fxs.length; i++) { + var fx = opts.fxs[i]; + tx = txs[fx]; + if (!tx || !txs.hasOwnProperty(fx) || !$.isFunction(tx)) { + log('discarding unknown transition: ',fx); + opts.fxs.splice(i,1); + i--; + } + } + // if we have an empty list then we threw everything away! + if (!opts.fxs.length) { + log('No valid transitions named; slideshow terminating.'); + return false; + } + } + else if (opts.fx == 'all') { // auto-gen the list of transitions + opts.multiFx = true; + opts.fxs = []; + for (var p in txs) { + if (txs.hasOwnProperty(p)) { + tx = txs[p]; + if (txs.hasOwnProperty(p) && $.isFunction(tx)) + opts.fxs.push(p); + } + } + } + if (opts.multiFx && opts.randomizeEffects) { + // munge the fxs array to make effect selection random + var r1 = Math.floor(Math.random() * 20) + 30; + for (i = 0; i < r1; i++) { + var r2 = Math.floor(Math.random() * opts.fxs.length); + opts.fxs.push(opts.fxs.splice(r2,1)[0]); + } + debug('randomized fx sequence: ',opts.fxs); + } + return true; +} + +// provide a mechanism for adding slides after the slideshow has started +function exposeAddSlide(opts, els) { + opts.addSlide = function(newSlide, prepend) { + var $s = $(newSlide), s = $s[0]; + if (!opts.autostopCount) + opts.countdown++; + els[prepend?'unshift':'push'](s); + if (opts.els) + opts.els[prepend?'unshift':'push'](s); // shuffle needs this + opts.slideCount = els.length; + + // add the slide to the random map and resort + if (opts.random) { + opts.randomMap.push(opts.slideCount-1); + opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;}); + } + + $s.css('position','absolute'); + $s[prepend?'prependTo':'appendTo'](opts.$cont); + + if (prepend) { + opts.currSlide++; + opts.nextSlide++; + } + + if (!$.support.opacity && opts.cleartype && !opts.cleartypeNoBg) + clearTypeFix($s); + + if (opts.fit && opts.width) + $s.width(opts.width); + if (opts.fit && opts.height && opts.height != 'auto') + $s.height(opts.height); + s.cycleH = (opts.fit && opts.height) ? opts.height : $s.height(); + s.cycleW = (opts.fit && opts.width) ? opts.width : $s.width(); + + $s.css(opts.cssBefore); + + if (opts.pager || opts.pagerAnchorBuilder) + $.fn.cycle.createPagerAnchor(els.length-1, s, $(opts.pager), els, opts); + + if ($.isFunction(opts.onAddSlide)) + opts.onAddSlide($s); + else + $s.hide(); // default behavior + }; +} + +// reset internal state; we do this on every pass in order to support multiple effects +$.fn.cycle.resetState = function(opts, fx) { + fx = fx || opts.fx; + opts.before = []; opts.after = []; + opts.cssBefore = $.extend({}, opts.original.cssBefore); + opts.cssAfter = $.extend({}, opts.original.cssAfter); + opts.animIn = $.extend({}, opts.original.animIn); + opts.animOut = $.extend({}, opts.original.animOut); + opts.fxFn = null; + $.each(opts.original.before, function() { opts.before.push(this); }); + $.each(opts.original.after, function() { opts.after.push(this); }); + + // re-init + var init = $.fn.cycle.transitions[fx]; + if ($.isFunction(init)) + init(opts.$cont, $(opts.elements), opts); +}; + +// this is the main engine fn, it handles the timeouts, callbacks and slide index mgmt +function go(els, opts, manual, fwd) { + var p = opts.$cont[0], curr = els[opts.currSlide], next = els[opts.nextSlide]; + + // opts.busy is true if we're in the middle of an animation + if (manual && opts.busy && opts.manualTrump) { + // let manual transitions requests trump active ones + debug('manualTrump in go(), stopping active transition'); + $(els).stop(true,true); + opts.busy = 0; + clearTimeout(p.cycleTimeout); + } + + // don't begin another timeout-based transition if there is one active + if (opts.busy) { + debug('transition active, ignoring new tx request'); + return; + } + + + // stop cycling if we have an outstanding stop request + if (p.cycleStop != opts.stopCount || p.cycleTimeout === 0 && !manual) + return; + + // check to see if we should stop cycling based on autostop options + if (!manual && !p.cyclePause && !opts.bounce && + ((opts.autostop && (--opts.countdown <= 0)) || + (opts.nowrap && !opts.random && opts.nextSlide < opts.currSlide))) { + if (opts.end) + opts.end(opts); + return; + } + + // if slideshow is paused, only transition on a manual trigger + var changed = false; + if ((manual || !p.cyclePause) && (opts.nextSlide != opts.currSlide)) { + changed = true; + var fx = opts.fx; + // keep trying to get the slide size if we don't have it yet + curr.cycleH = curr.cycleH || $(curr).height(); + curr.cycleW = curr.cycleW || $(curr).width(); + next.cycleH = next.cycleH || $(next).height(); + next.cycleW = next.cycleW || $(next).width(); + + // support multiple transition types + if (opts.multiFx) { + if (fwd && (opts.lastFx === undefined || ++opts.lastFx >= opts.fxs.length)) + opts.lastFx = 0; + else if (!fwd && (opts.lastFx === undefined || --opts.lastFx < 0)) + opts.lastFx = opts.fxs.length - 1; + fx = opts.fxs[opts.lastFx]; + } + + // one-time fx overrides apply to: $('div').cycle(3,'zoom'); + if (opts.oneTimeFx) { + fx = opts.oneTimeFx; + opts.oneTimeFx = null; + } + + $.fn.cycle.resetState(opts, fx); + + // run the before callbacks + if (opts.before.length) + $.each(opts.before, function(i,o) { + if (p.cycleStop != opts.stopCount) return; + o.apply(next, [curr, next, opts, fwd]); + }); + + // stage the after callacks + var after = function() { + opts.busy = 0; + $.each(opts.after, function(i,o) { + if (p.cycleStop != opts.stopCount) return; + o.apply(next, [curr, next, opts, fwd]); + }); + if (!p.cycleStop) { + // queue next transition + queueNext(); + } + }; + + debug('tx firing('+fx+'); currSlide: ' + opts.currSlide + '; nextSlide: ' + opts.nextSlide); + + // get ready to perform the transition + opts.busy = 1; + if (opts.fxFn) // fx function provided? + opts.fxFn(curr, next, opts, after, fwd, manual && opts.fastOnEvent); + else if ($.isFunction($.fn.cycle[opts.fx])) // fx plugin ? + $.fn.cycle[opts.fx](curr, next, opts, after, fwd, manual && opts.fastOnEvent); + else + $.fn.cycle.custom(curr, next, opts, after, fwd, manual && opts.fastOnEvent); + } + else { + queueNext(); + } + + if (changed || opts.nextSlide == opts.currSlide) { + // calculate the next slide + var roll; + opts.lastSlide = opts.currSlide; + if (opts.random) { + opts.currSlide = opts.nextSlide; + if (++opts.randomIndex == els.length) { + opts.randomIndex = 0; + opts.randomMap.sort(function(a,b) {return Math.random() - 0.5;}); + } + opts.nextSlide = opts.randomMap[opts.randomIndex]; + if (opts.nextSlide == opts.currSlide) + opts.nextSlide = (opts.currSlide == opts.slideCount - 1) ? 0 : opts.currSlide + 1; + } + else if (opts.backwards) { + roll = (opts.nextSlide - 1) < 0; + if (roll && opts.bounce) { + opts.backwards = !opts.backwards; + opts.nextSlide = 1; + opts.currSlide = 0; + } + else { + opts.nextSlide = roll ? (els.length-1) : opts.nextSlide-1; + opts.currSlide = roll ? 0 : opts.nextSlide+1; + } + } + else { // sequence + roll = (opts.nextSlide + 1) == els.length; + if (roll && opts.bounce) { + opts.backwards = !opts.backwards; + opts.nextSlide = els.length-2; + opts.currSlide = els.length-1; + } + else { + opts.nextSlide = roll ? 0 : opts.nextSlide+1; + opts.currSlide = roll ? els.length-1 : opts.nextSlide-1; + } + } + } + if (changed && opts.pager) + opts.updateActivePagerLink(opts.pager, opts.currSlide, opts.activePagerClass); + + function queueNext() { + // stage the next transition + var ms = 0, timeout = opts.timeout; + if (opts.timeout && !opts.continuous) { + ms = getTimeout(els[opts.currSlide], els[opts.nextSlide], opts, fwd); + if (opts.fx == 'shuffle') + ms -= opts.speedOut; + } + else if (opts.continuous && p.cyclePause) // continuous shows work off an after callback, not this timer logic + ms = 10; + if (ms > 0) + p.cycleTimeout = setTimeout(function(){ go(els, opts, 0, !opts.backwards); }, ms); + } +} + +// invoked after transition +$.fn.cycle.updateActivePagerLink = function(pager, currSlide, clsName) { + $(pager).each(function() { + $(this).children().removeClass(clsName).eq(currSlide).addClass(clsName); + }); +}; + +// calculate timeout value for current transition +function getTimeout(curr, next, opts, fwd) { + if (opts.timeoutFn) { + // call user provided calc fn + var t = opts.timeoutFn.call(curr,curr,next,opts,fwd); + while (opts.fx != 'none' && (t - opts.speed) < 250) // sanitize timeout + t += opts.speed; + debug('calculated timeout: ' + t + '; speed: ' + opts.speed); + if (t !== false) + return t; + } + return opts.timeout; +} + +// expose next/prev function, caller must pass in state +$.fn.cycle.next = function(opts) { advance(opts,1); }; +$.fn.cycle.prev = function(opts) { advance(opts,0);}; + +// advance slide forward or back +function advance(opts, moveForward) { + var val = moveForward ? 1 : -1; + var els = opts.elements; + var p = opts.$cont[0], timeout = p.cycleTimeout; + if (timeout) { + clearTimeout(timeout); + p.cycleTimeout = 0; + } + if (opts.random && val < 0) { + // move back to the previously display slide + opts.randomIndex--; + if (--opts.randomIndex == -2) + opts.randomIndex = els.length-2; + else if (opts.randomIndex == -1) + opts.randomIndex = els.length-1; + opts.nextSlide = opts.randomMap[opts.randomIndex]; + } + else if (opts.random) { + opts.nextSlide = opts.randomMap[opts.randomIndex]; + } + else { + opts.nextSlide = opts.currSlide + val; + if (opts.nextSlide < 0) { + if (opts.nowrap) return false; + opts.nextSlide = els.length - 1; + } + else if (opts.nextSlide >= els.length) { + if (opts.nowrap) return false; + opts.nextSlide = 0; + } + } + + var cb = opts.onPrevNextEvent || opts.prevNextClick; // prevNextClick is deprecated + if ($.isFunction(cb)) + cb(val > 0, opts.nextSlide, els[opts.nextSlide]); + go(els, opts, 1, moveForward); + return false; +} + +function buildPager(els, opts) { + var $p = $(opts.pager); + $.each(els, function(i,o) { + $.fn.cycle.createPagerAnchor(i,o,$p,els,opts); + }); + opts.updateActivePagerLink(opts.pager, opts.startingSlide, opts.activePagerClass); +} + +$.fn.cycle.createPagerAnchor = function(i, el, $p, els, opts) { + var a; + if ($.isFunction(opts.pagerAnchorBuilder)) { + a = opts.pagerAnchorBuilder(i,el); + debug('pagerAnchorBuilder('+i+', el) returned: ' + a); + } + else + a = '
      '+(i+1)+''; + + if (!a) + return; + var $a = $(a); + // don't reparent if anchor is in the dom + if ($a.parents('body').length === 0) { + var arr = []; + if ($p.length > 1) { + $p.each(function() { + var $clone = $a.clone(true); + $(this).append($clone); + arr.push($clone[0]); + }); + $a = $(arr); + } + else { + $a.appendTo($p); + } + } + + opts.pagerAnchors = opts.pagerAnchors || []; + opts.pagerAnchors.push($a); + + var pagerFn = function(e) { + e.preventDefault(); + opts.nextSlide = i; + var p = opts.$cont[0], timeout = p.cycleTimeout; + if (timeout) { + clearTimeout(timeout); + p.cycleTimeout = 0; + } + var cb = opts.onPagerEvent || opts.pagerClick; // pagerClick is deprecated + if ($.isFunction(cb)) + cb(opts.nextSlide, els[opts.nextSlide]); + go(els,opts,1,opts.currSlide < i); // trigger the trans +// return false; // <== allow bubble + }; + + if ( /mouseenter|mouseover/i.test(opts.pagerEvent) ) { + $a.hover(pagerFn, function(){/* no-op */} ); + } + else { + $a.bind(opts.pagerEvent, pagerFn); + } + + if ( ! /^click/.test(opts.pagerEvent) && !opts.allowPagerClickBubble) + $a.bind('click.cycle', function(){return false;}); // suppress click + + var cont = opts.$cont[0]; + var pauseFlag = false; // https://github.com/malsup/cycle/issues/44 + if (opts.pauseOnPagerHover) { + $a.hover( + function() { + pauseFlag = true; + cont.cyclePause++; + triggerPause(cont,true,true); + }, function() { + if (pauseFlag) + cont.cyclePause--; + triggerPause(cont,true,true); + } + ); + } +}; + +// helper fn to calculate the number of slides between the current and the next +$.fn.cycle.hopsFromLast = function(opts, fwd) { + var hops, l = opts.lastSlide, c = opts.currSlide; + if (fwd) + hops = c > l ? c - l : opts.slideCount - l; + else + hops = c < l ? l - c : l + opts.slideCount - c; + return hops; +}; + +// fix clearType problems in ie6 by setting an explicit bg color +// (otherwise text slides look horrible during a fade transition) +function clearTypeFix($slides) { + debug('applying clearType background-color hack'); + function hex(s) { + s = parseInt(s,10).toString(16); + return s.length < 2 ? '0'+s : s; + } + function getBg(e) { + for ( ; e && e.nodeName.toLowerCase() != 'html'; e = e.parentNode) { + var v = $.css(e,'background-color'); + if (v && v.indexOf('rgb') >= 0 ) { + var rgb = v.match(/\d+/g); + return '#'+ hex(rgb[0]) + hex(rgb[1]) + hex(rgb[2]); + } + if (v && v != 'transparent') + return v; + } + return '#ffffff'; + } + $slides.each(function() { $(this).css('background-color', getBg(this)); }); +} + +// reset common props before the next transition +$.fn.cycle.commonReset = function(curr,next,opts,w,h,rev) { + $(opts.elements).not(curr).hide(); + if (typeof opts.cssBefore.opacity == 'undefined') + opts.cssBefore.opacity = 1; + opts.cssBefore.display = 'block'; + if (opts.slideResize && w !== false && next.cycleW > 0) + opts.cssBefore.width = next.cycleW; + if (opts.slideResize && h !== false && next.cycleH > 0) + opts.cssBefore.height = next.cycleH; + opts.cssAfter = opts.cssAfter || {}; + opts.cssAfter.display = 'none'; + $(curr).css('zIndex',opts.slideCount + (rev === true ? 1 : 0)); + $(next).css('zIndex',opts.slideCount + (rev === true ? 0 : 1)); +}; + +// the actual fn for effecting a transition +$.fn.cycle.custom = function(curr, next, opts, cb, fwd, speedOverride) { + var $l = $(curr), $n = $(next); + var speedIn = opts.speedIn, speedOut = opts.speedOut, easeIn = opts.easeIn, easeOut = opts.easeOut, animInDelay = opts.animInDelay, animOutDelay = opts.animOutDelay; + $n.css(opts.cssBefore); + if (speedOverride) { + if (typeof speedOverride == 'number') + speedIn = speedOut = speedOverride; + else + speedIn = speedOut = 1; + easeIn = easeOut = null; + } + var fn = function() { + $n.delay(animInDelay).animate(opts.animIn, speedIn, easeIn, function() { + cb(); + }); + }; + $l.delay(animOutDelay).animate(opts.animOut, speedOut, easeOut, function() { + $l.css(opts.cssAfter); + if (!opts.sync) + fn(); + }); + if (opts.sync) fn(); +}; + +// transition definitions - only fade is defined here, transition pack defines the rest +$.fn.cycle.transitions = { + fade: function($cont, $slides, opts) { + $slides.not(':eq('+opts.currSlide+')').css('opacity',0); + opts.before.push(function(curr,next,opts) { + $.fn.cycle.commonReset(curr,next,opts); + opts.cssBefore.opacity = 0; + }); + opts.animIn = { opacity: 1 }; + opts.animOut = { opacity: 0 }; + opts.cssBefore = { top: 0, left: 0 }; + } +}; + +$.fn.cycle.ver = function() { return ver; }; + +// override these globally if you like (they are all optional) +$.fn.cycle.defaults = { + activePagerClass: 'activeSlide', // class name used for the active pager link + after: null, // transition callback (scope set to element that was shown): function(currSlideElement, nextSlideElement, options, forwardFlag) + allowPagerClickBubble: false, // allows or prevents click event on pager anchors from bubbling + animIn: null, // properties that define how the slide animates in + animInDelay: 0, // allows delay before next slide transitions in + animOut: null, // properties that define how the slide animates out + animOutDelay: 0, // allows delay before current slide transitions out + aspect: false, // preserve aspect ratio during fit resizing, cropping if necessary (must be used with fit option) + autostop: 0, // true to end slideshow after X transitions (where X == slide count) + autostopCount: 0, // number of transitions (optionally used with autostop to define X) + backwards: false, // true to start slideshow at last slide and move backwards through the stack + before: null, // transition callback (scope set to element to be shown): function(currSlideElement, nextSlideElement, options, forwardFlag) + center: null, // set to true to have cycle add top/left margin to each slide (use with width and height options) + cleartype: !$.support.opacity, // true if clearType corrections should be applied (for IE) + cleartypeNoBg: false, // set to true to disable extra cleartype fixing (leave false to force background color setting on slides) + containerResize: 1, // resize container to fit largest slide + containerResizeHeight: 0, // resize containers height to fit the largest slide but leave the width dynamic + continuous: 0, // true to start next transition immediately after current one completes + cssAfter: null, // properties that defined the state of the slide after transitioning out + cssBefore: null, // properties that define the initial state of the slide before transitioning in + delay: 0, // additional delay (in ms) for first transition (hint: can be negative) + easeIn: null, // easing for "in" transition + easeOut: null, // easing for "out" transition + easing: null, // easing method for both in and out transitions + end: null, // callback invoked when the slideshow terminates (use with autostop or nowrap options): function(options) + fastOnEvent: 0, // force fast transitions when triggered manually (via pager or prev/next); value == time in ms + fit: 0, // force slides to fit container + fx: 'fade', // name of transition effect (or comma separated names, ex: 'fade,scrollUp,shuffle') + fxFn: null, // function used to control the transition: function(currSlideElement, nextSlideElement, options, afterCalback, forwardFlag) + height: 'auto', // container height (if the 'fit' option is true, the slides will be set to this height as well) + manualTrump: true, // causes manual transition to stop an active transition instead of being ignored + metaAttr: 'cycle', // data- attribute that holds the option data for the slideshow + next: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for next slide + nowrap: 0, // true to prevent slideshow from wrapping + onPagerEvent: null, // callback fn for pager events: function(zeroBasedSlideIndex, slideElement) + onPrevNextEvent: null, // callback fn for prev/next events: function(isNext, zeroBasedSlideIndex, slideElement) + pager: null, // element, jQuery object, or jQuery selector string for the element to use as pager container + pagerAnchorBuilder: null, // callback fn for building anchor links: function(index, DOMelement) + pagerEvent: 'click.cycle', // name of event which drives the pager navigation + pause: 0, // true to enable "pause on hover" + pauseOnPagerHover: 0, // true to pause when hovering over pager link + prev: null, // element, jQuery object, or jQuery selector string for the element to use as event trigger for previous slide + prevNextEvent: 'click.cycle',// event which drives the manual transition to the previous or next slide + random: 0, // true for random, false for sequence (not applicable to shuffle fx) + randomizeEffects: 1, // valid when multiple effects are used; true to make the effect sequence random + requeueOnImageNotLoaded: true, // requeue the slideshow if any image slides are not yet loaded + requeueTimeout: 250, // ms delay for requeue + rev: 0, // causes animations to transition in reverse (for effects that support it such as scrollHorz/scrollVert/shuffle) + shuffle: null, // coords for shuffle animation, ex: { top:15, left: 200 } + skipInitializationCallbacks: false, // set to true to disable the first before/after callback that occurs prior to any transition + slideExpr: null, // expression for selecting slides (if something other than all children is required) + slideResize: 1, // force slide width/height to fixed size before every transition + speed: 1000, // speed of the transition (any valid fx speed value) + speedIn: null, // speed of the 'in' transition + speedOut: null, // speed of the 'out' transition + startingSlide: undefined,// zero-based index of the first slide to be displayed + sync: 1, // true if in/out transitions should occur simultaneously + timeout: 4000, // milliseconds between slide transitions (0 to disable auto advance) + timeoutFn: null, // callback for determining per-slide timeout value: function(currSlideElement, nextSlideElement, options, forwardFlag) + updateActivePagerLink: null,// callback fn invoked to update the active pager link (adds/removes activePagerClass style) + width: null // container width (if the 'fit' option is true, the slides will be set to this width as well) +}; + +})(jQuery); + + +/*! + * jQuery Cycle Plugin Transition Definitions + * This script is a plugin for the jQuery Cycle Plugin + * Examples and documentation at: http://malsup.com/jquery/cycle/ + * Copyright (c) 2007-2010 M. Alsup + * Version: 2.73 + * Dual licensed under the MIT and GPL licenses: + * http://www.opensource.org/licenses/mit-license.php + * http://www.gnu.org/licenses/gpl.html + */ +(function($) { +"use strict"; + +// +// These functions define slide initialization and properties for the named +// transitions. To save file size feel free to remove any of these that you +// don't need. +// +$.fn.cycle.transitions.none = function($cont, $slides, opts) { + opts.fxFn = function(curr,next,opts,after){ + $(next).show(); + $(curr).hide(); + after(); + }; +}; + +// not a cross-fade, fadeout only fades out the top slide +$.fn.cycle.transitions.fadeout = function($cont, $slides, opts) { + $slides.not(':eq('+opts.currSlide+')').css({ display: 'block', 'opacity': 1 }); + opts.before.push(function(curr,next,opts,w,h,rev) { + $(curr).css('zIndex',opts.slideCount + (rev !== true ? 1 : 0)); + $(next).css('zIndex',opts.slideCount + (rev !== true ? 0 : 1)); + }); + opts.animIn.opacity = 1; + opts.animOut.opacity = 0; + opts.cssBefore.opacity = 1; + opts.cssBefore.display = 'block'; + opts.cssAfter.zIndex = 0; +}; + +// scrollUp/Down/Left/Right +$.fn.cycle.transitions.scrollUp = function($cont, $slides, opts) { + $cont.css('overflow','hidden'); + opts.before.push($.fn.cycle.commonReset); + var h = $cont.height(); + opts.cssBefore.top = h; + opts.cssBefore.left = 0; + opts.cssFirst.top = 0; + opts.animIn.top = 0; + opts.animOut.top = -h; +}; +$.fn.cycle.transitions.scrollDown = function($cont, $slides, opts) { + $cont.css('overflow','hidden'); + opts.before.push($.fn.cycle.commonReset); + var h = $cont.height(); + opts.cssFirst.top = 0; + opts.cssBefore.top = -h; + opts.cssBefore.left = 0; + opts.animIn.top = 0; + opts.animOut.top = h; +}; +$.fn.cycle.transitions.scrollLeft = function($cont, $slides, opts) { + $cont.css('overflow','hidden'); + opts.before.push($.fn.cycle.commonReset); + var w = $cont.width(); + opts.cssFirst.left = 0; + opts.cssBefore.left = w; + opts.cssBefore.top = 0; + opts.animIn.left = 0; + opts.animOut.left = 0-w; +}; +$.fn.cycle.transitions.scrollRight = function($cont, $slides, opts) { + $cont.css('overflow','hidden'); + opts.before.push($.fn.cycle.commonReset); + var w = $cont.width(); + opts.cssFirst.left = 0; + opts.cssBefore.left = -w; + opts.cssBefore.top = 0; + opts.animIn.left = 0; + opts.animOut.left = w; +}; +$.fn.cycle.transitions.scrollHorz = function($cont, $slides, opts) { + $cont.css('overflow','hidden').width(); + opts.before.push(function(curr, next, opts, fwd) { + if (opts.rev) + fwd = !fwd; + $.fn.cycle.commonReset(curr,next,opts); + opts.cssBefore.left = fwd ? (next.cycleW-1) : (1-next.cycleW); + opts.animOut.left = fwd ? -curr.cycleW : curr.cycleW; + }); + opts.cssFirst.left = 0; + opts.cssBefore.top = 0; + opts.animIn.left = 0; + opts.animOut.top = 0; +}; +$.fn.cycle.transitions.scrollVert = function($cont, $slides, opts) { + $cont.css('overflow','hidden'); + opts.before.push(function(curr, next, opts, fwd) { + if (opts.rev) + fwd = !fwd; + $.fn.cycle.commonReset(curr,next,opts); + opts.cssBefore.top = fwd ? (1-next.cycleH) : (next.cycleH-1); + opts.animOut.top = fwd ? curr.cycleH : -curr.cycleH; + }); + opts.cssFirst.top = 0; + opts.cssBefore.left = 0; + opts.animIn.top = 0; + opts.animOut.left = 0; +}; + +// slideX/slideY +$.fn.cycle.transitions.slideX = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $(opts.elements).not(curr).hide(); + $.fn.cycle.commonReset(curr,next,opts,false,true); + opts.animIn.width = next.cycleW; + }); + opts.cssBefore.left = 0; + opts.cssBefore.top = 0; + opts.cssBefore.width = 0; + opts.animIn.width = 'show'; + opts.animOut.width = 0; +}; +$.fn.cycle.transitions.slideY = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $(opts.elements).not(curr).hide(); + $.fn.cycle.commonReset(curr,next,opts,true,false); + opts.animIn.height = next.cycleH; + }); + opts.cssBefore.left = 0; + opts.cssBefore.top = 0; + opts.cssBefore.height = 0; + opts.animIn.height = 'show'; + opts.animOut.height = 0; +}; + +// shuffle +$.fn.cycle.transitions.shuffle = function($cont, $slides, opts) { + var i, w = $cont.css('overflow', 'visible').width(); + $slides.css({left: 0, top: 0}); + opts.before.push(function(curr,next,opts) { + $.fn.cycle.commonReset(curr,next,opts,true,true,true); + }); + // only adjust speed once! + if (!opts.speedAdjusted) { + opts.speed = opts.speed / 2; // shuffle has 2 transitions + opts.speedAdjusted = true; + } + opts.random = 0; + opts.shuffle = opts.shuffle || {left:-w, top:15}; + opts.els = []; + for (i=0; i < $slides.length; i++) + opts.els.push($slides[i]); + + for (i=0; i < opts.currSlide; i++) + opts.els.push(opts.els.shift()); + + // custom transition fn (hat tip to Benjamin Sterling for this bit of sweetness!) + opts.fxFn = function(curr, next, opts, cb, fwd) { + if (opts.rev) + fwd = !fwd; + var $el = fwd ? $(curr) : $(next); + $(next).css(opts.cssBefore); + var count = opts.slideCount; + $el.animate(opts.shuffle, opts.speedIn, opts.easeIn, function() { + var hops = $.fn.cycle.hopsFromLast(opts, fwd); + for (var k=0; k < hops; k++) { + if (fwd) + opts.els.push(opts.els.shift()); + else + opts.els.unshift(opts.els.pop()); + } + if (fwd) { + for (var i=0, len=opts.els.length; i < len; i++) + $(opts.els[i]).css('z-index', len-i+count); + } + else { + var z = $(curr).css('z-index'); + $el.css('z-index', parseInt(z,10)+1+count); + } + $el.animate({left:0, top:0}, opts.speedOut, opts.easeOut, function() { + $(fwd ? this : curr).hide(); + if (cb) cb(); + }); + }); + }; + $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 }); +}; + +// turnUp/Down/Left/Right +$.fn.cycle.transitions.turnUp = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,false); + opts.cssBefore.top = next.cycleH; + opts.animIn.height = next.cycleH; + opts.animOut.width = next.cycleW; + }); + opts.cssFirst.top = 0; + opts.cssBefore.left = 0; + opts.cssBefore.height = 0; + opts.animIn.top = 0; + opts.animOut.height = 0; +}; +$.fn.cycle.transitions.turnDown = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,false); + opts.animIn.height = next.cycleH; + opts.animOut.top = curr.cycleH; + }); + opts.cssFirst.top = 0; + opts.cssBefore.left = 0; + opts.cssBefore.top = 0; + opts.cssBefore.height = 0; + opts.animOut.height = 0; +}; +$.fn.cycle.transitions.turnLeft = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,true); + opts.cssBefore.left = next.cycleW; + opts.animIn.width = next.cycleW; + }); + opts.cssBefore.top = 0; + opts.cssBefore.width = 0; + opts.animIn.left = 0; + opts.animOut.width = 0; +}; +$.fn.cycle.transitions.turnRight = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,true); + opts.animIn.width = next.cycleW; + opts.animOut.left = curr.cycleW; + }); + $.extend(opts.cssBefore, { top: 0, left: 0, width: 0 }); + opts.animIn.left = 0; + opts.animOut.width = 0; +}; + +// zoom +$.fn.cycle.transitions.zoom = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,false,true); + opts.cssBefore.top = next.cycleH/2; + opts.cssBefore.left = next.cycleW/2; + $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH }); + $.extend(opts.animOut, { width: 0, height: 0, top: curr.cycleH/2, left: curr.cycleW/2 }); + }); + opts.cssFirst.top = 0; + opts.cssFirst.left = 0; + opts.cssBefore.width = 0; + opts.cssBefore.height = 0; +}; + +// fadeZoom +$.fn.cycle.transitions.fadeZoom = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,false); + opts.cssBefore.left = next.cycleW/2; + opts.cssBefore.top = next.cycleH/2; + $.extend(opts.animIn, { top: 0, left: 0, width: next.cycleW, height: next.cycleH }); + }); + opts.cssBefore.width = 0; + opts.cssBefore.height = 0; + opts.animOut.opacity = 0; +}; + +// blindX +$.fn.cycle.transitions.blindX = function($cont, $slides, opts) { + var w = $cont.css('overflow','hidden').width(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts); + opts.animIn.width = next.cycleW; + opts.animOut.left = curr.cycleW; + }); + opts.cssBefore.left = w; + opts.cssBefore.top = 0; + opts.animIn.left = 0; + opts.animOut.left = w; +}; +// blindY +$.fn.cycle.transitions.blindY = function($cont, $slides, opts) { + var h = $cont.css('overflow','hidden').height(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts); + opts.animIn.height = next.cycleH; + opts.animOut.top = curr.cycleH; + }); + opts.cssBefore.top = h; + opts.cssBefore.left = 0; + opts.animIn.top = 0; + opts.animOut.top = h; +}; +// blindZ +$.fn.cycle.transitions.blindZ = function($cont, $slides, opts) { + var h = $cont.css('overflow','hidden').height(); + var w = $cont.width(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts); + opts.animIn.height = next.cycleH; + opts.animOut.top = curr.cycleH; + }); + opts.cssBefore.top = h; + opts.cssBefore.left = w; + opts.animIn.top = 0; + opts.animIn.left = 0; + opts.animOut.top = h; + opts.animOut.left = w; +}; + +// growX - grow horizontally from centered 0 width +$.fn.cycle.transitions.growX = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,true); + opts.cssBefore.left = this.cycleW/2; + opts.animIn.left = 0; + opts.animIn.width = this.cycleW; + opts.animOut.left = 0; + }); + opts.cssBefore.top = 0; + opts.cssBefore.width = 0; +}; +// growY - grow vertically from centered 0 height +$.fn.cycle.transitions.growY = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,false); + opts.cssBefore.top = this.cycleH/2; + opts.animIn.top = 0; + opts.animIn.height = this.cycleH; + opts.animOut.top = 0; + }); + opts.cssBefore.height = 0; + opts.cssBefore.left = 0; +}; + +// curtainX - squeeze in both edges horizontally +$.fn.cycle.transitions.curtainX = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,false,true,true); + opts.cssBefore.left = next.cycleW/2; + opts.animIn.left = 0; + opts.animIn.width = this.cycleW; + opts.animOut.left = curr.cycleW/2; + opts.animOut.width = 0; + }); + opts.cssBefore.top = 0; + opts.cssBefore.width = 0; +}; +// curtainY - squeeze in both edges vertically +$.fn.cycle.transitions.curtainY = function($cont, $slides, opts) { + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,false,true); + opts.cssBefore.top = next.cycleH/2; + opts.animIn.top = 0; + opts.animIn.height = next.cycleH; + opts.animOut.top = curr.cycleH/2; + opts.animOut.height = 0; + }); + opts.cssBefore.height = 0; + opts.cssBefore.left = 0; +}; + +// cover - curr slide covered by next slide +$.fn.cycle.transitions.cover = function($cont, $slides, opts) { + var d = opts.direction || 'left'; + var w = $cont.css('overflow','hidden').width(); + var h = $cont.height(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts); + opts.cssAfter.display = ''; + if (d == 'right') + opts.cssBefore.left = -w; + else if (d == 'up') + opts.cssBefore.top = h; + else if (d == 'down') + opts.cssBefore.top = -h; + else + opts.cssBefore.left = w; + }); + opts.animIn.left = 0; + opts.animIn.top = 0; + opts.cssBefore.top = 0; + opts.cssBefore.left = 0; +}; + +// uncover - curr slide moves off next slide +$.fn.cycle.transitions.uncover = function($cont, $slides, opts) { + var d = opts.direction || 'left'; + var w = $cont.css('overflow','hidden').width(); + var h = $cont.height(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,true,true); + if (d == 'right') + opts.animOut.left = w; + else if (d == 'up') + opts.animOut.top = -h; + else if (d == 'down') + opts.animOut.top = h; + else + opts.animOut.left = -w; + }); + opts.animIn.left = 0; + opts.animIn.top = 0; + opts.cssBefore.top = 0; + opts.cssBefore.left = 0; +}; + +// toss - move top slide and fade away +$.fn.cycle.transitions.toss = function($cont, $slides, opts) { + var w = $cont.css('overflow','visible').width(); + var h = $cont.height(); + opts.before.push(function(curr, next, opts) { + $.fn.cycle.commonReset(curr,next,opts,true,true,true); + // provide default toss settings if animOut not provided + if (!opts.animOut.left && !opts.animOut.top) + $.extend(opts.animOut, { left: w*2, top: -h/2, opacity: 0 }); + else + opts.animOut.opacity = 0; + }); + opts.cssBefore.left = 0; + opts.cssBefore.top = 0; + opts.animIn.left = 0; +}; + +// wipe - clip animation +$.fn.cycle.transitions.wipe = function($cont, $slides, opts) { + var w = $cont.css('overflow','hidden').width(); + var h = $cont.height(); + opts.cssBefore = opts.cssBefore || {}; + var clip; + if (opts.clip) { + if (/l2r/.test(opts.clip)) + clip = 'rect(0px 0px '+h+'px 0px)'; + else if (/r2l/.test(opts.clip)) + clip = 'rect(0px '+w+'px '+h+'px '+w+'px)'; + else if (/t2b/.test(opts.clip)) + clip = 'rect(0px '+w+'px 0px 0px)'; + else if (/b2t/.test(opts.clip)) + clip = 'rect('+h+'px '+w+'px '+h+'px 0px)'; + else if (/zoom/.test(opts.clip)) { + var top = parseInt(h/2,10); + var left = parseInt(w/2,10); + clip = 'rect('+top+'px '+left+'px '+top+'px '+left+'px)'; + } + } + + opts.cssBefore.clip = opts.cssBefore.clip || clip || 'rect(0px 0px 0px 0px)'; + + var d = opts.cssBefore.clip.match(/(\d+)/g); + var t = parseInt(d[0],10), r = parseInt(d[1],10), b = parseInt(d[2],10), l = parseInt(d[3],10); + + opts.before.push(function(curr, next, opts) { + if (curr == next) return; + var $curr = $(curr), $next = $(next); + $.fn.cycle.commonReset(curr,next,opts,true,true,false); + opts.cssAfter.display = 'block'; + + var step = 1, count = parseInt((opts.speedIn / 13),10) - 1; + (function f() { + var tt = t ? t - parseInt(step * (t/count),10) : 0; + var ll = l ? l - parseInt(step * (l/count),10) : 0; + var bb = b < h ? b + parseInt(step * ((h-b)/count || 1),10) : h; + var rr = r < w ? r + parseInt(step * ((w-r)/count || 1),10) : w; + $next.css({ clip: 'rect('+tt+'px '+rr+'px '+bb+'px '+ll+'px)' }); + (step++ <= count) ? setTimeout(f, 13) : $curr.css('display', 'none'); + })(); + }); + $.extend(opts.cssBefore, { display: 'block', opacity: 1, top: 0, left: 0 }); + opts.animIn = { left: 0 }; + opts.animOut = { left: 0 }; +}; + +})(jQuery); diff --git a/themes/greydragon/js/jquery.form.custom.js b/themes/greydragon/js/jquery.form.custom.js new file mode 100755 index 0000000..796db12 --- /dev/null +++ b/themes/greydragon/js/jquery.form.custom.js @@ -0,0 +1,1076 @@ +/*! + * jQuery Form Plugin + * version: 3.09 (16-APR-2012) + * @requires jQuery v1.3.2 or later + * + * Examples and documentation at: http://malsup.com/jquery/form/ + * Project repository: https://github.com/malsup/form + * Dual licensed under the MIT and GPL licenses: + * http://malsup.github.com/mit-license.txt + * http://malsup.github.com/gpl-license-v2.txt + */ +/*global ActiveXObject alert */ +;(function($) { +"use strict"; + +/* + Usage Note: + ----------- + Do not use both ajaxSubmit and ajaxForm on the same form. These + functions are mutually exclusive. Use ajaxSubmit if you want + to bind your own submit handler to the form. For example, + + $(document).ready(function() { + $('#myForm').on('submit', function(e) { + e.preventDefault(); // <-- important + $(this).ajaxSubmit({ + target: '#output' + }); + }); + }); + + Use ajaxForm when you want the plugin to manage all the event binding + for you. For example, + + $(document).ready(function() { + $('#myForm').ajaxForm({ + target: '#output' + }); + }); + + You can also use ajaxForm with delegation (requires jQuery v1.7+), so the + form does not have to exist when you invoke ajaxForm: + + $('#myForm').ajaxForm({ + delegation: true, + target: '#output' + }); + + When using ajaxForm, the ajaxSubmit function will be invoked for you + at the appropriate time. +*/ + +/** + * Feature detection + */ +var feature = {}; +feature.fileapi = $("").get(0).files !== undefined; +feature.formdata = window.FormData !== undefined; + +/** + * ajaxSubmit() provides a mechanism for immediately submitting + * an HTML form using AJAX. + */ +$.fn.ajaxSubmit = function(options) { + /*jshint scripturl:true */ + + // fast fail if nothing selected (http://dev.jquery.com/ticket/2752) + if (!this.length) { + log('ajaxSubmit: skipping submit process - no element selected'); + return this; + } + + var method, action, url, $form = this; + + if (typeof options == 'function') { + options = { success: options }; + } + + method = this.attr('method'); + action = this.attr('action'); + url = (typeof action === 'string') ? $.trim(action) : ''; + url = url || window.location.href || ''; + if (url) { + // clean url (don't include hash vaue) + url = (url.match(/^([^#]+)/)||[])[1]; + } + + options = $.extend(true, { + url: url, + success: $.ajaxSettings.success, + type: method || 'GET', + iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank' + }, options); + + // hook for manipulating the form data before it is extracted; + // convenient for use with rich editors like tinyMCE or FCKEditor + var veto = {}; + this.trigger('form-pre-serialize', [this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-pre-serialize trigger'); + return this; + } + + // provide opportunity to alter form data before it is serialized + if (options.beforeSerialize && options.beforeSerialize(this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSerialize callback'); + return this; + } + + var traditional = options.traditional; + if ( traditional === undefined ) { + traditional = $.ajaxSettings.traditional; + } + + var elements = []; + var qx, a = this.formToArray(options.semantic, elements); + if (options.data) { + options.extraData = options.data; + qx = $.param(options.data, traditional); + } + + // give pre-submit callback an opportunity to abort the submit + if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) { + log('ajaxSubmit: submit aborted via beforeSubmit callback'); + return this; + } + + // fire vetoable 'validate' event + this.trigger('form-submit-validate', [a, this, options, veto]); + if (veto.veto) { + log('ajaxSubmit: submit vetoed via form-submit-validate trigger'); + return this; + } + + var q = $.param(a, traditional); + if (qx) { + q = ( q ? (q + '&' + qx) : qx ); + } + if (options.type.toUpperCase() == 'GET') { + options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q; + options.data = null; // data is null for 'get' + } + else { + options.data = q; // data is the query string for 'post' + } + + var callbacks = []; + if (options.resetForm) { + callbacks.push(function() { $form.resetForm(); }); + } + if (options.clearForm) { + callbacks.push(function() { $form.clearForm(options.includeHidden); }); + } + + // perform a load on the target only if dataType is not provided + if (!options.dataType && options.target) { + var oldSuccess = options.success || function(){}; + callbacks.push(function(data) { + var fn = options.replaceTarget ? 'replaceWith' : 'html'; + $(options.target)[fn](data).each(oldSuccess, arguments); + }); + } + else if (options.success) { + callbacks.push(options.success); + } + + options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg + var context = options.context || options; // jQuery 1.4+ supports scope context + for (var i=0, max=callbacks.length; i < max; i++) { + callbacks[i].apply(context, [data, status, xhr || $form, $form]); + } + }; + + // are there files to upload? + var fileInputs = $('input:file:enabled[value]', this); // [value] (issue #113) + var hasFileInputs = fileInputs.length > 0; + var mp = 'multipart/form-data'; + var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp); + + var fileAPI = feature.fileapi && feature.formdata; + log("fileAPI :" + fileAPI); + var shouldUseFrame = (hasFileInputs || multipart) && !fileAPI; + + // options.iframe allows user to force iframe mode + // 06-NOV-09: now defaulting to iframe mode if file input is detected + if (options.iframe !== false && (options.iframe || shouldUseFrame)) { + // hack to fix Safari hang (thanks to Tim Molendijk for this) + // see: http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d + if (options.closeKeepAlive) { + $.get(options.closeKeepAlive, function() { + fileUploadIframe(a); + }); + } + else { + fileUploadIframe(a); + } + } + else if ((hasFileInputs || multipart) && fileAPI) { + fileUploadXhr(a); + } + else { + $.ajax(options); + } + + // clear element array + for (var k=0; k < elements.length; k++) + elements[k] = null; + + // fire 'notify' event + this.trigger('form-submit-notify', [this, options]); + return this; + + // XMLHttpRequest Level 2 file uploads (big hat tip to francois2metz) + function fileUploadXhr(a) { + var formdata = new FormData(); + + for (var i=0; i < a.length; i++) { + formdata.append(a[i].name, a[i].value); + } + + if (options.extraData) { + for (var p in options.extraData) + if (options.extraData.hasOwnProperty(p)) + formdata.append(p, options.extraData[p]); + } + + options.data = null; + + var s = $.extend(true, {}, $.ajaxSettings, options, { + contentType: false, + processData: false, + cache: false, + type: 'POST' + }); + + if (options.uploadProgress) { + // workaround because jqXHR does not expose upload property + s.xhr = function() { + var xhr = jQuery.ajaxSettings.xhr(); + if (xhr.upload) { + xhr.upload.onprogress = function(event) { + var percent = 0; + var position = event.loaded || event.position; /*event.position is deprecated*/ + var total = event.total; + if (event.lengthComputable) { + percent = Math.ceil(position / total * 100); + } + options.uploadProgress(event, position, total, percent); + }; + } + return xhr; + }; + } + + s.data = null; + var beforeSend = s.beforeSend; + s.beforeSend = function(xhr, o) { + o.data = formdata; + if(beforeSend) + beforeSend.call(o, xhr, options); + }; + $.ajax(s); + } + + // private function for handling file uploads (hat tip to YAHOO!) + function fileUploadIframe(a) { + var form = $form[0], el, i, s, g, id, $io, io, xhr, sub, n, timedOut, timeoutHandle; + var useProp = !!$.fn.prop; + + if ($(':input[name=submit],:input[id=submit]', form).length) { + // if there is an input with a name or id of 'submit' then we won't be + // able to invoke the submit fn on the form (at least not x-browser) + alert('Error: Form elements must not have name or id of "submit".'); + return; + } + + if (a) { + // ensure that every serialized input is still enabled + for (i=0; i < elements.length; i++) { + el = $(elements[i]); + if ( useProp ) + el.prop('disabled', false); + else + el.removeAttr('disabled'); + } + } + + s = $.extend(true, {}, $.ajaxSettings, options); + s.context = s.context || s; + id = 'jqFormIO' + (new Date().getTime()); + if (s.iframeTarget) { + $io = $(s.iframeTarget); + n = $io.attr('name'); + if (!n) + $io.attr('name', id); + else + id = n; + } + else { + $io = $('
      '; +return __p +}; +$(function () { + $('.' + _fotoramaClass + ':not([data-auto="false"])').fotorama(); +}); +})(window, document, location, window.jQuery); diff --git a/themes/imobile/js/fotorama.min.js b/themes/imobile/js/fotorama.min.js new file mode 100755 index 0000000..769958d --- /dev/null +++ b/themes/imobile/js/fotorama.min.js @@ -0,0 +1,2 @@ +(function(window,document,location,$,undefined){"use strict";var _fotoramaClass="fotorama",_fullscreenClass="fullscreen",wrapClass=_fotoramaClass+"__wrap",wrapCss2Class=wrapClass+"--css2",wrapCss3Class=wrapClass+"--css3",wrapVideoClass=wrapClass+"--video",wrapFadeClass=wrapClass+"--fade",wrapSlideClass=wrapClass+"--slide",wrapNoControlsClass=wrapClass+"--no-controls",wrapNoShadowsClass=wrapClass+"--no-shadows",wrapPanYClass=wrapClass+"--pan-y",wrapRtlClass=wrapClass+"--rtl",wrapOnlyActiveClass=wrapClass+"--only-active",stageClass=_fotoramaClass+"__stage",stageFrameClass=stageClass+"__frame",stageFrameVideoClass=stageFrameClass+"--video",stageShaftClass=stageClass+"__shaft",grabClass=_fotoramaClass+"__grab",pointerClass=_fotoramaClass+"__pointer",arrClass=_fotoramaClass+"__arr",arrDisabledClass=arrClass+"--disabled",arrPrevClass=arrClass+"--prev",arrNextClass=arrClass+"--next",arrArrClass=arrClass+"__arr",navClass=_fotoramaClass+"__nav",navWrapClass=navClass+"-wrap",navShaftClass=navClass+"__shaft",navDotsClass=navClass+"--dots",navThumbsClass=navClass+"--thumbs",navFrameClass=navClass+"__frame",navFrameDotClass=navFrameClass+"--dot",navFrameThumbClass=navFrameClass+"--thumb",fadeClass=_fotoramaClass+"__fade",fadeFrontClass=fadeClass+"-front",fadeRearClass=fadeClass+"-rear",shadowClass=_fotoramaClass+"__shadow",shadowsClass=shadowClass+"s",shadowsLeftClass=shadowsClass+"--left",shadowsRightClass=shadowsClass+"--right",activeClass=_fotoramaClass+"__active",selectClass=_fotoramaClass+"__select",hiddenClass=_fotoramaClass+"--hidden",fullscreenClass=_fotoramaClass+"--fullscreen",fullscreenIconClass=_fotoramaClass+"__fullscreen-icon",errorClass=_fotoramaClass+"__error",loadingClass=_fotoramaClass+"__loading",loadedClass=_fotoramaClass+"__loaded",loadedFullClass=loadedClass+"--full",loadedImgClass=loadedClass+"--img",grabbingClass=_fotoramaClass+"__grabbing",imgClass=_fotoramaClass+"__img",imgFullClass=imgClass+"--full",dotClass=_fotoramaClass+"__dot",thumbClass=_fotoramaClass+"__thumb",thumbBorderClass=thumbClass+"-border",htmlClass=_fotoramaClass+"__html",videoClass=_fotoramaClass+"__video",videoPlayClass=videoClass+"-play",videoCloseClass=videoClass+"-close",captionClass=_fotoramaClass+"__caption",captionWrapClass=_fotoramaClass+"__caption__wrap",spinnerClass=_fotoramaClass+"__spinner";var JQUERY_VERSION=$&&$.fn.jquery.split(".");if(!JQUERY_VERSION||JQUERY_VERSION[0]<1||JQUERY_VERSION[0]==1&&JQUERY_VERSION[1]<8){throw"Fotorama requires jQuery 1.8 or later and will not run without it.";return}var _={};var Modernizr=function(window,document,undefined){var version="2.6.2",Modernizr={},docElement=document.documentElement,mod="modernizr",modElem=document.createElement(mod),mStyle=modElem.style,inputElem,toString={}.toString,prefixes=" -webkit- -moz- -o- -ms- ".split(" "),omPrefixes="Webkit Moz O ms",cssomPrefixes=omPrefixes.split(" "),domPrefixes=omPrefixes.toLowerCase().split(" "),tests={},inputs={},attrs={},classes=[],slice=classes.slice,featureName,injectElementWithStyles=function(rule,callback,nodes,testnames){var style,ret,node,docOverflow,div=document.createElement("div"),body=document.body,fakeBody=body||document.createElement("body");if(parseInt(nodes,10)){while(nodes--){node=document.createElement("div");node.id=testnames?testnames[nodes]:mod+(nodes+1);div.appendChild(node)}}style=["­",'"].join("");div.id=mod;(body?div:fakeBody).innerHTML+=style;fakeBody.appendChild(div);if(!body){fakeBody.style.background="";fakeBody.style.overflow="hidden";docOverflow=docElement.style.overflow;docElement.style.overflow="hidden";docElement.appendChild(fakeBody)}ret=callback(div,rule);if(!body){fakeBody.parentNode.removeChild(fakeBody);docElement.style.overflow=docOverflow}else{div.parentNode.removeChild(div)}return!!ret},_hasOwnProperty={}.hasOwnProperty,hasOwnProp;if(!is(_hasOwnProperty,"undefined")&&!is(_hasOwnProperty.call,"undefined")){hasOwnProp=function(object,property){return _hasOwnProperty.call(object,property)}}else{hasOwnProp=function(object,property){return property in object&&is(object.constructor.prototype[property],"undefined")}}if(!Function.prototype.bind){Function.prototype.bind=function bind(that){var target=this;if(typeof target!="function"){throw new TypeError}var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var F=function(){};F.prototype=target.prototype;var self=new F;var result=target.apply(self,args.concat(slice.call(arguments)));if(Object(result)===result){return result}return self}else{return target.apply(that,args.concat(slice.call(arguments)))}};return bound}}function setCss(str){mStyle.cssText=str}function setCssAll(str1,str2){return setCss(prefixes.join(str1+";")+(str2||""))}function is(obj,type){return typeof obj===type}function contains(str,substr){return!!~(""+str).indexOf(substr)}function testProps(props,prefixed){for(var i in props){var prop=props[i];if(!contains(prop,"-")&&mStyle[prop]!==undefined){return prefixed=="pfx"?prop:true}}return false}function testDOMProps(props,obj,elem){for(var i in props){var item=obj[props[i]];if(item!==undefined){if(elem===false)return props[i];if(is(item,"function")){return item.bind(elem||obj)}return item}}return false}function testPropsAll(prop,prefixed,elem){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+ucProp).split(" ");if(is(prefixed,"string")||is(prefixed,"undefined")){return testProps(props,prefixed)}else{props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" ");return testDOMProps(props,prefixed,elem)}}tests["csstransforms3d"]=function(){var ret=!!testPropsAll("perspective");return ret};for(var feature in tests){if(hasOwnProp(tests,feature)){featureName=feature.toLowerCase();Modernizr[featureName]=tests[feature]();classes.push((Modernizr[featureName]?"":"no-")+featureName)}}Modernizr.addTest=function(feature,test){if(typeof feature=="object"){for(var key in feature){if(hasOwnProp(feature,key)){Modernizr.addTest(key,feature[key])}}}else{feature=feature.toLowerCase();if(Modernizr[feature]!==undefined){return Modernizr}test=typeof test=="function"?test():test;if(typeof enableClasses!=="undefined"&&enableClasses){docElement.className+=" "+(test?"":"no-")+feature}Modernizr[feature]=test}return Modernizr};setCss("");modElem=inputElem=null;Modernizr._version=version;Modernizr._prefixes=prefixes;Modernizr._domPrefixes=domPrefixes;Modernizr._cssomPrefixes=cssomPrefixes;Modernizr.testProp=function(prop){return testProps([prop])};Modernizr.testAllProps=testPropsAll;Modernizr.testStyles=injectElementWithStyles;Modernizr.prefixed=function(prop,obj,elem){if(!obj){return testPropsAll(prop,"pfx")}else{return testPropsAll(prop,obj,elem)}};return Modernizr}(window,document);var fullScreenApi={ok:false,is:function(){return false},request:function(){},cancel:function(){},event:"",prefix:""},browserPrefixes="webkit moz o ms khtml".split(" ");if(typeof document.cancelFullScreen!="undefined"){fullScreenApi.ok=true}else{for(var i=0,il=browserPrefixes.length;i>1):parseInt(o.left,10)+mid)+"px",top:(o.top=="auto"?tp.y-ep.y+(target.offsetHeight>>1):parseInt(o.top,10)+mid)+"px"})}el.setAttribute("role","progressbar");self.lines(el,self.opts);if(!useCssAnimations){var i=0,start=(o.lines-1)*(1-o.direction)/2,alpha,fps=o.fps,f=fps/o.speed,ostep=(1-o.opacity)/(f*o.trail/100),astep=f/o.lines;(function anim(){i++;for(var j=0;j>1)+"px"})}for(;i',attr)}sheet.addRule(".spin-vml","behavior:url(#default#VML)");Spinner.prototype.lines=function(el,o){var r=o.length+o.width,s=2*r;function grp(){return css(vml("group",{coordsize:s+" "+s,coordorigin:-r+" "+-r}),{width:s,height:s})}var margin=-(o.width+o.length)*2+"px",g=css(grp(),{position:"absolute",top:margin,left:margin}),i;function seg(i,dx,filter){ins(g,ins(css(grp(),{rotation:360/o.lines*i+"deg",left:~~dx}),ins(css(vml("roundrect",{arcsize:o.corners}),{width:r,height:o.width,left:o.radius,top:-o.width>>1,filter:filter}),vml("fill",{color:getColor(o.color,i),opacity:o.opacity}),vml("stroke",{opacity:0}))))}if(o.shadow)for(i=1;i<=o.lines;i++)seg(i,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(i=1;i<=o.lines;i++)seg(i);return ins(el,g)};Spinner.prototype.opacity=function(el,i,val,o){var c=el.firstChild;o=o.shadow&&o.lines||0;if(c&&i+o=ratio,fitFLAG=method==="scaledown",containFLAG=method==="contain",coverFLAG=method==="cover";if(biggerRatioFLAG&&(fitFLAG||containFLAG)||!biggerRatioFLAG&&coverFLAG){width=minMaxLimit(measuresToFit.w,0,fitFLAG?width:Infinity);height=width/measures.ratio}else if(biggerRatioFLAG&&coverFLAG||!biggerRatioFLAG&&(fitFLAG||containFLAG)){height=minMaxLimit(measuresToFit.h,0,fitFLAG?height:Infinity);width=height*measures.ratio}$el.css({width:Math.ceil(width),height:Math.ceil(height),marginLeft:Math.floor(-width/2),marginTop:Math.floor(-height/2)});elData.l={W:measures.width,H:measures.height,r:measures.ratio,w:measuresToFit.w,h:measuresToFit.h,m:method}}return true}function setStyle($el,style){var el=$el[0];if(el.styleSheet){el.styleSheet.cssText=style}else{$el.html(style)}}function findShadowEdge(pos,min,max){return min===max?false:pos<=min?"left":pos>=max?"right":"left right"}function getIndexFromHash(hash,data,ok,startindex){if(!ok)return false;if(!isNaN(hash))return hash-(startindex?0:1);var index;for(var _i=0,_l=data.length;_i<_l;_i++){var dataFrame=data[_i];if(dataFrame.id===hash){index=_i;break}}return index}function smartClick($el,fn,_options){_options=_options||{};$el.each(function(){var $this=$(this),thisData=$this.data(),startEvent;if(thisData.clickOn)return;thisData.clickOn=true;$.extend(touch($this,{onStart:function(e){startEvent=e;(_options.onStart||noop).call(this,e)},onMove:_options.onMove||noop,onTouchEnd:_options.onTouchEnd||noop,onEnd:function(result){if(result.moved)return;fn.call(this,startEvent)}}),{noMove:true})})}function div(classes,child){return'
      '+(child||"")+"
      "}function shuffle(array){var l=array.length;while(l){var i=Math.floor(Math.random()*l--);var t=array[l];array[l]=array[i];array[i]=t}return array}function clone(array){return Object.prototype.toString.call(array)=="[object Array]"&&$.map(array,function(frame){return $.extend({},frame)})}function lockScroll(left,top){$WINDOW.scrollLeft(left).scrollTop(top)}function optionsToLowerCase(options){if(options){var opts={};$.each(options,function(key,value){opts[key.toLowerCase()]=value});return opts}}function getRatio(_ratio){if(!_ratio)return;var ratio=+_ratio;if(!isNaN(ratio)){return ratio}else{ratio=_ratio.split("/");return+ratio[0]/+ratio[1]||undefined}}function stopEvent(e,stopPropagation){e.preventDefault();stopPropagation&&e.stopPropagation()}function getDirectionSign(forward){return forward?">":"<"}function slide($el,options){var elData=$el.data(),elPos=Math.round(options.pos),onEndFn=function(){elData.sliding=false;(options.onEnd||noop)()};if(typeof options.overPos!=="undefined"&&options.overPos!==options.pos){elPos=options.overPos;onEndFn=function(){slide($el,$.extend({},options,{overPos:options.pos,time:Math.max(TRANSITION_DURATION,options.time/2)}))}}var translate=$.extend(getTranslate(elPos,options._001),options.width&&{width:options.width});elData.sliding=true;if(CSS3){$el.css($.extend(getDuration(options.time),translate));if(options.time>10){afterTransition($el,"transform",onEndFn,options.time)}else{onEndFn()}}else{$el.stop().animate(translate,options.time,BEZIER,onEndFn)}}function fade($el1,$el2,$frames,options,fadeStack,chain){var chainedFLAG=typeof chain!=="undefined";if(!chainedFLAG){fadeStack.push(arguments);Array.prototype.push.call(arguments,fadeStack.length);if(fadeStack.length>1)return}$el1=$el1||$($el1);$el2=$el2||$($el2);var _$el1=$el1[0],_$el2=$el2[0],crossfadeFLAG=options.method==="crossfade",onEndFn=function(){if(!onEndFn.done){onEndFn.done=true;var args=(chainedFLAG||fadeStack.shift())&&fadeStack.shift();args&&fade.apply(this,args);(options.onEnd||noop)(!!args)}},time=options.time/(chain||1);$frames.not($el1.addClass(fadeRearClass).removeClass(fadeFrontClass)).not($el2.addClass(fadeFrontClass).removeClass(fadeRearClass)).removeClass(fadeRearClass+" "+fadeFrontClass);$el1.stop();$el2.stop();crossfadeFLAG&&_$el2&&$el1.fadeTo(0,0);$el1.fadeTo(crossfadeFLAG?time:1,1,crossfadeFLAG&&onEndFn);$el2.fadeTo(time,0,onEndFn);_$el1&&crossfadeFLAG||_$el2||onEndFn()}var lastEvent,moveEventType,preventEvent,preventEventTimeout;function extendEvent(e){var touch=(e.touches||[])[0]||e;e._x=touch.pageX;e._y=touch.clientY;e._now=$.now()}function touch($el,options){var el=$el[0],tail={},touchEnabledFLAG,startEvent,$target,controlTouch,touchFLAG,targetIsSelectFLAG,targetIsLinkFlag,tolerance,moved;function onStart(e){$target=$(e.target);tail.checked=targetIsSelectFLAG=targetIsLinkFlag=moved=false;if(touchEnabledFLAG||tail.flow||e.touches&&e.touches.length>1||e.which>1||lastEvent&&lastEvent.type!==e.type&&preventEvent||(targetIsSelectFLAG=options.select&&$target.is(options.select,el)))return targetIsSelectFLAG;touchFLAG=e.type==="touchstart";targetIsLinkFlag=$target.is("a, a *",el);tolerance=tail.noMove||tail.noSwipe?16:!tail.snap?4:0;extendEvent(e);startEvent=lastEvent=e;moveEventType=e.type.replace(/down|start/,"move").replace(/Down/,"Move");controlTouch=tail.control;(options.onStart||noop).call(el,e,{control:controlTouch,$target:$target});touchEnabledFLAG=tail.flow=true;if(!touchFLAG||tail.go)stopEvent(e)}function onMove(e){if(e.touches&&e.touches.length>1||MS_POINTER&&!e.isPrimary||moveEventType!==e.type||!touchEnabledFLAG){touchEnabledFLAG&&onEnd();(options.onTouchEnd||noop)();return}extendEvent(e);var xDiff=Math.abs(e._x-startEvent._x),yDiff=Math.abs(e._y-startEvent._y),xyDiff=xDiff-yDiff,xWin=(tail.go||tail.x||xyDiff>=0)&&!tail.noSwipe,yWin=xyDiff<0;if(touchFLAG&&!tail.checked){if(touchEnabledFLAG=xWin){stopEvent(e)}}else{stopEvent(e);(options.onMove||noop).call(el,e,{touch:touchFLAG})}if(!moved&&Math.sqrt(Math.pow(xDiff,2)+Math.pow(yDiff,2))>tolerance){moved=true}tail.checked=tail.checked||xWin||yWin}function onEnd(e){(options.onTouchEnd||noop)();var _touchEnabledFLAG=touchEnabledFLAG;tail.control=touchEnabledFLAG=false;if(_touchEnabledFLAG){tail.flow=false}if(!_touchEnabledFLAG||targetIsLinkFlag&&!tail.checked)return;e&&stopEvent(e);preventEvent=true;clearTimeout(preventEventTimeout);preventEventTimeout=setTimeout(function(){preventEvent=false},1e3);(options.onEnd||noop).call(el,{moved:moved,$target:$target,control:controlTouch,touch:touchFLAG,startEvent:startEvent,aborted:!e||e.type==="MSPointerCancel"})}function onOtherStart(){if(tail.flow)return;setTimeout(function(){tail.flow=true},10)}function onOtherEnd(){if(!tail.flow)return;setTimeout(function(){tail.flow=false},TOUCH_TIMEOUT)}if(MS_POINTER){el[ADD_EVENT_LISTENER]("MSPointerDown",onStart,false);document[ADD_EVENT_LISTENER]("MSPointerMove",onMove,false);document[ADD_EVENT_LISTENER]("MSPointerCancel",onEnd,false);document[ADD_EVENT_LISTENER]("MSPointerUp",onEnd,false)}else{if(el[ADD_EVENT_LISTENER]){el[ADD_EVENT_LISTENER]("touchstart",onStart,false);el[ADD_EVENT_LISTENER]("touchmove",onMove,false);el[ADD_EVENT_LISTENER]("touchend",onEnd,false);document[ADD_EVENT_LISTENER]("touchstart",onOtherStart,false);document[ADD_EVENT_LISTENER]("touchend",onOtherEnd,false);document[ADD_EVENT_LISTENER]("touchcancel",onOtherEnd,false);window[ADD_EVENT_LISTENER]("scroll",onOtherEnd,false)}$el.on("mousedown",onStart);$DOCUMENT.on("mousemove",onMove).on("mouseup",onEnd)}$el.on("click","a",function(e){tail.checked&&stopEvent(e)});return tail}function moveOnTouch($el,options){var el=$el[0],elData=$el.data(),tail={},startCoo,coo,startElPos,moveElPos,edge,moveTrack,startTime,endTime,min,max,snap,slowFLAG,controlFLAG,moved,tracked;function startTracking(e){tracked=true;startCoo=coo=e._x;startTime=e._now;moveTrack=[[startTime,startCoo]];startElPos=moveElPos=tail.noMove?0:stop($el,(options.getPos||noop)(),options._001);(options.onStart||noop).call(el,e)}function onStart(e,result){min=tail.min;max=tail.max;snap=tail.snap;slowFLAG=e.altKey;tracked=moved=false;controlFLAG=result.control;if(!controlFLAG&&!elData.sliding){startTracking(e)}}function onMove(e,result){if(!tracked){controlFLAG=false;startTracking(e)}if(!tail.noSwipe){coo=e._x;moveTrack.push([e._now,coo]);moveElPos=startElPos-(startCoo-coo);edge=findShadowEdge(moveElPos,min,max);if(moveElPos<=min){moveElPos=edgeResistance(moveElPos,min)}else if(moveElPos>=max){moveElPos=edgeResistance(moveElPos,max)}if(!tail.noMove){$el.css(getTranslate(moveElPos,options._001));if(!moved){moved=true;result.touch||MS_POINTER||$el.addClass(grabbingClass)}(options.onMove||noop).call(el,e,{pos:moveElPos,edge:edge})}}}function onEnd(result){if(controlFLAG)return;if(!tracked){startTracking(result.startEvent)}result.touch||MS_POINTER||$el.removeClass(grabbingClass);endTime=$.now();var _backTimeIdeal=endTime-TOUCH_TIMEOUT,_backTime,_timeDiff,_timeDiffLast,backTime=null,backCoo,virtualPos,limitPos,newPos,overPos,time=TRANSITION_DURATION,speed,friction=options.friction;for(var _i=moveTrack.length-1;_i>=0;_i--){_backTime=moveTrack[_i][0];_timeDiff=Math.abs(_backTime-_backTimeIdeal);if(backTime===null||_timeDiff<_timeDiffLast){backTime=_backTime;backCoo=moveTrack[_i][1]}else if(backTime===_backTimeIdeal||_timeDiff>_timeDiffLast){break}_timeDiffLast=_timeDiff}newPos=minMaxLimit(moveElPos,min,max);var cooDiff=backCoo-coo,forwardFLAG=cooDiff>=0,timeDiff=endTime-backTime,longTouchFLAG=timeDiff>TOUCH_TIMEOUT,swipeFLAG=!longTouchFLAG&&moveElPos!==startElPos&&newPos===moveElPos;if(snap){newPos=minMaxLimit(Math[swipeFLAG?forwardFLAG?"floor":"ceil":"round"](moveElPos/snap)*snap,min,max);min=max=newPos}if(swipeFLAG&&(snap||newPos===moveElPos)){speed=-(cooDiff/timeDiff);time*=minMaxLimit(Math.abs(speed),options.timeLow,options.timeHigh);virtualPos=Math.round(moveElPos+speed*time/friction);if(!snap){newPos=virtualPos}if(!forwardFLAG&&virtualPos>max||forwardFLAG&&virtualPosMath.abs(yDelta),direction=getDirectionSign(xDelta<0),sameDirection=lastDirection===direction,now=$.now(),tooFast=now-lastNow"),$anchor=$(div(hiddenClass)),$wrap=$(div(wrapClass)),$stage=$(div(stageClass)).appendTo($wrap),stage=$stage[0],$stageShaft=$(div(stageShaftClass)).appendTo($stage),$stageFrame=$(),$arrPrev=$(div(arrClass+" "+arrPrevClass)),$arrNext=$(div(arrClass+" "+arrNextClass)),$arrs=$arrPrev.add($arrNext).appendTo($stage),$navWrap=$(div(navWrapClass)),$nav=$(div(navClass)).appendTo($navWrap),$navShaft=$(div(navShaftClass)).appendTo($nav),$navFrame,$navDotFrame=$(),$navThumbFrame=$(),stageShaftData=$stageShaft.data(),navShaftData=$navShaft.data(),$thumbBorder=$(div(thumbBorderClass)).appendTo($navShaft),$fullscreenIcon=$(div(fullscreenIconClass)),fullscreenIcon=$fullscreenIcon[0],$videoPlay=$(div(videoPlayClass)),$videoClose=$(div(videoCloseClass)).appendTo($stage),videoClose=$videoClose[0],spinner,$spinner=$(div(spinnerClass)),$videoPlaying,activeIndex=false,activeFrame,activeIndexes,repositionIndex,dirtyIndex,lastActiveIndex,prevIndex,nextIndex,startIndex,o_loop,o_nav,o_navThumbs,o_navTop,o_allowFullScreen,o_nativeFullScreen,o_fade,o_thumbSide,o_thumbSide2,o_transitionDuration,o_shadows,o_rtl,lastOptions={},measures={},measuresSetFLAG,stageShaftTouchTail={},stageWheelTail={},navShaftTouchTail={},navWheelTail={},scrollTop,scrollLeft,showedFLAG,pausedAutoplayFLAG,stoppedAutoplayFLAG,toDeactivate={},toDetach={},measuresStash,touchedFLAG,hoverFLAG,navFrameKey,stageLeft=0,fadeStack=[];$wrap[STAGE_FRAME_KEY]=$(div(stageFrameClass));$wrap[NAV_THUMB_FRAME_KEY]=$(div(navFrameClass+" "+navFrameThumbClass,div(thumbClass)));$wrap[NAV_DOT_FRAME_KEY]=$(div(navFrameClass+" "+navFrameDotClass,div(dotClass)));toDeactivate[STAGE_FRAME_KEY]=[];toDeactivate[NAV_THUMB_FRAME_KEY]=[];toDeactivate[NAV_DOT_FRAME_KEY]=[];toDetach[STAGE_FRAME_KEY]={};$wrap.addClass(CSS3?wrapCss3Class:wrapCss2Class);fotoramaData.fotorama=this;function checkForVideo(){$.each(data,function(i,dataFrame){if(!dataFrame.i){dataFrame.i=dataFrameCount++;var video=findVideoId(dataFrame.video,true);if(video){var thumbs={};dataFrame.video=video;if(!dataFrame.img&&!dataFrame.thumb){thumbs=getVideoThumbs(dataFrame,data,that)}else{dataFrame.thumbsReady=true}updateData(data,{img:thumbs.img,thumb:thumbs.thumb},dataFrame.i,that)}}})}function bindGlobalEvents(FLAG){var keydownCommon="keydown."+_fotoramaClass,keydownLocal="keydown."+_fotoramaClass+stamp,resizeLocal="resize."+_fotoramaClass+stamp;if(FLAG){$DOCUMENT.on(keydownLocal,function(e){if($videoPlaying&&e.keyCode===27){stopEvent(e);unloadVideo($videoPlaying,true,true)}else if(that.fullScreen||opts.keyboard&&!that.index){if(e.keyCode===27){stopEvent(e);that.cancelFullScreen()}else if(e.keyCode===39||e.keyCode===40&&that.fullScreen){stopEvent(e);that.show({index:">",slow:e.altKey,user:true})}else if(e.keyCode===37||e.keyCode===38&&that.fullScreen){stopEvent(e);that.show({index:"<",slow:e.altKey,user:true})}}});if(!that.index){$DOCUMENT.off(keydownCommon).on(keydownCommon,"textarea, input, select",function(e){!$BODY.hasClass(_fullscreenClass)&&e.stopPropagation()})}$WINDOW.on(resizeLocal,that.resize)}else{$DOCUMENT.off(keydownLocal);$WINDOW.off(resizeLocal)}}function appendElements(FLAG){if(FLAG===appendElements.f)return;if(FLAG){$fotorama.html("").addClass(_fotoramaClass+" "+stampClass).append($wrap).before($style).before($anchor);addInstance(that)}else{$wrap.detach();$style.detach();$anchor.detach();$fotorama.html(fotoramaData.urtext).removeClass(stampClass);hideInstance(that)}bindGlobalEvents(FLAG);appendElements.f=FLAG}function setData(){data=that.data=data||clone(opts.data)||getDataFromHtml($fotorama);size=that.size=data.length;!ready.ok&&opts.shuffle&&shuffle(data);checkForVideo();activeIndex=limitIndex(activeIndex);size&&appendElements(true)}function stageNoMove(){var _noMove=size<2||$videoPlaying;stageShaftTouchTail.noMove=_noMove||o_fade;stageShaftTouchTail.noSwipe=_noMove||!opts.swipe;$stageShaft.toggleClass(grabClass,!stageShaftTouchTail.noMove&&!stageShaftTouchTail.noSwipe);MS_POINTER&&$wrap.toggleClass(wrapPanYClass,!stageShaftTouchTail.noSwipe)}function setAutoplayInterval(interval){if(interval===true)interval="";opts.autoplay=Math.max(+interval||AUTOPLAY_INTERVAL,o_transitionDuration*1.5)}function addOrRemove(FLAG){return FLAG?"add":"remove"}function setOptions(){that.options=opts=optionsToLowerCase(opts);o_fade=opts.transition==="crossfade"||opts.transition==="dissolve";o_loop=opts.loop&&(size>2||o_fade);o_transitionDuration=+opts.transitionduration||TRANSITION_DURATION;o_rtl=opts.direction==="rtl";var classes={add:[],remove:[]};if(size>1){o_nav=opts.nav;o_navTop=opts.navposition==="top";classes.remove.push(selectClass);$arrs.toggle(opts.arrows)}else{o_nav=false;$arrs.hide()}spinnerStop();spinner=new Spinner($.extend(spinnerDefaults,opts.spinner,spinnerOverride,{direction:o_rtl?-1:1}));arrsUpdate();stageWheelUpdate();if(opts.autoplay)setAutoplayInterval(opts.autoplay);o_thumbSide=numberFromMeasure(opts.thumbwidth)||THUMB_SIZE;o_thumbSide2=numberFromMeasure(opts.thumbheight)||THUMB_SIZE;stageWheelTail.ok=navWheelTail.ok=opts.trackpad&&!SLOW;stageNoMove();extendMeasures(opts,true);o_navThumbs=o_nav==="thumbs";if(o_navThumbs){frameDraw(size,"navThumb");$navFrame=$navThumbFrame;navFrameKey=NAV_THUMB_FRAME_KEY;setStyle($style,$.Fotorama.jst.style({w:o_thumbSide,h:o_thumbSide2,b:opts.thumbborderwidth,m:opts.thumbmargin,s:stamp,q:!COMPAT}));$nav.addClass(navThumbsClass).removeClass(navDotsClass)}else if(o_nav==="dots"){frameDraw(size,"navDot");$navFrame=$navDotFrame;navFrameKey=NAV_DOT_FRAME_KEY;$nav.addClass(navDotsClass).removeClass(navThumbsClass)}else{o_nav=false;$nav.removeClass(navThumbsClass+" "+navDotsClass)}if(o_nav){if(o_navTop){$navWrap.insertBefore($stage)}else{$navWrap.insertAfter($stage)}frameAppend.nav=false;frameAppend($navFrame,$navShaft,"nav")}o_allowFullScreen=opts.allowfullscreen;if(o_allowFullScreen){$fullscreenIcon.appendTo($stage);o_nativeFullScreen=FULLSCREEN&&o_allowFullScreen==="native"}else{$fullscreenIcon.detach();o_nativeFullScreen=false}classes[addOrRemove(o_fade)].push(wrapFadeClass);classes[addOrRemove(!o_fade)].push(wrapSlideClass);classes[addOrRemove(o_rtl)].push(wrapRtlClass);o_shadows=opts.shadows&&!SLOW;classes[addOrRemove(!o_shadows)].push(wrapNoShadowsClass);$wrap.addClass(classes.add.join(" ")).removeClass(classes.remove.join(" "));lastOptions=$.extend({},opts)}function normalizeIndex(index){return index<0?(size+index%size)%size:index>=size?index%size:index}function limitIndex(index){return minMaxLimit(index,0,size-1)}function edgeIndex(index){return o_loop?normalizeIndex(index):limitIndex(index)}function getPrevIndex(index){return index>0||o_loop?index-1:false}function getNextIndex(index){return index1&&data[index]===dataFrame&&!dataFrame.html&&!dataFrame.deleted&&!dataFrame.video&&!fullFLAG){dataFrame.deleted=true;that.splice(index,1)}}}function loaded(){$.Fotorama.measures[src]=imgData.measures=$.Fotorama.measures[src]||{width:img.width,height:img.height,ratio:img.width/img.height};setMeasures(imgData.measures.width,imgData.measures.height,imgData.measures.ratio,index);$img.off("load error").addClass(imgClass+(fullFLAG?" "+imgFullClass:"")).prependTo($frame);fit($img,specialMeasures||measures,specialFit||dataFrame.fit||opts.fit);$.Fotorama.cache[src]=frameData.state="loaded";setTimeout(function(){$frame.trigger("f:load").removeClass(loadingClass+" "+errorClass).addClass(loadedClass+" "+(fullFLAG?loadedFullClass:loadedImgClass));if(type==="stage"){triggerTriggerEvent("load")}},5)}if(!src){error();return}function waitAndLoad(){var _i=10;waitFor(function(){return!touchedFLAG||!_i--&&!SLOW},function(){loaded()})}if(!$.Fotorama.cache[src]){$.Fotorama.cache[src]="*";$img.on("load",waitAndLoad).on("error",error)}else{(function justWait(){if($.Fotorama.cache[src]==="error"){error()}else if($.Fotorama.cache[src]==="loaded"){setTimeout(waitAndLoad,0)}else{setTimeout(justWait,100)}})()}frameData.state="";img.src=src})}function spinnerSpin($el){$spinner.append(spinner.spin().el).appendTo($el)}function spinnerStop(){$spinner.detach();spinner&&spinner.stop()}function updateFotoramaState(){var $frame=that.activeFrame[STAGE_FRAME_KEY];if($frame&&!$frame.data().state){spinnerSpin($frame);$frame.on("f:load f:error",function(){$frame.off("f:load f:error");spinnerStop()})}}function frameDraw(indexes,type){eachIndex(indexes,type,function(i,index,dataFrame,$frame,key,frameData){if($frame)return;$frame=dataFrame[key]=$wrap[key].clone();frameData=$frame.data();frameData.data=dataFrame;if(type==="stage"){if(dataFrame.html){$('
      ').append(dataFrame._html?$(dataFrame.html).removeAttr("id").html(dataFrame._html):dataFrame.html).appendTo($frame)}if(opts.captions&&dataFrame.caption){$(div(captionClass,div(captionWrapClass,dataFrame.caption))).appendTo($frame)}dataFrame.video&&$frame.addClass(stageFrameVideoClass).append($videoPlay.clone());$stageFrame=$stageFrame.add($frame)}else if(type==="navDot"){$navDotFrame=$navDotFrame.add($frame)}else if(type==="navThumb"){frameData.$wrap=$frame.children(":first");$navThumbFrame=$navThumbFrame.add($frame);if(dataFrame.video){$frame.append($videoPlay.clone())}}})}function callFit($img,measuresToFit,method){return $img&&$img.length&&fit($img,measuresToFit,method)}function stageFramePosition(indexes){eachIndex(indexes,"stage",function(i,index,dataFrame,$frame,key,frameData){if(!$frame)return;toDetach[STAGE_FRAME_KEY][normalizeIndex(index)]=$frame.css($.extend({left:o_fade?0:getPosByIndex(index,measures.w,opts.margin,repositionIndex)},o_fade&&getDuration(0)));if(isDetached($frame[0])){$frame.appendTo($stageShaft);unloadVideo(dataFrame.$video)}var method=dataFrame.fit||opts.fit;callFit(frameData.$img,measures,method);callFit(frameData.$full,measures,method)})}function thumbsDraw(pos,loadFLAG){if(o_nav!=="thumbs"||isNaN(pos))return;var leftLimit=-pos,rightLimit=-pos+measures.w;$navThumbFrame.each(function(){var $this=$(this),thisData=$this.data(),eq=thisData.eq,specialMeasures={h:o_thumbSide2},specialFit="cover";specialMeasures.w=thisData.w;if(thisData.l+thisData.wrightLimit||callFit(thisData.$img,specialMeasures,specialFit))return;loadFLAG&&loadImg([eq],"navThumb",specialMeasures,specialFit)})}function frameAppend($frames,$shaft,type){if(!frameAppend[type]){var thumbsFLAG=type==="nav"&&o_navThumbs,left=0;$shaft.append($frames.filter(function(){var actual,$this=$(this),frameData=$this.data();for(var _i=0,_l=data.length;_i<_l;_i++){if(frameData.data===data[_i]){actual=true;frameData.eq=_i;break}}return actual||$this.remove()&&false}).sort(function(a,b){return $(a).data().eq-$(b).data().eq}).each(function(){if(!thumbsFLAG)return;var $this=$(this),frameData=$this.data(),thumbwidth=Math.round(o_thumbSide2*frameData.data.thumbratio)||o_thumbSide;frameData.l=left;frameData.w=thumbwidth;$this.css({width:thumbwidth});left+=thumbwidth+opts.thumbmargin}));frameAppend[type]=true}}function getDirection(x){return x-stageLeft>measures.w/3}function disableDirrection(i){return!o_loop&&(!(activeIndex+i)||!(activeIndex-size+i))&&!$videoPlaying}function arrsUpdate(){$arrPrev.toggleClass(arrDisabledClass,disableDirrection(0));$arrNext.toggleClass(arrDisabledClass,disableDirrection(1))}function stageWheelUpdate(){if(stageWheelTail.ok){stageWheelTail.prevent={"<":disableDirrection(0),">":disableDirrection(1)}}}function getNavFrameBounds($navFrame){var navFrameData=$navFrame.data(),left,width;if(o_navThumbs){left=navFrameData.l;width=navFrameData.w}else{left=$navFrame.position().left;width=$navFrame.width()}return{c:left+width/2,min:-left+opts.thumbmargin*10,max:-left+measures.w-width-opts.thumbmargin*10}}function slideThumbBorder(time){var navFrameData=that.activeFrame[navFrameKey].data();slide($thumbBorder,{time:time*.9,pos:navFrameData.l,width:navFrameData.w-opts.thumbborderwidth*2})}function slideNavShaft(options){var $guessNavFrame=data[options.guessIndex][navFrameKey];if($guessNavFrame){var overflowFLAG=navShaftTouchTail.min!==navShaftTouchTail.max,activeNavFrameBounds=overflowFLAG&&getNavFrameBounds(that.activeFrame[navFrameKey]),l=overflowFLAG&&(options.keep&&slideNavShaft.l?slideNavShaft.l:minMaxLimit((options.coo||measures.w/2)-getNavFrameBounds($guessNavFrame).c,activeNavFrameBounds.min,activeNavFrameBounds.max)),pos=overflowFLAG&&minMaxLimit(l,navShaftTouchTail.min,navShaftTouchTail.max),time=options.time*.9;slide($navShaft,{time:time,pos:pos||0,onEnd:function(){thumbsDraw(pos,true)}});setShadow($nav,findShadowEdge(pos,navShaftTouchTail.min,navShaftTouchTail.max));slideNavShaft.l=l}}function navUpdate(){deactivateFrames(navFrameKey);toDeactivate[navFrameKey].push(that.activeFrame[navFrameKey].addClass(activeClass))}function deactivateFrames(key){var _toDeactivate=toDeactivate[key];while(_toDeactivate.length){_toDeactivate.shift().removeClass(activeClass)}}function detachFrames(key){var _toDetach=toDetach[key];$.each(activeIndexes,function(i,index){delete _toDetach[normalizeIndex(index)]});$.each(_toDetach,function(index,$frame){delete _toDetach[index];$frame.detach()})}function stageShaftReposition(skipOnEnd){repositionIndex=dirtyIndex=activeIndex;var dataFrame=that.activeFrame,$frame=dataFrame[STAGE_FRAME_KEY];if($frame){deactivateFrames(STAGE_FRAME_KEY);toDeactivate[STAGE_FRAME_KEY].push($frame.addClass(activeClass));skipOnEnd||that.show.onEnd(true);stop($stageShaft,0,true);detachFrames(STAGE_FRAME_KEY);stageFramePosition(activeIndexes);setStageShaftMinmaxAndSnap();setNavShaftMinmax()}}function extendMeasures(options,optsLeave){options&&$.extend(measures,{width:options.width||measures.width,height:options.height,minwidth:options.minwidth,maxwidth:options.maxwidth,minheight:options.minheight,maxheight:options.maxheight,ratio:getRatio(options.ratio)})&&!optsLeave&&$.extend(opts,{width:measures.width,height:measures.height,minwidth:measures.minwidth,maxwidth:measures.maxwidth,minheight:measures.minheight,maxheight:measures.maxheight,ratio:measures.ratio})}function triggerEvent(event,extra){$fotorama.trigger(_fotoramaClass+":"+event,[that,extra])}function onTouchStart(){clearTimeout(onTouchEnd.t);touchedFLAG=1;if(opts.stopautoplayontouch){that.stopAutoplay()}else{pausedAutoplayFLAG=true}}function onTouchEnd(){onTouchEnd.t=setTimeout(function(){touchedFLAG=0},TRANSITION_DURATION+TOUCH_TIMEOUT)}function releaseAutoplay(){pausedAutoplayFLAG=!!($videoPlaying||stoppedAutoplayFLAG)}function changeAutoplay(){clearTimeout(changeAutoplay.t);if(!opts.autoplay||pausedAutoplayFLAG){if(that.autoplay){that.autoplay=false;triggerEvent("stopautoplay")}return}if(!that.autoplay){that.autoplay=true;triggerEvent("startautoplay")}var _activeIndex=activeIndex;var frameData=that.activeFrame[STAGE_FRAME_KEY].data();waitFor(function(){return frameData.state||_activeIndex!==activeIndex},function(){changeAutoplay.t=setTimeout(function(){if(pausedAutoplayFLAG||_activeIndex!==activeIndex)return;that.show(o_loop?getDirectionSign(!o_rtl):normalizeIndex(activeIndex+(o_rtl?-1:1)))},opts.autoplay)})}that.startAutoplay=function(interval){if(that.autoplay)return this;pausedAutoplayFLAG=stoppedAutoplayFLAG=false;setAutoplayInterval(interval||opts.autoplay);changeAutoplay();return this};that.stopAutoplay=function(){if(that.autoplay){pausedAutoplayFLAG=stoppedAutoplayFLAG=true;changeAutoplay()}return this};that.show=function(options){var index;if(typeof options!=="object"){index=options;options={}}else{index=options.index}index=index===">"?dirtyIndex+1:index==="<"?dirtyIndex-1:index==="<<"?0:index===">>"?size-1:index;index=isNaN(index)?getIndexFromHash(index,data,true):index;index=typeof index==="undefined"?activeIndex||0:index;that.activeIndex=activeIndex=edgeIndex(index);prevIndex=getPrevIndex(activeIndex);nextIndex=getNextIndex(activeIndex);activeIndexes=[activeIndex,prevIndex,nextIndex];dirtyIndex=o_loop?index:activeIndex;var diffIndex=Math.abs(lastActiveIndex-dirtyIndex),time=getNumber(options.time,function(){return Math.min(o_transitionDuration*(1+(diffIndex-1)/12),o_transitionDuration*2)}),overPos=options.overPos;if(options.slow)time*=10;that.activeFrame=activeFrame=data[activeIndex];unloadVideo($videoPlaying,activeFrame.i!==data[normalizeIndex(repositionIndex)].i);frameDraw(activeIndexes,"stage");stageFramePosition(SLOW?[dirtyIndex]:[dirtyIndex,getPrevIndex(dirtyIndex),getNextIndex(dirtyIndex)]);updateTouchTails("go",true);options.reset||triggerEvent("show",{user:options.user,time:time});var onEnd=that.show.onEnd=function(skipReposition){if(onEnd.ok)return;onEnd.ok=true;updateFotoramaState();loadImg(activeIndexes,"stage");skipReposition||stageShaftReposition(true);options.reset||triggerEvent("showend",{user:options.user});updateTouchTails("go",false);stageWheelUpdate();stageCursor();releaseAutoplay();changeAutoplay()};if(!o_fade){slide($stageShaft,{pos:-getPosByIndex(dirtyIndex,measures.w,opts.margin,repositionIndex),overPos:overPos,time:time,onEnd:onEnd,_001:true})}else{var $activeFrame=activeFrame[STAGE_FRAME_KEY],$prevActiveFrame=activeIndex!==lastActiveIndex?data[lastActiveIndex][STAGE_FRAME_KEY]:null;fade($activeFrame,$prevActiveFrame,$stageFrame,{time:time,method:opts.transition,onEnd:onEnd},fadeStack)}arrsUpdate();if(o_nav){navUpdate();var guessIndex=limitIndex(activeIndex+minMaxLimit(dirtyIndex-lastActiveIndex,-1,1));slideNavShaft({time:time,coo:guessIndex!==activeIndex&&options.coo,guessIndex:typeof options.coo!=="undefined"?guessIndex:activeIndex});if(o_navThumbs)slideThumbBorder(time)}showedFLAG=typeof lastActiveIndex!=="undefined"&&lastActiveIndex!==activeIndex;lastActiveIndex=activeIndex;opts.hash&&showedFLAG&&!that.eq&&setHash(activeFrame.id||activeIndex+1);return this};that.requestFullScreen=function(){if(o_allowFullScreen&&!that.fullScreen){scrollTop=$WINDOW.scrollTop();scrollLeft=$WINDOW.scrollLeft();lockScroll(0,0);updateTouchTails("x",true);measuresStash=$.extend({},measures);$fotorama.addClass(fullscreenClass).appendTo($BODY.addClass(_fullscreenClass));$HTML.addClass(_fullscreenClass);unloadVideo($videoPlaying,true,true);that.fullScreen=true;if(o_nativeFullScreen){fullScreenApi.request(fotorama)}that.resize();loadImg(activeIndexes,"stage");updateFotoramaState();triggerEvent("fullscreenenter")}return this};function cancelFullScreen(){if(that.fullScreen){that.fullScreen=false;if(FULLSCREEN){fullScreenApi.cancel(fotorama)}$BODY.removeClass(_fullscreenClass);$HTML.removeClass(_fullscreenClass);$fotorama.removeClass(fullscreenClass).insertAfter($anchor);measures=$.extend({},measuresStash);unloadVideo($videoPlaying,true,true);updateTouchTails("x",false);that.resize();loadImg(activeIndexes,"stage");lockScroll(scrollLeft,scrollTop);triggerEvent("fullscreenexit")}}that.cancelFullScreen=function(){if(o_nativeFullScreen&&fullScreenApi.is()){fullScreenApi.cancel(document)}else{cancelFullScreen()}return this};if(document.addEventListener){document.addEventListener(fullScreenApi.event,function(){if(data&&!fullScreenApi.is()&&!$videoPlaying){cancelFullScreen()}},false)}that.resize=function(options){if(!data)return this;extendMeasures(!that.fullScreen?optionsToLowerCase(options):{width:"100%",maxwidth:null,minwidth:null,height:"100%",maxheight:null,minheight:null},that.fullScreen);var time=arguments[1]||0,setFLAG=arguments[2],width=measures.width,height=measures.height,ratio=measures.ratio,windowHeight=$WINDOW.height();if(measureIsValid(width)){$wrap.addClass(wrapOnlyActiveClass).css({width:width,minWidth:measures.minwidth,maxWidth:measures.maxwidth});width=measures.W=measures.w=$wrap.width();if(opts.glimpse){measures.w-=Math.round((numberFromPercent(opts.glimpse)/100*width||numberFromMeasure(opts.glimpse)||0)*2)}$stageShaft.css({width:measures.w,marginLeft:(measures.W-measures.w)/2});height=numberFromPercent(height)/100*windowHeight||numberFromMeasure(height);height=height||ratio&&width/ratio;if(height){width=Math.round(width);height=measures.h=Math.round(minMaxLimit(height,numberFromPercent(measures.minheight)/100*windowHeight||numberFromMeasure(measures.minheight),numberFromPercent(measures.maxheight)/100*windowHeight||numberFromMeasure(measures.maxheight)));stageShaftReposition();$stage.stop().animate({width:width,height:height},time,function(){$wrap.removeClass(wrapOnlyActiveClass)});if(o_nav){$nav.stop().animate({width:width},time);slideNavShaft({guessIndex:activeIndex,time:time,keep:true});if(o_navThumbs&&frameAppend.nav)slideThumbBorder(time)}measuresSetFLAG=setFLAG||true;ready()}}stageLeft=$stage.offset().left;return this};that.setOptions=function(options){$.extend(opts,options);reset();return this};that.shuffle=function(){data&&shuffle(data)&&reset();return this};function setShadow($el,edge){if(o_shadows){$el.removeClass(shadowsLeftClass+" "+shadowsRightClass);edge&&!$videoPlaying&&$el.addClass(edge.replace(/^|\s/g," "+shadowsClass+"--"))}}that.destroy=function(){that.cancelFullScreen();that.stopAutoplay();data=that.data=null;appendElements();activeIndexes=[];detachFrames(STAGE_FRAME_KEY);return this};that.playVideo=function(){var dataFrame=that.activeFrame,video=dataFrame.video,_activeIndex=activeIndex;if(typeof video==="object"&&dataFrame.videoReady){o_nativeFullScreen&&that.fullScreen&&that.cancelFullScreen();waitFor(function(){return!fullScreenApi.is()||_activeIndex!==activeIndex},function(){if(_activeIndex===activeIndex){dataFrame.$video=dataFrame.$video||$($.Fotorama.jst.video(video));dataFrame.$video.appendTo(dataFrame[STAGE_FRAME_KEY]);$wrap.addClass(wrapVideoClass);$videoPlaying=dataFrame.$video;stageNoMove();triggerEvent("loadvideo")}})}return this};that.stopVideo=function(){unloadVideo($videoPlaying,true,true);return this};function unloadVideo($video,unloadActiveFLAG,releaseAutoplayFLAG){if(unloadActiveFLAG){$wrap.removeClass(wrapVideoClass);$videoPlaying=false;stageNoMove()}if($video&&$video!==$videoPlaying){$video.remove();triggerEvent("unloadvideo")}if(releaseAutoplayFLAG){releaseAutoplay();changeAutoplay()}}function toggleControlsClass(FLAG){$wrap.toggleClass(wrapNoControlsClass,FLAG)}function stageCursor(e){if(stageShaftTouchTail.flow)return;var x=e?e.pageX:stageCursor.x,pointerFLAG=x&&!disableDirrection(getDirection(x))&&opts.click;if(stageCursor.p!==pointerFLAG&&(o_fade||!opts.swipe)&&$stage.toggleClass(pointerClass,pointerFLAG)){stageCursor.p=pointerFLAG;stageCursor.x=x}}$stage.on("mousemove",stageCursor);function onStageTap(e,toggleControlsFLAG){var target=e.target,$target=$(target);if($target.hasClass(videoPlayClass)){that.playVideo()}else if(target===fullscreenIcon){that[(that.fullScreen?"cancel":"request")+"FullScreen"]()}else if($videoPlaying){target===videoClose&&unloadVideo($videoPlaying,true,true)}else{if(toggleControlsFLAG){toggleControlsClass()}else if(opts.click){that.show({index:e.shiftKey||getDirectionSign(getDirection(e._x)),slow:e.altKey,user:true})}}}function updateTouchTails(key,value){stageShaftTouchTail[key]=navShaftTouchTail[key]=value}stageShaftTouchTail=moveOnTouch($stageShaft,{onStart:onTouchStart,onMove:function(e,result){setShadow($stage,result.edge)},onTouchEnd:onTouchEnd,onEnd:function(result){setShadow($stage);var toggleControlsFLAG=(MS_POINTER&&!hoverFLAG||result.touch)&&opts.arrows;if(result.moved||toggleControlsFLAG&&result.pos!==result.newPos){var index=getIndexByPos(result.newPos,measures.w,opts.margin,repositionIndex);that.show({index:index,time:o_fade?o_transitionDuration:result.time,overPos:result.overPos,user:true})}else if(!result.aborted){onStageTap(result.startEvent,toggleControlsFLAG)}},_001:true,timeLow:1,timeHigh:1,friction:2,select:"."+selectClass+", ."+selectClass+" *",$wrap:$stage});navShaftTouchTail=moveOnTouch($navShaft,{onStart:onTouchStart,onMove:function(e,result){setShadow($nav,result.edge)},onTouchEnd:onTouchEnd,onEnd:function(result){function onEnd(){slideNavShaft.l=result.newPos;releaseAutoplay();changeAutoplay();thumbsDraw(result.newPos,true)}if(!result.moved){var target=result.$target.closest("."+navFrameClass,$navShaft)[0];target&&onNavFrameClick.call(target,result.startEvent)}else if(result.pos!==result.newPos){slide($navShaft,{time:result.time,pos:result.newPos,overPos:result.overPos,onEnd:onEnd});thumbsDraw(result.newPos);o_shadows&&setShadow($nav,findShadowEdge(result.newPos,navShaftTouchTail.min,navShaftTouchTail.max))}else{onEnd()}},timeLow:.5,timeHigh:2,friction:5,$wrap:$nav});stageWheelTail=wheel($stage,{shift:true,onEnd:function(e,direction){onTouchStart();onTouchEnd();that.show({index:direction,slow:e.altKey})}});navWheelTail=wheel($nav,{onEnd:function(e,direction){onTouchStart();onTouchEnd();var newPos=stop($navShaft)+direction*.25;$navShaft.css(getTranslate(minMaxLimit(newPos,navShaftTouchTail.min,navShaftTouchTail.max)));o_shadows&&setShadow($nav,findShadowEdge(newPos,navShaftTouchTail.min,navShaftTouchTail.max));navWheelTail.prevent={"<":newPos>=navShaftTouchTail.max,">":newPos<=navShaftTouchTail.min};clearTimeout(navWheelTail.t);navWheelTail.t=setTimeout(function(){thumbsDraw(newPos,true)},TOUCH_TIMEOUT);thumbsDraw(newPos)}});$wrap.hover(function(){setTimeout(function(){if(touchedFLAG)return;hoverFLAG=true;toggleControlsClass(!hoverFLAG)},0)},function(){if(!hoverFLAG)return;hoverFLAG=false;toggleControlsClass(!hoverFLAG)});function onNavFrameClick(e,time){var index=$(this).data().eq;that.show({index:index,slow:e.altKey,user:true,coo:e._x-$nav.offset().left,time:time})}smartClick($arrs,function(e){stopEvent(e);that.show({index:$arrs.index(this)?">":"<",slow:e.altKey,user:true})},{onStart:function(){onTouchStart();stageShaftTouchTail.control=true},onTouchEnd:onTouchEnd});function reset(){setData();setOptions();if(!reset.i){reset.i=true;var _startindex=opts.startindex;if(_startindex||opts.hash&&location.hash){startIndex=getIndexFromHash(_startindex||location.hash.replace(/^#/,""),data,that.index===0||_startindex,_startindex)}activeIndex=repositionIndex=dirtyIndex=lastActiveIndex=startIndex=edgeIndex(startIndex)||0}if(size){if(changeToRtl())return;if($videoPlaying){unloadVideo($videoPlaying,true)}activeIndexes=[];detachFrames(STAGE_FRAME_KEY);that.show({index:activeIndex,time:0,reset:reset.ok});that.resize()}else{that.destroy()}reset.ok=true}function changeToRtl(){if(!changeToRtl.f===o_rtl){changeToRtl.f=o_rtl;activeIndex=size-1-activeIndex;that.reverse();return true}}$.each("load push pop shift unshift reverse sort splice".split(" "),function(i,method){that[method]=function(){data=data||[];if(method!=="load"){Array.prototype[method].apply(data,arguments)}else if(arguments[0]&&typeof arguments[0]==="object"&&arguments[0].length){data=clone(arguments[0])}reset();return that}});function ready(){if(!ready.ok){ready.ok=true;triggerEvent("ready")}}reset()};$.fn.fotorama=function(opts){return this.each(function(){var that=this,$fotorama=$(this),fotoramaData=$fotorama.data(),fotorama=fotoramaData.fotorama;if(!fotorama){waitFor(function(){return!isHidden(that)},function(){fotoramaData.urtext=$fotorama.html();new $.Fotorama($fotorama,$.extend({},{width:null,minwidth:null,maxwidth:"100%",height:null,minheight:null,maxheight:null,ratio:null,margin:MARGIN,glimpse:0,nav:"dots",navposition:"bottom",thumbwidth:THUMB_SIZE,thumbheight:THUMB_SIZE,thumbmargin:MARGIN,thumbborderwidth:MARGIN,allowfullscreen:false,fit:"contain",transition:"slide",transitionduration:TRANSITION_DURATION,captions:true,hash:false,startindex:0,loop:false,autoplay:false,stopautoplayontouch:true,keyboard:false,arrows:true,click:true,swipe:true,trackpad:true,shuffle:false,direction:"ltr",shadows:true,spinner:null},window.fotoramaDefaults,opts,fotoramaData))})}else{fotorama.setOptions(opts)}})};$.Fotorama.instances=[];function calculateIndexes(){$.each($.Fotorama.instances,function(index,instance){instance.index=index})}function addInstance(instance){$.Fotorama.instances.push(instance);calculateIndexes()}function hideInstance(instance){$.Fotorama.instances.splice(instance.index,1);calculateIndexes()}$.Fotorama.cache={};$.Fotorama.measures={};$=$||{};$.Fotorama=$.Fotorama||{};$.Fotorama.jst=$.Fotorama.jst||{};$.Fotorama.jst.style=function(v){var __t,__p="",__e=_.escape;__p+=".fotorama"+((__t=v.s)==null?"":__t)+" .fotorama__nav--thumbs .fotorama__nav__frame{\npadding:"+((__t=v.m)==null?"":__t)+"px;\nheight:"+((__t=v.h)==null?"":__t)+"px}\n.fotorama"+((__t=v.s)==null?"":__t)+" .fotorama__thumb-border{\nheight:"+((__t=v.h-v.b*(v.q?0:2))==null?"":__t)+"px;\nborder-width:"+((__t=v.b)==null?"":__t)+"px;\nmargin-top:"+((__t=v.m)==null?"":__t)+"px}";return __p};$.Fotorama.jst.video=function(v){var __t,__p="",__e=_.escape,__j=Array.prototype.join;function print(){__p+=__j.call(arguments,"")}__p+='
      ';return __p};$(function(){$("."+_fotoramaClass+':not([data-auto="false"])').fotorama()})})(window,document,location,window.jQuery); \ No newline at end of file diff --git a/themes/imobile/js/imobile.js b/themes/imobile/js/imobile.js new file mode 100755 index 0000000..40a9509 --- /dev/null +++ b/themes/imobile/js/imobile.js @@ -0,0 +1,106 @@ +$(function() { + + var j=-1; + for (var i in images) { + // generate fotorama DOM + if (images[i].type != 'album') { + if (images[i].type == 'video') { + $('').appendTo('.fotorama'); + } else { + $('').appendTo('.fotorama'); + } + } + + // generate thumbnail DOM + thumbhtml = '
      '; + if (images[i].type == 'album') { + thumbhtml = thumbhtml + '' + thumbhtml = thumbhtml + ''; + thumbhtml = thumbhtml + '
      ' + images[i].caption + '
      '; + } else { + j++; + thumbhtml = thumbhtml + ''; + } + if (images[i].type == 'video') { + thumbhtml = thumbhtml + '
      '; + } + thumbhtml = thumbhtml + '
      '; + $(thumbhtml).appendTo('.thumbs'); + } + + $(".thumbnail img").unveil(100, function() { + $(this).load(function() { + this.style.opacity = 1; + }); + }); + + + // fotorama init + fr = $('.fotorama'); + th = $('.thumbs'); + // you can customize the slideshow settings according to http://fotorama.io/customize + fr.fotorama({ + width: '100%', + height: '100%', + allowfullscreen: true, + nav: 'thumbs', + fit: 'contain', + captions: false + }); + + fr.addClass("hide"); + fr.on('fotorama:fullscreenexit ', + function (e, fotorama, extra) { + fr.addClass("hide"); + th.removeClass("hide"); + } + ) + + // album add form autofill + $("#g-add-album-form input[name=title]").change( + function() { + $("#g-add-album-form input[name=name]").val( + $("#g-add-album-form input[name=title]").val() + .replace(/[\s\/]+/g, "-").replace(/\.+$/, "")); + $("#g-add-album-form input[name=slug]").val( + $("#g-add-album-form input[name=title]").val() + .replace(/[^A-Za-z0-9-_]+/g, "-") + .replace(/^-+/, "") + .replace(/-+$/, "")); + }); + + $("#g-add-album-form input[name=title]").keyup( + function() { + $("#g-add-album-form input[name=name]").val( + $("#g-add-album-form input[name=title]").val() + .replace(/[\s\/]+/g, "-") + .replace(/\.+$/, "")); + $("#g-add-album-form input[name=slug]").val( + $("#g-add-album-form input[name=title]").val() + .replace(/[^A-Za-z0-9-_]+/g, "-") + .replace(/^-+/, "") + .replace(/-+$/, "")); + }); + + // item add form autofill + $("#item_file").change( + function() { + //strip the extention + input = $(this).val(); + //title = "C:\\fakepath\\" + input.substr(0, input.lastIndexOf('.')) || input; + title = input.substr(0, input.lastIndexOf('.')) || input; + //set the default name of the title + $('#item_title').val(title); + }); +}); + +function startFotorama(index) { + fr.removeClass("hide"); + th.addClass("hide"); + + var $fotoramaDiv = fr.fotorama(); + var fotorama = $fotoramaDiv.data('fotorama'); + + fotorama.show(index); + fotorama.requestFullScreen(); +} diff --git a/themes/imobile/js/imobile.min.js b/themes/imobile/js/imobile.min.js new file mode 100755 index 0000000..7882a45 --- /dev/null +++ b/themes/imobile/js/imobile.min.js @@ -0,0 +1 @@ +$(function(){var j=-1;for(var i in images){if(images[i].type!="album"){if(images[i].type=="video"){$('').appendTo(".fotorama")}else{$('').appendTo(".fotorama")}}thumbhtml='
      ';if(images[i].type=="album"){thumbhtml=thumbhtml+'';thumbhtml=thumbhtml+'';thumbhtml=thumbhtml+'
      '+images[i].caption+"
      "}else{j++;thumbhtml=thumbhtml+''}if(images[i].type=="video"){thumbhtml=thumbhtml+'
      '}thumbhtml=thumbhtml+"
      ";$(thumbhtml).appendTo(".thumbs")}$(".thumbnail img").unveil(100,function(){$(this).load(function(){this.style.opacity=1})});fr=$(".fotorama");th=$(".thumbs");fr.fotorama({width:"100%",height:"100%",allowfullscreen:true,nav:"thumbs",fit:"contain",captions:false});fr.addClass("hide");fr.on("fotorama:fullscreenexit ",function(e,fotorama,extra){fr.addClass("hide");th.removeClass("hide")});$("#g-add-album-form input[name=title]").change(function(){$("#g-add-album-form input[name=name]").val($("#g-add-album-form input[name=title]").val().replace(/[\s\/]+/g,"-").replace(/\.+$/,""));$("#g-add-album-form input[name=slug]").val($("#g-add-album-form input[name=title]").val().replace(/[^A-Za-z0-9-_]+/g,"-").replace(/^-+/,"").replace(/-+$/,""))});$("#g-add-album-form input[name=title]").keyup(function(){$("#g-add-album-form input[name=name]").val($("#g-add-album-form input[name=title]").val().replace(/[\s\/]+/g,"-").replace(/\.+$/,""));$("#g-add-album-form input[name=slug]").val($("#g-add-album-form input[name=title]").val().replace(/[^A-Za-z0-9-_]+/g,"-").replace(/^-+/,"").replace(/-+$/,""))});$("#item_file").change(function(){input=$(this).val();title=input.substr(0,input.lastIndexOf("."))||input;$("#item_title").val(title)})});function startFotorama(index){fr.removeClass("hide");th.addClass("hide");var $fotoramaDiv=fr.fotorama();var fotorama=$fotoramaDiv.data("fotorama");fotorama.show(index);fotorama.requestFullScreen()} \ No newline at end of file diff --git a/themes/imobile/js/jquery-1.11.0.min.js b/themes/imobile/js/jquery-1.11.0.min.js new file mode 100755 index 0000000..73f33fb --- /dev/null +++ b/themes/imobile/js/jquery-1.11.0.min.js @@ -0,0 +1,4 @@ +/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ +!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="
      ",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f +}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthh;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="
      a",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/\s*$/g,sb={option:[1,""],legend:[1,"
      ","
      "],area:[1,"",""],param:[1,"",""],thead:[1,"","
      "],tr:[2,"","
      "],col:[2,"","
      "],td:[3,"","
      "],_default:l.htmlSerialize?[0,"",""]:[1,"X
      ","
      "]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?""!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("

    GEkrUU_2UzAC&rA(Z-xKe@(%QA~ zHe-M0tExZ^X?pfq=Um)Y9YOQBa_Rk5-M)854MHxz{=Tl|)7)IIqVsWOMcb3B_&KK_ zMV#W+@tN^E&1=*5HtJe`Q>**EY}EDTV%3dL3HYI5ZRY!@9qm*G2aRIzC~dU#x`^&4 u7u(z8DICUnB`^1c{CXYA(u>fnnDp^@m#W$^-9ugeN7Kk5q)UErr~U?*>bH*o literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-eext.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..4e735c80265433e94e4f876e2e3cd7494d3de9c8 GIT binary patch literal 2092 zcmdT_ZB&wH7^cjLl%_R{%CO9jf`%dzYUC#%DxmUVT4yoO1k#$IQqC}K=>&`scUtzR@2Qx%qQy!U-S*ZujN=Y3^y z^hgKTS{MWZafqT284$=KI(T4E8(@hhQa6Iv5`Gvh3<9~RSo$W}7U=duN>UaC;@E9{ z76sTcJ%DkIh?FQ|3V5RISJ2n(y7o!vrHKyYz!S&+dBgTb7go!#8ruvqNhMkgmHUteDeg#w4e zsZ=Uh5eUT2ojbW)uBWG`ySsaOdb*dF7Yc>S$jHdc%fsXGLZJ|Y!Gwp0)9LiY#Kg^; zHzSeAq@<+6!a}K33bsm0NgxLXdNdmC@9$qxQ4ty%io@Z^WU^MPB@hUDy*@ZN zxV^o-udgpCD2T;k0e)_7ZdX?q*ac*zQVB8w0a$<+NJk=(%FD}vJE#`Ok&%&S&z|k= z?Hw8#iin5+MzL6|R;#0;qGDoVKw%>zBfyJDBrcGFJvurX^cWi(8y_DJGA1M>02-gq z7YGCjg#z&J-Ma_EF3@N+8X)j^Jh@!1QmH^p&@Yq8OiN1xGXb4~>_C;tWMyS#z=gqJ z0REmmdpI0UK|ui+0{w|?sFKJ575s(9lxq`EZy7mOiwfOYM;bZJJg8jPg=U39cyMV zwu~ALZ8@#u`_m`74w-G7OIK4=I+VM*)7vLM|1On;GSM!T*e!Y8otYczq z+-UUb&YLPnnNOJCKDghByV9xcwB(xCDDBo~8=g;4O?M3@j*k$*Q0+-I8L6hjue1*c z^>NtQe0=7M_M_&hOy#Ay%Ldjfgx$+O=4J>ueo)|V!k#E$kG=Obd+!?Iikc6q)i`|% zqAqzKcp=A!)BdU38uLSI|7{lY3UKQVql&-VxV}>=_179*Ws}LOS_)6bWs^-p#L3rU zA3xm?5<8%NK)8@vYTT-mCq7y>(0jdAr6Q#yC0vJZCpxBCg8FYzb#UhyGneA{tZ`gg z%B>1~ICD-Xbse(Ay73gyx?$79y>mj_$34UIoayH0qY`dO*Q>Jeitxuh%1Tbni#7#S zpy920BoIrQEw;GqkhibSZEw=yw literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-ext.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-flm-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..9c0bff5de701262e01ea4dd8ca0a809798721b79 GIT binary patch literal 2048 zcmdT_dpOg37++B?oiL@WL@l?bFtf(o+02HyY;!Ai+$Nj0u}NjrbI4qVgfteB>yW1u zCzm>vQ-{$7N2GLgAv!ouCltcuEfn3eqv=X`j*eYDNKpq65_JjOd#~jK~ z0ZtenAHb(@82p6LxJZb1Xf&H|O2$)nA48dgwu1S(8diN^4C4MN3O-O$Sm{RTT<_>gnmBP^f>L8X6kr=H_m0Zra+~9v&V* z>gwwH`};>mMj99xz~OKxLht0iF9^$CX>kl0RhIw#s~x= zFfcGRH8njw9W3SKlq$;{!7K`S}4_R8$m) z!^zFf1^nURVGwqW=IQAP2n+^8BobY`coD<|{Zc3tCX)$f0y+iRftit!k)NLrw)pz` z0)9wH2%Sz(Nl5`i0RF0~s+yXbh=_=|xVWOCqU!4Ew6ruZ4WUqY=auzAa14WdUovIg zdc_SJm6TOfH+{2NOFVv?1K+D}U}$8#4`H(ZfT@`|(gJ0P zK8Ufh#@g80**iEmIyyNyIXkHH0FXmUs-5-_4K zCeUuq=m0(>Oie*3kJVItG5}wEo8IA}epr2O@#;7W%WU za#9DR|I&KvRJF&6O*9%=$LiMsVORI6!`-4FR#PwnA!SyxtE=H~1AZwLcfG;_WzsCI ztg9_B#fhu|OV5G9pcI}1`Mupq%$(FkzgT*bHP9iR{M^q_m@FN*+0eA~s=k1ld636B zIu?T|DQRsQTXDp_+2A`lotge_wp;d64^7Dsj=np zzLAp1z~$e%Yfd!35b!6nM$KHPG_A`#l2qE0E*oXFtQoqCaC^~n_hDvs}th!xbgEgtyeG!7*un2 z6W!)*kL{ZdhffP^&sp~Lto=(t+Jw`C;JG#o1r^Wv{plu&kXqv(ghEkxWl0Dt^?ifA zf4t1r>1_N(&@P!cYR@(+?0n#4CrGyS>JyXIY$RMw3HL6MdsoFsqGkKZ$=j4g~knmTNva>paUhUAmG7DbU zYl1)2x^l71zE>A&UtjX$lMmynJ!k5dZ$GC$y`e7CNt!WgH#yUD25olRYKo;N9`oqi zfB)rz8hvpSb2fQpJ~w`frOv59gf*>B6I!<=qZiG133JQ0pEk$uf*y#!ASJyRwfjEy zwQ^}vVn_R_Yo!NdSXYL7o_Ai)@eeEDS$|YIw-}l9b5VTo5Hc*HUb?5k7rE5G!*MyX zlQ8%GT{w<-g9Od%5seupoL-PT)DFk#g^NVBe&^sL7MHWx+}S=@-ji?~gNoiq^ywCj zc?3S3lZnMp7)(q9pJXXxn!&U!Sa{n|+uPgIfcUJ04Xa!sw%0J^{~;otjJx9e?RS3x D!I2mk literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-flm.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-flm.png new file mode 100755 index 0000000000000000000000000000000000000000..460ee7c14b08f500c0896671aa89df9676f2cfe4 GIT binary patch literal 1811 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-sqr-ext.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-sqr-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..d2e268ead43f6e8a2243d01793183672b93216a9 GIT binary patch literal 2187 zcmdT_c~FvR7^k#6%7e<%4lK(fG!O93JOM$45XICcStfzhRuJh>On1^%P!vte6wG2h z0wZU0v-LnLt)>;rJjhY8wi+vwT8GZ9bYHS*XLn}*^Pm0AeDC)>&-Z(uhFw)t>*>fOQ9uI*m%_2rbqXGGU3PVFf z(7B$TP8+bAnVA7&VKp!?SQrWz78Vu@Hdu{~jiFGewY4=8iToBcH#c{6b;V+_mX?+g z5fNa8!C-s#?4i+Uwzjr5Ha4lLsdjdDj*gCLX=&Nn*P50 zIKbiXxVX5yygVL{2OgD_lz^Nfk*Kb&&e_@7-QE4<$&-PBfgTnl? zfB)9j*52M;Utizo=xD&t%F62M>H<#zxw^Uo!|Edx!0CN2eXmF0O6} zq`QZwm$#4aPQP9L0Re%5K|w*m!66|iGzJrj)y)|e9)SmQMn#dybw2=|e&9e# z%0V5{($dq@IULRrpjmD%=&7K9$1f}@Dk>HVOHTk)oYDcbTzMLx>fZpT^9A70bP$Wh zK%%cW15n#2KU0V}4PMx@I8;#d(J{?vUkRCP{=@I>7Zi7s4%(dkVcYWJN^jz-TY@aZ z)s(T`b77s3!Lv(!@=OP~&15oRqxZ~^0b_pNkdiD{9G0FxFRN;=sxIVJ3}ld?_X>Yg zUQo(TG)R)Cr&9ZeA5N4bkq8878@i4!Yx88vt3*9*_6$@aXMOZM>uK zxn)UJ-y|9(CBKy8hurZ|DJFM5d&}QFQ+GC*mK~5y%kf(JnWy0*6ET|Jtlh9l5$+A~#S#^lEDuhiyz7-@oS*6ftD ze9m}P;Kg8`qG@{UYp41TYwy*#q;{{2B$EYqwo7I3tGlI3m;-Od?1zRJTjLv;ibQUFWUd7H^&sqWYc>iolKvPqEU4?+7#B^?8R#o zBHXD7k({qB9e%(qi#r)pm9}=-Q!2hFkse3uUC&^_JkMxmoNW3oA#RRtVH3yi`(Wtt zH+Z~Smk>5FK!XuD^(mo3>wV}arIR^-x^hwPFQl#w?JIC}Sar%HW5X?;hSP-g@+{X7=UW?aWrE7nW5!(7|Z<DVHBV%@W}zL#5M R)ua0*;?M-t#o+Ib{{@a;P+R~2 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-sqr.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-sqr.png new file mode 100755 index 0000000000000000000000000000000000000000..da450390d621a0ee4b9fc61bdf95476a69c1ba2c GIT binary patch literal 3675 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-wd-eext.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-wd-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..bf8b2e7c9da55420d7c24bf7ab55bd8c911e130a GIT binary patch literal 2051 zcmdT_c{tR07$1?V%~07!Ioiq9XdN>c_c=EPbL425wHP@X!%W%DP!E=IMAnrt$TgTu zb`hm$i(M;}qere-ZA-M+o>C(0cUI5t^X%XKv!Cag_j%v<`+4u@_e{DM8NXNgkTL`U z*-Io~C=iGY8R&l~$^v=Z_>S~JF3j1(83OqsXV3ef-N0626Z|+3h{|2*Pv%B$=+JvbcBVzKn~^^J^-Vq#(v6BE&BG@H#fGc$8>aUqk*zP`SOhK2|P!q3ky zB_)N==Yyy0>}-&;q@<*}y4u*-*xcN_prF9X$;raP0*AxZ*Vo(G*-0c42M34N*4FOs zZW|jL8jS|{JRYyJvlF}mvOpjJ6@dagAPSVjVzK%8`5+v03v@glUr|xf)zvjTJnZV~ z3Y_ur@s*X8L?Y46%?&g*IywrXFc{1Z8Td&g5}47`)6?7A8&o`T;sl_Dg@r{&N9W|^ z0RGt67)ZNA^YHKh1SXT2m6cUmS_*Q4d8t%tL_`GG378aA2WEPDdR|^02%%6YfFBqb z$Y3y%las*`fWM}urna^=BqSs@Hnym!NF)-arlx{zq@|_ZeQIq9&hUs!AyZ{`$?cX` zP*hUh^T}QnsH)n&{Rh-PJqXh{bXZeMTj$7U@T0nV`UZx_5Jty8H#RXfL!!(rEYVih zHnw*54vvmaPR`EGE-tRF7%UElCrIZcxw(6QIjK}SogTml3JL~bGEbd~jEs^ZCWgb| zaJk$#u(RZ3&{J9(KRqKeGxK6j&ZX}F@(ZN^Ef-w|DE=?Nb^Zo8niN8z5Ul6}$^go1 zC1n}N%ix2B5i!oRuP2tq`m*VC)eE!j4IK}|qu^IA=*nL#vhv#3lf_fq&zR`0Al-%x zU)g1yqB0oYNT-uEt;`li(q^|E?-lt+HU=ON;s_B-B!a{BxMeg%X&5Y(E z5X480n0t&o@=xYCl3&=LL$8Qkbp_&ckt4T@=id!8W#`LAZZ^!^_b4$)$Nl;;LAIu#x>d>iqP^?7(|1}4oNJ&&+nUzY|m@xkC>BOUsxMiNwjU=o>Jm&9p-kt z>3#iroL{&w**YGDE>Ga`76-pjZTV`+(+D-(aMN=oaC@$JHg>kqw(S}^4vlK=ZDiQ~ ze&6odZO64YERSW@;Na;bA*z^GP~v9C!D4!Nfkv1& zTYI#Hz$~QW8e-(YESG3D)9C~L|pDQrf2 zWx2c|tgk6McbuY2t45aD-Dw&Bv3Y(Y!H=;T8c=j53pOr};MdWzI$Pui6a7|(Hf+{m z-V_N1Q;n=@>(#nqUyJ$~Hq-+^f2`%l>C|cF)-_`=u}YJLi4g=Xu`W|GB>BeKWiW&hm2m z;6-d3yO*Y`REz-fm0S5blvvVzUJFs`ex{zovn8HKJC8eV4 zdJ#C)>DWNJFBPJn35}0{d4-;&&DvQMekFv9~LCnI!LO!2wXlQ6^YMPgqXK!zBW@d)N;eCbKKU>&fea^!NJkd$q9qS;hbG0eY(22dw@QDeThV3FgY|d3;=?nqGDoB zNe~xDqtWPe`WY}YCKJ?@p3ch1%*x8T!r|mx1IYbW0#GvVIzaxv0k-oOz|tfrDk=ga z`iv5Q(#o2WOw@JoZqDK{4t{4x=SI4+iA1G~lTEi;`c9rg+_QccZ1i3BGL1j2jL(-(?Fj1LqsG2O+KxFiysL-#FK^hoy}ucVR4OPv8ng?mm< ziAS4XP|Pi;&N=q*4_~nb3T6c{Kb0n zr}n}+i>^B#C%K-B(EXK}UeyM2T2(a?H=XN8%!Bh9hUrI0`9s|&Vg?o}U;dE@Z8R#+ ztXa$?&2itpt%Dm3G@Pz`L9tz3ULGuKJQ&qETIvt+NwiXN%X$yG{g;OZXDGqcc?tw^ z$!&>0<(+$SF6FnmiGuNo!HM&&E4zA_+4sc>Q~~r(JXNb|sVF4W-i08+l~-!+*V9$KJ--p35Z;#p_KNsFcEsI8N&YT)ECF-d@tezk E0)KrFwg3PC literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/darkglass/images/thumb-wd.png b/themes/greydragon/css/framepacks/darkglass/images/thumb-wd.png new file mode 100755 index 0000000000000000000000000000000000000000..62e78818a44d1473c14a0b467c38f8f24d700d42 GIT binary patch literal 1767 zcmeAS@N?(olHy`uVBq!ia0vp^uYha~60+ z7BevL9ROj*tZSW|Ktah8*NBqf{Irtt#G+J&fW*wa5hJySii3(aez7#Nt! z0(?STfr^J5;Nai@x|x|76e>WHpPwJdfROC$>=5q&8KR=15H^tH;^Gn%6qJ{jH#Rng z3knDb7#J9Mcz8%iNci~p07*GHx$yAt)YMc}RaGS=rM$d6H8nMDZSBIs!n(RTb93{8 zf&xQBLnkLEKR>^ShzJc04J|FL$jHc+mX?l=4xm(DUmwuS*|TRaS+Yb=PtU}}Wa`wZ z4h{~crlxLgZYx)=w6U>SyLPReo!z!=+m0MLVr69&5)uMbUsF@FZ{I$kEKu>RS+jsP z0vSLNpe~?wuCA_Arc4292f7x>c6WDQxNza&!-p?jy5#Ka3>2)cu3ofgk*BApx3@RY zVb`u*1L|^dae*iXihFr^0sZLj?;jW#2(&RQEDWeDJv}`?Kfk}fAE^GujT=B?AnLp?ChL8c`{H-P*4z1eOz2ze0+R! zb2BgyfZ|J+E?vHSc}hx3QBl$K>C=}jTh`Xr1`Lh%_Vys#kk`OyxKtA47tF-M%Er#Y z#m&RZ$1fl#BrGB-CN3cC$FHWq^zQrLCi@r*B|rWNcz;W^Q3=Wo=_? zXK(M|;OOY+?wC^OR>LA> z-+M%0LxqK+pF&xQZnWRKm+RP>)&4Ne-TOabrPtb57t@l&5`&F}MOBrwe*JIn>`+!( z-0mJ0BDuL^)ylx607*~B-^OenOf|DLP$X5m)D&9i(z8=e0= zH&rrgRrc<;tIf1lshA0x&YpgD(;S;U)t?LnFJ5K1;;i)O?dsR|aWf18RRzymo&CIN z`^}o4U(L7MW-R%jQ$P3LkG$`BvC-wGbDyPduKD$2b^CS4GiPjCCe55_!)NBcXX%F3!cwYM%lzr5R<|MZok(^5Cv{L1<7mU*DS^|km^NzJ5Hm)nou zkK^i{`SoLSa&V}i;LI;SUbI#EXkOm@e%`eus}8MN_4(w}1wl%Bb*r)tDXq!+Jh?PN z>+0EsGdnoCU#$u5_2v}|6cww=|6~{FntN}1_PWB}^Y`DJpR6e+5fb3YDmq|{wrrTmS3r`EB2> zIZvI@`Q+{W+V=;oZdK0MY5VtK>Fur01jAk)Iuo+|cKY}C?|WTqciLL#?=H=K7dg%4 zpv%;cug(G!&8xDA+qv=4(X*>vqCzbNgIm8}%~=s2{r+P0=XY|hsZ(8Crb^yblU;Rt z&f&X@ckfPjiwqQ6n%Y)5{oo2gNn4vui(bk9cwgkX$lh=PsL=Iv^>bP0l+XkKR{?x^ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/greydragon/css/frame.css b/themes/greydragon/css/framepacks/greydragon/css/frame.css new file mode 100755 index 0000000..bee1a1b --- /dev/null +++ b/themes/greydragon/css/framepacks/greydragon/css/frame.css @@ -0,0 +1,43 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - GreyDragon + */ + +/* layous.css - Extended Layout - 4 columns ~~~~~~~~~~*/ + +body.g-extended.g-column-4 #g-header, +body.g-extended.g-column-4 #g-footer, +body.g-extended.g-column-4 #g-main, +body.g-extended.g-column-4 #g-main-in, +body.g-extended.g-column-4 #g-column-top, +body.g-extended.g-column-4 #g-column-bottom { min-width: 1302px; } + +/* layous.css - Extended Layout - 4 columns+sidebar ~~*/ +body.g-extended.g-column-4.g-sidebar-right #g-header, +body.g-extended.g-column-4.g-sidebar-right #g-footer, +body.g-extended.g-column-4.g-sidebar-right #g-main, +body.g-extended.g-column-4.g-sidebar-right #g-main-in, +body.g-extended.g-column-4.g-sidebar-left #g-header, +body.g-extended.g-column-4.g-sidebar-left #g-footer, +body.g-extended.g-column-4.g-sidebar-left #g-main, +body.g-extended.g-column-4.g-sidebar-left #g-main-in { min-width: 1546px; } + +.g-thumbslide { margin-right: 6px; } +.g-thumbslide .g-description { margin: 1px 0 0 2px; } +.g-thumbslide .g-metadata { margin-bottom: 4px; margin-left: 2px; } + +.g-extended #g-album-grid .g-item { min-width: 320px; } + +.g-item .g-context-menu { left: 190px; top: 12px; } +.g-item .g-context-menu:hover { left: 6px; top: 6px; } + +.g-extended .g-item .g-context-menu { left: 290px; top: 12px; } +.g-extended .g-item .g-context-menu:hover { left: 8px; top: 8px; } + +.g-thumbslide, .g-thumbslide-ext, .g-thumbcrop { border-width: 1px; border-style: solid; background-color: inherit; } +.g-album .g-thumbslide, .g-album .g-thumbslide-ext { border-right-width: 4px; border-right-style: double; border-bottom-width: 4px; border-bottom-style: double; } +.g-photo .g-thumbslide, .g-photo .g-thumbslide-ext { margin-bottom: 4px; } /* Need to compensate for double border in album's thumbs */ +.g-movie .g-thumbslide, .g-movie .g-thumbslide-ext { margin-bottom: 4px; } /* Need to compensate for double border in album's thumbs */ + diff --git a/themes/greydragon/css/framepacks/iphone/css/frame.css b/themes/greydragon/css/framepacks/iphone/css/frame.css new file mode 100755 index 0000000..0d24188 --- /dev/null +++ b/themes/greydragon/css/framepacks/iphone/css/frame.css @@ -0,0 +1,31 @@ +/** + * Gallery 3 Grey Dragon Theme + * Copyright (C) 2006-2010 Serguei Dosyukov + * + * CSS rules - Frames - iPhone + */ + +#g-album-grid>li { padding: 10px 6px 10px 10px; } +.g-thumbslide { background: transparent; } +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { border-color: #7D7E7D; } +.g-thumbcrop { border-width: 1px; border-style: solid; border-color: #7D7E7D; } + +.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } + +.g-extended .g-thumbtype-sqr { background-image: url('../images/thumb-sqr-ext.png'); } +.g-extended .g-thumbtype-flm { background-image: url('../images/thumb-flm-ext.png'); } +.g-extended .g-thumbtype-dgt { background-image: url('../images/thumb-dgt-ext.png'); } +.g-extended .g-thumbtype-wd { background-image: url('../images/thumb-wd-ext.png'); } + +.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-e.png'); } +.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-e.png'); } +.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-e.png'); } +.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-e.png'); } + +.g-extended .g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-eext.png'); } +.g-extended .g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-eext.png'); } +.g-extended .g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-eext.png'); } +.g-extended .g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-eext.png'); } diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-e.png b/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..daa2002870c8ed058021b31fbf5e599b0d1ce9c9 GIT binary patch literal 2923 zcmYjTcOcv88;_W!9M`6**OJrHYZPaeQo;pArBbnC?{#+U2C34ZrK(!H5i1EXTH|PG zarW$p7-ws2QHNTQ-}mnR`Tg;{&-;w`8K39*<4rb48VL(t5Cnlh!p64|_W-^M(5L_( zaL!zp%mx^bm!6p(2vnOcbnLv8-P**YhZ)52=v58xP*9s z%w2o}unI^6G&EdAK}|t@B!PwjfdrS05qjvziH)hrz>8iI-QSj?y7T;}M7xth$oKTG zf!z~L4B|~t*NXH7xM&);?IAz!g0F1$%QqfFg4&FsdZqftzX*#W@Zbm1MRkdy5Z+vM z)J2SzNap<8V3===yNmLf&!3E3#9AA@Bq2NV zp6FgO)s^gj)pgYS8r7KX)t_d&ck$f)lj#_g|93ZKm0;xXR0L~kO@()N>1v_l^6sG% zb_h2_X>Fz5z!`iNkF9BEl_lO)e{XHt)NpUP^vC0zncrMi#xg5#d6WykA0e!A>&N{u zoOf-~ZduoMOlA_25}mKUJaDt?ps@%C?{95o#N1!d)(+lI=ST1Qbrf+{S5!D3Upm>2 zk6jQMeC<_R*PNY`9CgMtuzyos?98`uRo4|0W!#-;r<)!pp?lhyM^seB!P&A$bvnwU z`|!LA#*<9Ge$M1x=Q5*A;iMTyR$CA8^cVILp^m;|^xB2zwpKBpWKq3GJt$NSGpSe8 z6}IBm`Lej=oux{N{&LZBQsBEV3TH?w@cl|zEK6~9ea=+eNs~QWuA}6b%WVJ7{DQ-3 zY^R^hTgNqT(O9>F12(puu?F>j+90`Tm73VHZtWn>(K)G;_HLFV=Kj=;=$3`TrTTS~jZ-8DTwdakoy_hhAdxVnm#eqBCh@;IYcO6M|kO|?UJa;Yb;H!zm7&PjU} z$$Td@{;|oCQ}pXxlsWxMRJU_Y)UZn2$x)xFqSIgQ;oMq&zmDzbYM$&QwskRM#Wdg5 z)jdbUR)aLqtie(Kyy=)>du~ikbNG0mzwqD@Dr9-2$i#qGl&)c2%2+$4$LlJ&VAAZA zO$28!&`TEqxtfATLz&s0kA}t2L~g@kF*_W7U#HS`8lJlOI=KCj_QTFYoCa^TvO;>hcd-WvH%Ha7XiByfhcrAqNG zuXLFiO)f_24AWo=P&aiEG;NxkQ*9wLza9ohsPYnC5m>AP@?FLii02!zDhHQ;MPv(dY) zJP;xY{BPosWFmE|bm70a0x-}6!FVFLpuM*B|1{2q`Aj~bioa@zAzT4a5g5$XUggws z-!EAyf`48@`BBL{5JD>nOn6x#;?9LY-5pOC#5R)d-N9GYwSq`Kv8P}o8!1$58@%HA zsJQdve^T&3;Px6ZeE*j5!BGSTG_NFVE>R2yUQ}72N=e`X0jgC(pD2Xj`xF@HO%w_+ z7U-LEJrJBVLP;#U~qE)IS>zI z%wcR*=sy@0`Li;;;M5(SRf-;^M#xX@0)AP~YeQkc_^ zrR@*_yvSozcaPi%p7;-LRhs1AQD9dQ*jp6-j~Xcm(9>)ZzvZ|VH{#RbVY3n}0Sy&| zjjLt)!l<=v;sn|9uk*d*-tza24{L$lt)xkF{;si?JXuuui1&}^e@MiB7 zV9}1Yo)f`S7mGvCI-(YO9^X%oJgGsRf_Xr^b4FF0&}gEm8#;*$=YN2ae+QcXsW_MN z3xHm5$#ZVWc#%cy#HK_S1-?jA1ZFwAs@d#Fw9r$l%Hu)M53KB*!uvoDWb#=Hs3b;E zW=2BnrLC~M&tc(9`b>XM$a|3!p~-5?UChaD9t@Cf^?<+ znh>^rmsix!L0B=s({{;}C4_i-kA(|0ur#E=D;hXm!Gp5W6!;p-Ll-uZ_zY&I2V6vl zp}?{r?C*rF9*_^*Pn+X44yPxkRCZe6s{Ylgfx9vk_?_RrG%Ha{4H(baD)7m{>b@N% zSUe$jrkVKZ0Ic-&OAHJ)f>-io>m7VSL(`Oeo7=osI|s+ocmT|i(KA~=b<40Pg69S6 z9FS&+vO=bzA$~OTCZ&K*RMzKpO{To4Qn%4jPObwM4PD`ezUc%lBaE^NC6=C-fRzLq zWav^`a5P?kk2+t@4{WFJkWpzN*k2s|ri)D;_rNvvaF2vcR!F-lUwGmR^KB?HwoJY@ z5@2OkIS2l$Q?B-@C9&Ws)h5<#|ETgX>Mew6OYr~LE zXu0)wnKHQDQM?nCl(yS-vgEGXRyYr&zTtZq zUFmwffVADrA=55LLsrWB4Jqx1or38@uy+h0*D0~4m6TFa-lT-!#q|4Fp?>NjGmS1Q zO24>*9N!YEb5k%@Wlu=_U9X2bX|i~k)Ikdkj9Ie_n2zhe-+rAt-0GP|%UVytk;6RS zODii!s_?4C-Ai_w>|yaj`&hy}gWVt@K{_~eGsUG_qyE{?fA5tJQQjE+poH)}0Zn$*r> zUvJYrIHlQ!PqketxG_5yFg07XeXhDa)Vi#?H9$k8@!LkGwK^rX+dXJ<(P6xfp_nG! zm!5I!Q0>Ldg-e)y)6`6FpJ$&qKI~^Yg;h0fzpWKkZV`HgymvtpLDIq^4;iyjmZ@iu z4Sz51%P;*P94B0G3{6etkCr<8kipHyZMM7V9?mg<+5;tL#?I%9XP^#f!!n_vfi{jh z+tYV-_s547rJB}G68Oaf!&dEAo}`e^-q7^fO7mq#e?!vyP7hQwRo9FvC$Ecp&aFM7 z_#c<}zeuDVs)sQ7e0@qx2c56l%DAG zpL~SU&txFN_e>78TA-{w#+v@}eoIQV+5oukqY+%3EhRM&j8t#NcmN+`kg)+0QKj$v F;D1O@h}i%D literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-eext.png b/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..9362e8b0124293274b71cf7ccb71c9af74f1cb4e GIT binary patch literal 3544 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 w`2M};_-N^cM!4IgPb^{Rck!|5}N{7XSbN literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-ext.png b/themes/greydragon/css/framepacks/iphone/images/thumb-dgt-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..e47761645965a8db946dd390d6634838b61bc7f4 GIT binary patch literal 3449 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 GasLB3V!r(V literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-dgt.png b/themes/greydragon/css/framepacks/iphone/images/thumb-dgt.png new file mode 100755 index 0000000000000000000000000000000000000000..c514620e8cce7de56bc9136f95f7300fc8f5202a GIT binary patch literal 2813 zcmVJ+00004XF*Lt006O% z3;baP00009a7bBm000ib000ib0l1NC?EnA(8FWQhbW?9;ba!ELWdKlNX>N2bPDNB8 zb~7$DE;i7Ety%y83VKOIK~#9!?cLpv+*TRK@#i_-$+T(6W*5p!l@dx3peR%-0#u4h z2^B&JXvK@fRS{AzK;pjKa?4)<7rY51s8lEkr2&E{P(V;5l(rC}qCnFo%7!+Zo$St> zhYQ;?$M%`o$=mvP_xn+kOm{pUug5<>=h(*{5dZ*i?KJkoCx7_|w~%FT&a$kZ%7U7i zI_Jd9L{*D_!{0+i#2UYzs)(wH_a;tNtoA#rs)$+nKs0>1crJf7n14QfvHDC^otSx1 zQ8B45iBnPAAsdsKnASc9E7qyy>&(o&sJdVsmXq0J`eJ<+pP-pHQK#a~#-EPmACHx@ z@qV&h#5VI{yD=-~VZrC`y%*JXKPEF1=k&~d_ujoWS5SX`?CHf`um45o+~=I?>)TxL zE1JIYz$!VMe6r;;TFbQ60xyx!&-wn9tz$>-_HC|eu<4AfwrY!?X?(uH=3Si+xwA?;l_8w{NEn<$UT1QIy`p#k9$@1Yr~=c>d908(U)IYxx6tPniX@gyt$A`|rH-_M2|%_x_^J9=>q?m6H#C>J#IwX(3!Tr|zS}k$?0Tzxva;Z+-8H zGpm;dqbsf_#YO|o|k2J81c^XI>>y!7(4}1!MR0(3M5-oopS^g zNWG>~QGt|WS`42fs6YpdMk9{;0_j&)qoM+dcT+WbFo~gmKr$f}QJHeoH!riwS^`o? zY86diAW>PCaWDz!PCX5-o>^Uet>>JWQ(C`3%SNN&aQEWk(gGC~NW7|=8BJdxVLGkp z3m`GxGvEP8zwH~VsK$r~Ag!!gGpK6jIot~*T2|fES_>eVwl95DpaTdhKu`f(b>o-o zQGpIuR4#M_lB%gxRDeDzfEyE3MkWDNQ~(4O*j`NHV|@WoQ2`KCV21^@xb-i9B!g<4 zp8=8*8|zCI1(FM@k2HNLs6aAQM7;M?`=|g??xO-owu>5m?ILYoAeod37mfooeF0pr zwl6^isHgx4DnL*HbRwuKeCaqqMFl`m0fGvEpaLMMK&LR)7oeg7AgBOA1wc>%%!$j~ z04geg8x~YD$vb7 zDs>g;Ku|fD1azmOGIkJ1x}vf!fMl3(dIsox(-#0i1u%E>m!>b!(Td9186c%{N<{_e zqXHnPzzz>8om3#HPO6!21XV>$#}5It98XKx%O%s6dB|gX+z5ycbBRo<Nz)fdy?aVffo}Fu8AAx9R8ToR19T&-GlEK41zM(&MlKZ<=u#h*E-KK0 zpf(FHfb{yPW-7|{s6ZMiWxxZ_ft=1dJwrbgNWAF_fS>}ndX82v(5avr_e}zlYWX&s zzMPZ+x=>Lmra(Hh7RumY5=jNpYWv12Du8rCI=!L-NUNd}RG?Gb)LILGJ}Q8#si?wz zeSst@>A0NE?4vUF0Z1aOLem%MYSWj33Zzzw4BoXqVdrvb{@4j>Z{642!WQf zY9eOQpc>6zAc2r-c|mG)tgo4g7ZFp(2^yfapgK{@^J-yIYeNXdh$+x=MXg_qTI-{V znTRT59)Q+@I=;6{NuDgdFu4)aOlThMm{;-GWjXREiAm@ z;K4)h{q%#M{rtg0ciq2l-_os4ovSTq@P1nB1=kmE+LNk{l~~>>X5NokH`zAK%2jGX znx=lzHqXY^TtuCFv)!)Ue!Jo)X0N{L#$fe$hF5uM_1$#Ncev{PXIPIayXeY3dr}L6 zox9by&Fat027|%i#Z&+K>+$2q9zXKL<3C$ny?9zgE=lCuP*p^BiOBNay^9AH_w9Ro ze^-AoJh2+?taQeHFSc1X!fP_^pjB-rs+C13XOiEEqWW{ocP6U!J!H5C3wM0w6E56S z))yh%D{19QuawXe17Ft2&09g4`SB63kg z*20j^+IXCZWU}>Nd7<0%y|#N$jo<6Kyw|V@D5H;n&K{&QWBech0N3RIne1~66}P-l P00000NkvXXu0mjf;+%4J literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-flm-e.png b/themes/greydragon/css/framepacks/iphone/images/thumb-flm-e.png new file mode 100755 index 0000000000000000000000000000000000000000..3d3ddaa2c403cd001c450dc11d43be46559ea471 GIT binary patch literal 2734 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 Q&)3BzbF^9IU!L**2b4azQvd(} literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-flm-ext.png b/themes/greydragon/css/framepacks/iphone/images/thumb-flm-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..62e62a2195a33b08eb96a894e2e7f754dbf584af GIT binary patch literal 3272 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 O09P#SEvn4DV*dlXk^`dv literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-sqr-e.png b/themes/greydragon/css/framepacks/iphone/images/thumb-sqr-e.png new file mode 100755 index 0000000000000000000000000000000000000000..1dc590cb4257d49ac3e26ca52fd42049babb91aa GIT binary patch literal 2848 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 BagzW5 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-sqr-ext.png b/themes/greydragon/css/framepacks/iphone/images/thumb-sqr-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..4233c84d2f2b99e046c593ccab96c22a25cf57b7 GIT binary patch literal 3850 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 l)dO}J$>HKZ9loN2bPDNB8 zb~7$DE;i7Ety%y83QkExK~#9!?cLvx+*TF9@pGN(rS1P!uW^0V+kM zgbE=9wBm=vQxQ@hK;pf;^2%QU5Bw5HP^nN7N&^H@pn#xAC~YA`MS-SGlnre*nPffp z@ZcZgAJ?<9yUF@a_WNl!nap@>ugAyd-0N$P2mk=sIt@MfSy3}n z=bV_CsA~Rq_4iN_vHCBkDrO?8*^l=oPF1Y&d#kGC6RL=bR$tCv%U-Q4qnL5FTvc_& zbhR~cDr!4qXEGDh#>Zg!_Oxt!nVFYjTU9cq_FAFP^r6Ll)yto&pw`)I6~ zjrWuNBD9<5`;A#X5379k-g{B)_hT|MaZb)icy{h-!rg)?huICG$CU|lDx>@-`h7Dbh+XkKBdsyNNwpS`Mi1y`RYTSWFa zFT{!|#Hr{TZ(Sa~^Um9Ex@kE0i#mJw!ueNDKKQ9mlzY=cb={o0kEUb)=r4Ztr*q%> z-V-&UGd=iKX`1} z#2z{E!i$%F{L^2by|{XLTx8Dme`NB*=Y$>3MCvgyLkxK{`OWX2{om1J&z$vRJG?L$ zK2(kHB2d*NdBKEwQc$}uY7Z;Zn$f!W%S=G!aeSwH+ zSLq8NGTt-b0f@i$4P{hg!~+mltXexz)y&h~3q+b$U1zQZ5KZmdZljV{fk;Z=7+uW$8rTB$&!8C8wi7l?+6$atIvGAeNjL{a0=rvNO zot~i=35bwuH(LQjQ2BB_DliwpYTPaqh(4u~QGvNBfSZ9zN(G_{(ojZKk>YE}>G%a= z$fXP+1m+BZ3d~`k(ohA+r~tMUsC4=Qap62FKI<{o1LVj0#}m$fy7r6##(>5U2nm4phD*3W!Vi zyJyO~5CWj|1+c}^m+BXYsPyGLDnRKAU@J7QZpo+s85ID53J|COVh&VBCIQjl!f}Ao z7r-^ks$^7vj0%821$Ij5+a0KM{Q_iE0P9f#6`1pk%6JEW(iZ@M3J|COdcepeU~V&N z8NJ*!6zD&lc4t%~6qt)Ps){J#3Pg}lxgHgm^Nb3BKm~9u0+nHeKs@bK+Nc153gCK` zzEr)yTm)+NAAndY-*)NCFb7~BGAhXwh=(?UveKDEqyll(zM+f?Af6!Y&Zq$5%BTb? zFjrh>t_46F6~JaPsu=kch#`}f>2zuvm9Y;%6u~N#zQDYez9dv2*1Sqa1?DNET7Kya zHzEZ3mB*iX?>jQ8<`WUAK<}Z-$RuDMQYr%;fH`fWW+BW50eVlSDx#{>GOE%*1)`~Y zX`=#jAP}f#W-7(G8L}$SXHGQ{^F9=)v{HfC>R(D2!=0DYuWF%$2{fzr1;!Agt*Jx6NRmBgTYAm%X5b82`9 zVV+V+s6Zq_*Q4fDuM(+1?>b9gEB~OC3dB(VR&MY>8x@$Z(zn%|1<+$ct*Kr;lTE}W zsX)(Bnq4$L9*54O=DohE+=LM5IaW=?EEuRp`3po4q*`2%8XW6uX5vM})Nz6a=q*s4 zsAchL)ktj&ArvD_fu1vJ^J3IS8&%9iR2lOC^cJY)y&dX}QCA6Nh7SS}az}EV_XstMdjOh zdd8+VX8~+SPOY>=1A)q*d?1F58mxU?yA2BrrW<0=>m)abMqXMm0Ykdl9iDaZ1N8(2s>A(d?eS=7WLy{BtKRr0Lq3 zx4rc(H}AP+cfuwEwpWrkz3b4OdtBm17gknY3I^&^PaRn~`Og=gJov5yH-GH#`F0VfSyWbvvRz%W9(^XVNc7O2R``+`VN51^%ZMWTi z_{2X>`;(_mucoOlzl?m+-!yrgU2bkxc`TK`ii>h8gBPv1hj2Mzb+*M{&0eqCyj#<^ zms@R%TlxHC$<`W8S$l4>RyJ+<^_E0!p0+d3b?J;RXzdTJPoj-U8voMpo?cE@JF%gm znbqDgSwP?h^wo*9G7w%X^Hr@+IO*rna+Qm>R(}nhJdmZOy@L;Z;LzUTE_d#+AN}y_ z-~IMCk6yVlIx8aM=Bh6w3kz>Jc<|7BKmFimKY#GhUH9+Xw{)vh=Nc(7~uMx)V-r~dWV$O67Y{7%+xPb2uHjfgINp>fS z`tz0@Otf*hs2wJ>5#;4j%~g+<&DE$LnY8wLwUfMjSgu6t54`~cwcLNLR%}@7fSKI` zXtGxn`)jS*sT^k~`@99BpjIUXW5TSMxrvFIwBKj-c?3#E(a8-Jni09)K_F1xS;zF_ z@%YNc*Ixbi`IYmh(zUh!=0WPa4mc_z0};7JL>5J4xWQbYTYP=1xks<_^jmo!UFp{* zv)MK;)2_k1W|=k>kyl0JqKI6s2I;h&$B9TH+y9jpdIK*{2|9kSb(WRp0m|qjU>^M+ X4k>5*3XbQC00000NkvXXu0mjfubV@j literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-wd-eext.png b/themes/greydragon/css/framepacks/iphone/images/thumb-wd-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..0867baa63d4b77322495ea8a4580272751a12206 GIT binary patch literal 3108 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphone/images/thumb-wd.png b/themes/greydragon/css/framepacks/iphone/images/thumb-wd.png new file mode 100755 index 0000000000000000000000000000000000000000..a25d47766f42238e8824670a95240447e8ce29f4 GIT binary patch literal 2676 zcmV-)3XAoLP)N2bPDNB8 zb~7$DE;i7Ety%y83GqopK~#9!?Va0?97h$0&#B(=B#znjE`&?uU_ua}m5CGtCOHi5K<0P2#o3yWMqo z=bam#`jiLDGI8HiB=aE%krg_ZImm{x2vkI zELYnTr=oV9R3&1(Zg(HF zY681i-;Zpjo8J-hf4lD^clpj^c=Jiqrh_`BE(+xO$m<6Zz{R5GzZF zQ_(lxyfS>}?YG`=!*K8yb@t$e^Dmve|5KkB*QSN)zBzRtO*8-SFMjo>bKm;jV`tVc zjk0ZfiBVU9_NkFv&Gec3?tS0#gJ1agoh!?)`^I3f_bVcDwp{MY7vKNEBP%BM(23`s zzx3mu{`&02^~+i5oLm3MoYsNFc>~iRd^{> zHA&tv8g1P5)Sv&p_QH$jH#pn?yUS>_;eT@U$#bJC8~a4$;L6HM(sI-^P1Sp|%cBkN zz2~R_^uWdSOMY`RHSe?Jz<~oTM+JbW@?4d{U?2z;Am$ub^6SC~6(Dj?btjuJo&O07fa z3lJ$ulF*q1Fh71;xqD`P{gr`pVor&E0eU9O(sb|A(((e13J|%gni-)lK*VTQ=nDXm z;XMN$0OF5*Lyl^UcmRk?tJW5(nt8f=0V1_k*XgwY5KZjc&QbAIfJj2$j?N@J6(I7^ zm(C=Bc;WI4K%`z8>h-NICrbs0)KS%leF36DMI_78fTN;QfT*J1;1EJXsQ{7XsEqXm zh+nKzI+LW2$D#wkbZ}GvgbDx%72w*=QV}WujtT%fMvK9L!CqfRCIQ41^_uyRP<^3h z0O((*78dGQql#PsdX9a&Ltg-hF#biT0Fleof-^kOnFJ7%nWkwPc%+3jycPg@RqC|M zGxQ<>M2KsrtpE@~rvTCDbj#2e z03rx`JFcSwK!kEdr~q@sSg77S{k;G&`Dy2kGDWeg!e zOoqzk8G!i^>lC44s{lQtfgl%01(>HCl@t|V4usk^UI2(MM>SJX?necPL!}IO0GI=v zPP;rqo(d3o=nDV{6##Y)Pjds9FQFRqCILhh`34_p0RYiEDrO20584oAr85bo0>l;j zh8z_D;t^@LqXIx&j*3tL<_g#8wE#el3IIECRAF9UfGC`FY^PImRK`94L?Koo^aYsL z&=*4mh}BndRDgMMR4Zj7$QU2TNtZ1Hhc-sJVnW zAOO9asfwuTG)GkuRDfvWUUF1`IUpcZGc%R)+6=A=(5I)GhVY_vjEVCor;-wp9MnS@dZ{i z3edAs^R6TYUeI4 zdNS%NQfBxdKm?u|Qfhq&A)zlo6pq@YbsZI*0>r1(_S4*$E)<}5tgACg$DK_CzX1JZ zsI8eo>q7N;hp;g&2_TBdxAXFhO;2Y5U^hIql8FX{%AkCJ7#uYi`?_`x3jh&FHXQnn zr}ZWB1?bUHi&+S5i_jMU`c6^HTiwErDw5xiN{R~5n@-DleZ!7wKFhp_SduuU;}@VG z7Lr8sIepCsh5GC>CoZJv=9#y>^({BI2Ap_W5lEmp9hi>2J5;wZAw)R3$s82j` zWbNcXpL=}uT?cRc*x~oD42J_|Ca>7 zR7CcE@a}uw^QDKr{O~Qe+Ipa7`bVt6kX8(8_9`m~0?00e!WQRtCarWxcBPf|Gt89q)4a(dyUG$qQLt zUL1Vr1BVued)&E4e)PkyfA`zpJbLBI=&Xoj&0Swe78c&Hx_aonpT7UIpI<$6$G!Xa zFW>CcxyFuGwx^9OxVd{>3sqYOv79Mp*3+z8)D5%h_N%JxJli%)g=_Do&Qxu$)wJKX zyTHA$kCHYJg_4h4rOtjHl)S3xxhL6>q_ySMPV(`~@lLdU=`|?S zas9PguwktRGoJ%!QY*^(T8nln?d+t^TR;W1C@H83vvTDoCTi0DoYmJ62pL5u6Dl+n zxm6<&2=A<;e3oTbF23^ezt69oKb3B7{zbu(Dk3k7$VCykToviG%Hu>Nk==jfgli { padding: 10px 6px 10px 10px; } +.g-thumbslide { background: transparent; } +.g-default .g-thumbslide .g-description, .g-expanded .g-thumbslide .g-description, .g-thumbslide .g-metadata { background-color: #FFF; border-color: #ADAEAD; color: #111; } +.g-thumbcrop { border: #ADAEAD 1px solid; } + +.g-thumbtype-sqr { background: url('../images/thumb-sqr.png') no-repeat top left; } +.g-thumbtype-flm { background: url('../images/thumb-flm.png') no-repeat top left; } +.g-thumbtype-dgt { background: url('../images/thumb-dgt.png') no-repeat top left; } +.g-thumbtype-wd { background: url('../images/thumb-wd.png') no-repeat top left; } + +.g-extended .g-thumbtype-sqr { background-image: url('../images/thumb-sqr-ext.png'); } +.g-extended .g-thumbtype-flm { background-image: url('../images/thumb-flm-ext.png'); } +.g-extended .g-thumbtype-dgt { background-image: url('../images/thumb-dgt-ext.png'); } +.g-extended .g-thumbtype-wd { background-image: url('../images/thumb-wd-ext.png'); } + +.g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-e.png'); } +.g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-e.png'); } +.g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-e.png'); } +.g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-e.png'); } + +.g-extended .g-thumbtype-sqr.g-expanded { background-image: url('../images/thumb-sqr-eext.png'); } +.g-extended .g-thumbtype-flm.g-expanded { background-image: url('../images/thumb-flm-eext.png'); } +.g-extended .g-thumbtype-dgt.g-expanded { background-image: url('../images/thumb-dgt-eext.png'); } +.g-extended .g-thumbtype-wd.g-expanded { background-image: url('../images/thumb-wd-eext.png'); } diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-e.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-e.png new file mode 100755 index 0000000000000000000000000000000000000000..616d1d55b90a4d3a816d9020edd62d49b212c0ad GIT binary patch literal 1093 zcmeAS@N?(olHy`uVBq!ia0vp^uYmX(2Q!d-@#)iin?**#?GBPckS9WdGh3!FJIojfB*dX z^Y7lhJ9OyK^XJcjvS-em`Sj`2*RNk+zkUrA|MBC;&!0d4{rd+L`Sa(`-@ku>?EnA& zi#s&l1bW-IB*-tAfsu)sg_Vt+o0nfmL{v;%QbAEkRZUA(#p}v-NVz%+s8j5 zG9@)9H!r`Su&B7Hf5ME}8#Wy}bLRHzw;w-$`TFe#*yMlza@_YnWnf@R_jGX#skrs_ zx^KR)BhRtI+nZ-!2zw>^kx@W=-~Zs5UDqbq)MosWLJWpik8wT?ZH^vi_QD-T6N z&qw~sdHe3-qE*{dh1+_!^t{hsw{EFg)`P%z%YUB_UVG_Lxn5M;)#KYW&o9!SzpOIP z*JVjZ#|?v;ishOsum2Lzi*-3NjZH3J_a$%f?zn#MF7B&utX}6gpr<^<9zB~VI;jF#g z9V)kyQGT)NWa+D>h8ZsS49N|*RFiJMmho%??)a+h5CFwDqMK$^^9E; aez9J^xFE)Ucg*ARs=V?9$nvkT2@qkxLO z1^9%x0_njCcI?Ii@RMghihJ}SiMMd4XabxGsox67Jnml>(%aFd|8uV23givRfWv{^pE58o8+f`nhE&{o zduw-|bhtpn!ypxqOg?`i*vJ$J?|<@6u_x4HjUKM&sjpJ(;=SJ_`5Ge4gC z>_%H`pZ%jV&)=6mIuP=8>G{ahf>nDi$&}^C@88vP^WVHHdUpQv>t{c+oc8a0%~OMS z_y6-eKU4R=)JkTWs!~!%N5^A2;eN%ryzMfv$@l2bd zZDpQM|HQqG&NiQ;+ipAMv-E9)J9GWiqO)}Kebe9H6}_}9{QPU?2^(u}7`irm{-|s1 zcezt|dBLNaZF62;-nn-9B9pn(WYzs19_b9WD74G;TfQiF`JxZ86H||a1Rja_&GB>9 z{}u8?yab^PBx+H}rS3Q95ZElRUWnkUM$5l@ilZxiGpvACVaT@%BQ$9O%>Zix2?Fg0 zx#|c=5M;0gR1o9_grML9B&)F5PqO)hEd_cJ7CgB9-75Ti@$)wdW>?p9`YuNVo&RKG z<8lqT0;}#L(^g%dYg|2l#+>_`*8ROUb8q;=I~TUES|xq%)ob}{f8SiQUw!Ry37??g z&9;2|z0Zo$#(bI7v@y>gFy|T5j@omrc z?*Cu+efRI>wtqx+|97m`4gG8)%XeBxuu$g2D$6SSEz`b>Y%AQ?;=N?+s%4e?s&<`|k4=i&O2og!gzSy!`(n YztC>MpHs<)vq5E%r>mdKI;Vst0EDe9`~Uy| literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-ext.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-dgt-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..c090406ba45e0cd19d1561414a6daa5c3ca8a410 GIT binary patch literal 1251 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 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-e.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-e.png new file mode 100755 index 0000000000000000000000000000000000000000..02ddcd299539049de1c11fb336906239d3734cdd GIT binary patch literal 1141 zcmeAS@N?(olHy`uVBq!ia0vp^uNW8@**KViteD+D4S^I(x}&cn1H;CC?mvmFKt5-I zM`SSr1K&OnW_;ze@c>Xzvcxr_Bsf2+9FAf#N@Y{P_9v=f8jdfFghX{Q3L$FOdEJ z|9^3Z#+yKI`<4Xx1v4-*F|)9;v2*kC3yFw|iAyRdDygbzY3u0fnOj;pI=OpzdU^Z! zM?|Ki=H%w(7Zes1H}y}LF?++NLubz1e*O02=PzHs{Q#T%?_ZAl{-+EKOw&DG978H@ zy}hw}(iI1u)`!YB=Ow1EHd|W3(ADz2UQUUL=?2rcq}|at7oi>H{XAEWa-=}mnT0TDH(5aTc+~WI`jSAgukk* zbfbPQ#~VdGpt=H=7l$^}w+Eg|5LKA8C)!zZzf_8a_?%Z zaAi19YF9?q<;#Xd^n0Zui`E5xI+=8KkFk06y40JjYfkj6nOM0gZ1QZ| hYNfpGvcmexbqra)3-;J_R_TGVyr-+5%Q~loCID+C!tMY7 literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-eext.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-sqr-eext.png new file mode 100755 index 0000000000000000000000000000000000000000..a6f6946fe068ee8a74f33b2ca8fbaff51e92193a GIT binary patch literal 1382 zcmeAS@N?(olHy`uVBq!ia0y~yVDtmxJPu}{$W2AYTp-1g?&#~tz_78O`%fY(kk47* z5n0T@z_%ZS87)|YRe*w$C9V-A!TD(=<%vb93;~Imc_n&&t|1C##(JiDW*3^*MgbLl z3-AeX1=52P?AWnm>eQ)Irc9}*sHm;24GRm4ii)~%g)f$abP z|BE{`-UNEvw$e|2fBE|D2iW9)|8m^-KV@KG?(lSR45_&F z_SWt^>2QIDhch>OYfWR^?kIPl;PLnRc_ErXH{68cr|q^@XI=W@5ewT+rv<0Kn=2jc znxA&URz+FGbNMuL^Qg4fE`Co}-_!mTd+v-`%IQD;Z*%{zejdF4KhNs#ud=^BW_~>N z*^Rc?KKn;!p1&`BbRgvG(({q01*`U4k}1oN-@mKp=D&GY^z8iS*Ux@tIql#1nx_Wu z?*Hd`ex~k!sg=w$Ri&hkj*Q1Y-c5f}ls5h6((pBcf^T=c*=^2y`lkMZd_BFge`=-CYD|%^J`1#k&6E@b|Fm!GB{8881 z?{cT`@`6V-+vdEyymRgHMJ98n$*TK3Jkl9#QD~Rxw|r6V@$i-~)tFPzxzEpRlDsFTh=b?pb7e;URG7 z=l_B-f!VLFw=BE7=`mFJ-13t%XIhK!Tg-J$^1k}|+|0fHKIifyuh+dkb8mG)-izqa ztGwx7zw*DXD|{@4kzR@4mK9-}&>s`}O;O-~D@8uCD9u{{?%et*V^G*PhzhVZoPjRc5bz z)ah!j+ZOSMR4+w^UbczfE86S+N%hyRXEW?S9QrAn4ovFVx_`|)(xf+~+O4_H9r10& tz18cl{=S<&=c1APQOYTq8B^Xb#4uV25ue*GFK{^Q4wpFe;8`}Yqh^5@T=zkmM%+5i9l z7k6m93G}vaNswPK10xeN3o9EtH!r`Ch^Uyjq=KT7s+yLzj;@}$rIn+TyN9Qjw~v2B zWJ+pIZeD&tVNr2Y|AZN{H*7j|=FIKaZ$Ezi^7Y#fu*v`a<+$&E%D}*!;OXKRQgQ3; zt=&bp!vq>0-esP!>8a%QnKlk;zW4rD#w;yJte*6PiRs4Vrl69I#&SYhB|rbUJ=ySR zd8|--N{hO;rm_Fy{pS^xEGgj^UVwr8})E_?U@Vo8i>-Cej?N{I0eg5)u`{k8=OaGh4TlW06 zuWKw$dw<`z{qQCi7al>uT$%d+raR}{Os#tYuYV zHpp`S_21WS@ur_nEy`^2sNsMV*eme6zZ|b<4}EpMNo==*XA(2tKH(Io)@; z+jK{>$bi=ePPe{@5jsc@2Uc)W4Vti|7*vn%}*rJsB6 zaEV%-HS786?TbEo>~o2~F7sJE&SL-LHT%9)u3dVc?PQMgwlnQts~AtqU9JAQwQB$G m9^!lvI6;>1s;*b z3=Dh+K$tP>S|=w^P_o1|q9iy!t)x7$D3u`~F*C13&(AePq0Cs%RL|@}^V%q&qHh5{ zA+A7raDp8>c1)c*b;^_}6%`e=wY6bkVNp?0H*Vb6xpU{PUArbvp8WFV%lr55pFe;8 z-Me>(4jp>_{5eqe%$YNvK7IQ7_3P``uYuw}e*F0P^XI>R|9~QY{`~p-_b-tB|Nnn+ zhsK*gZ~K-6`2{mDGBLBTvaxgX@(YQGiit}qC@QI{X=&@|>X}0Zo&i-4fuJ`telG1r`@tG4%jZ|0O_pE-;_F6wM_u{4d zV)7GJ)4Lbl2|oKPucE$o>%}`kjQqQ#-`n+nUNh5wOsy_1F54&263Aes5XWu<+A5y*Vd# z1EsFG2G5>1?MQtBSP5M1;AX6Eo~0{X{Csf(&{trW{`WTB{P1dusg#=AvCEPc$J3TB zy=HUnfaFEJuZBvG9D3K>kJf$oOL@^UV6dj#v)#8dZ}P9NWpkGAlv%lHe%PA)vp);! zf3LOa2@dg8^St(T_0=ld9q(_inH&56kH+SuwJr1K?Nv>ZJD#cKddX~};ASKBa%<+; zMS6SAUg?l{URka4_4ZwjQ&DTTb5EP@)~jQAUE^oUMo@aNy}s!UQ&@`IwG%dxt52St iXDhh#l zpAc6dJvhOR9XqB@ojPU8l!}Uq+S=N%u&}78s2ewK?A*C?*REZYCr^I)^5y;e_s^d{ z|L)zpLx&DMfBqaOd*;lUPoF-0{rdIw>(@Z>A3uKl{Q2|WzkfiHKY#xG{reZl{{R2K zxI^PjptpTXg8YIR7@3$^SlQUQdHIDzM8(7<6%>_J)wHyAboIU$9?}(1_mZ4PZ!6Kid%2* z`sNE83LN`5bEEmfl~=SMF^9zb_&2{@n4K?xvG(Rx+rx>%pMnBHmUu~jx1X+Z>ZrZ_ zw7FV8$f3nsjTFPYp z;#ZTFp1<}^&a|s)uDN3V(##!u_ucY%xuTJMr~Lc z3!XZ!e)XaMp+E_zR;UWPGHPA3N_2W;``Ox{w*S))4Q)4{yz0C5mk*02Esn)4-MZCc zM&seV(XS@&{yp#2#k!JPhu$u)o*nF~q?GmY<=xWhSMtk~XL{K#==yhQ)lTE*j}PDd z{>#Gep3AoWmDi_)ul`zPa9ehB)u&(I`xkXro%;Kdmu>yKRGH-~!vrTE)e-c@Ne9i)o z$YKTtzWpG~Xu%q+0u+=iag8Vm&QB{TPb^Ah2uRG#E79|F4N)jF)-%;JyU@Hg3aIE? zfKP}kkRF_1$BrFSr%s(RWlBXwMQv?uSXfw8RMd?dH+Jsaxog+1$&)9)eEIVJ{rl(7 zpMUr6-JwH=oUhye*XOV@83V5$e%xd{{H<7WdHyF zU)-VbCeYiyB|(0{42(?7EUawo+`RlkBBEmAk_w7Ss%l!=I=Xu1mR62V?jD|A-ah^j zktwM;xq0~og+;|p{S#))-mvM=nKQRvzy0|6%hzu|z$X9um*c+wDFXx3ZBG}+kcwMx zZ|*I+?IzN2v07Xq^|W!Gab<(gtUdof@9=tf=$pz%evSuuTwW73tRE{bbeeYl`UHtE zn?2m`CJ9bjQha*1y6)yurRSeQ-;4g8V!WC6rqTcK>f7mGYhLl+Py8BJySA<-anD7W z+Z#@Qte*4p&)#z~Ggj^UVwr8})NelP@Vo8d`sp8Uwdk2hlG;SEsKBuvWs?Zc>U*!_O*_VvY0o!uk)ThYJTB*c=+zeCUTb1 zyO$MJ>VIFm)%x7D!*Zvd_U20XEuVaHTGZ+4%QvgHJKrk#zQ>k9^7L`pU>1w{_mYlh zS`|JL@tbpgn(<$&?O#KtSjgvV_*?#cxw+8l@XWj6f_`%jbqX&pcyvT_js;kyMXRv7 z-y9C82p5nI7I}E2GZ?4I{oI??qUU&P zSFYOic+I|lsXOEE{3^d%HRqh7lG5!DPmgNriGO={*hK!>Q@Qjf_B)?+JbPnT|La5D zPaD~+-i{L;9WuxM{(F^m{nlGE6M37u-=9{${v7vDu=9P~FS4!hA5Zj>t*e$*?)#}F)&Io%OX*p|{f}EeYoB}NJ^y;tui6P`%u-I*#H^p6 su+bfq(C+!)FLXOyBcxstopASy{`&0;x+HXTxIx8+r>mdKI;Vst03tX9O#lD@ literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-wd-ext.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-wd-ext.png new file mode 100755 index 0000000000000000000000000000000000000000..0efa76665ce9aad4018658a63f13d743be1b58dc GIT binary patch literal 1168 zcmeAS@N?(olHy`uVBq!ia0y~yVDtmB&u}mUN$sXxHb9Cc-O<;Pfnj4m_n$;oAfL0q zBeIx*f$snaGiF`u*oZ5>@bb4x2nCwC7|FK-|J zh{%-GoZP(pg2JNWrv3>tW^dSZ=**ehuit+B{N?MnA7GRJ{mXIR|CE7&X_KdmV@SoV zw>S3|-F6dcxL7T&kb2rU&$yDof7YJ=pO+L(RQjm$k)Pv19+%fdjoTk51SEPt&-UQa zmb=GVev-rU($1%MCr`U+HL>{Ts_$KOr)J)4%b6K}_1?Eg+qu6Emq+Xkk6$exFOhF@ z-0V%!AF*`1+V#fl%U0>vo{Q?c@VNKchU(9+o|c}u_CE6MqrYGNy)`+%@yq{b+U>B7So~D*fgh z>J(P@V}Xja0@)yuksW*=pPzd zKIiK7{W{;fqyMjq>c4F1;*uh5x3}Wx(?kC%%+I!0?mRB}(_hbWk>&1w`FnqN*39AC z>gJN-;==d1uD*0@_S-V)S^RSQYkuDRTB-lP!}ia@z0+1z&f;rN?d-7NOSvkuS3c@A zJJ)TC`G>_a*RIN(m%p#;nDS4d+SuYV`4tcU^lbih>G{@ab@D2kd2brYUw{w1`7{6k literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/images/thumb-wd.png b/themes/greydragon/css/framepacks/iphoto/images/thumb-wd.png new file mode 100755 index 0000000000000000000000000000000000000000..f6bb30f6993a6c027ddba359ec2e0eba25b7a9e4 GIT binary patch literal 1015 zcmeAS@N?(olHy`uVBq!ia0vp^uYha~60+ z7BevL9ROj*tZSW|Ktah8*NBqf{Irtt#G+J&fW*wa5hJySii3(aezfQr5a z_=LCu>A?wh?AS4N>eMMyrc_i^)YjI9g@r{$Mcue@W9QDDyLRoGJbCiVmoM+%zkmMx z`FHQ$9XfRA`Sa&M*)wO(eERh1>({TZU%v*5|M>Ca=g*)2{`~`r{Q2|e@87>b_W%F? z#T^=N0=?~9666=mz{teR!pg?Z&C4$&A}S^>si3H&s-~r_qpN3bY31nT?&0a>?c*O2 znUb25o0nfuSXA89KVin~4Vw;~Idl8<+mD~WeEs$VZ1TT^<9?cK8rEMG<)VYj&W;jcZvC@brnhU%MVdVDul-eq=eZ<%6IZ|*rIt?skM z?#a12PJvfcr@XsAW0kAkEcYEp3`4J4nO@!h?#RlyR_$FsZ`mALTx?0#A_BWTWwwAE|MFVAkB`F7>9yGq(y zx39DIGkvdk(uY5&w`0<@Rkxc1A6dj7#zAMR#mp{vSpc^rS|aZ zGOd~Qs}KDT1xs;>Le)@}aoxT5$e|mbG7_M6yxJcWTDoIai0%3dhx^YRFie|z?b@RU zJTmVxSL(leSG~&p_rxu&xBb7HExpy*v7%J}eO_?Te%qeZ*jJ39U#5q>ooqROzTCd+ z&kNuBK1pc!khD`K$9!XO`uh5R6={bPpYcoV*)_e;+@XT&(q4}vw|vqUc+YFly?3Wp zC$%{8)$+G1gw|%RSJx4D`??}XCZP}ju%ITH) XrI`6wbmUC0fHIw@tDnm{r-UW|KlPzX literal 0 HcmV?d00001 diff --git a/themes/greydragon/css/framepacks/iphoto/views/frame.html.php b/themes/greydragon/css/framepacks/iphoto/views/frame.html.php new file mode 100755 index 0000000..87ed99b --- /dev/null +++ b/themes/greydragon/css/framepacks/iphoto/views/frame.html.php @@ -0,0 +1,5 @@ +