aboutsummaryrefslogtreecommitdiffstats
path: root/apps/gallery/js/supersized.shutter.js
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gallery/js/supersized.shutter.js')
-rw-r--r--apps/gallery/js/supersized.shutter.js337
1 files changed, 337 insertions, 0 deletions
diff --git a/apps/gallery/js/supersized.shutter.js b/apps/gallery/js/supersized.shutter.js
new file mode 100644
index 00000000000..cc3025a94a3
--- /dev/null
+++ b/apps/gallery/js/supersized.shutter.js
@@ -0,0 +1,337 @@
+/*
+
+ Supersized - Fullscreen Slideshow jQuery Plugin
+ Version : 3.2.7
+ Theme : Shutter 1.1
+
+ Site : www.buildinternet.com/project/supersized
+ Author : Sam Dunn
+ Company : One Mighty Roar (www.onemightyroar.com)
+ License : MIT License / GPL License
+
+*/
+
+(function($){
+
+ theme = {
+
+
+ /* Initial Placement
+ ----------------------------*/
+ _init : function(){
+
+ // Center Slide Links
+ if (api.options.slide_links) $(vars.slide_list).css('margin-left', -$(vars.slide_list).width()/2);
+
+ // Start progressbar if autoplay enabled
+ if (api.options.autoplay){
+ if (api.options.progress_bar) theme.progressBar();
+ }else{
+ if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "play.png"); // If pause play button is image, swap src
+ if (api.options.progress_bar) $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ); // Place progress bar
+ }
+
+
+ /* Thumbnail Tray
+ ----------------------------*/
+ // Hide tray off screen
+ $(vars.thumb_tray).animate({bottom : -$(vars.thumb_tray).height()}, 0 );
+
+ // Thumbnail Tray Toggle
+ $(vars.tray_button).toggle(function(){
+ $(vars.thumb_tray).stop().animate({bottom : 0, avoidTransforms : true}, 300 );
+ if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-down.png");
+ return false;
+ }, function() {
+ $(vars.thumb_tray).stop().animate({bottom : -$(vars.thumb_tray).height(), avoidTransforms : true}, 300 );
+ if ($(vars.tray_arrow).attr('src')) $(vars.tray_arrow).attr("src", vars.image_path + "button-tray-up.png");
+ return false;
+ });
+
+ // Make thumb tray proper size
+ $(vars.thumb_list).width($('> li', vars.thumb_list).length * $('> li', vars.thumb_list).outerWidth(true)); //Adjust to true width of thumb markers
+
+ // Display total slides
+ if ($(vars.slide_total).length){
+ $(vars.slide_total).html(api.options.slides.length);
+ }
+
+
+ /* Thumbnail Tray Navigation
+ ----------------------------*/
+ if (api.options.thumb_links){
+ //Hide thumb arrows if not needed
+ if ($(vars.thumb_list).width() <= $(vars.thumb_tray).width()){
+ $(vars.thumb_back +','+vars.thumb_forward).fadeOut(0);
+ }
+
+ // Thumb Intervals
+ vars.thumb_interval = Math.floor($(vars.thumb_tray).width() / $('> li', vars.thumb_list).outerWidth(true)) * $('> li', vars.thumb_list).outerWidth(true);
+ vars.thumb_page = 0;
+
+ // Cycle thumbs forward
+ $(vars.thumb_forward).click(function(){
+ if (vars.thumb_page - vars.thumb_interval <= -$(vars.thumb_list).width()){
+ vars.thumb_page = 0;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }else{
+ vars.thumb_page = vars.thumb_page - vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }
+ });
+
+ // Cycle thumbs backwards
+ $(vars.thumb_back).click(function(){
+ if (vars.thumb_page + vars.thumb_interval > 0){
+ vars.thumb_page = Math.floor($(vars.thumb_list).width() / vars.thumb_interval) * -vars.thumb_interval;
+ if ($(vars.thumb_list).width() <= -vars.thumb_page) vars.thumb_page = vars.thumb_page + vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }else{
+ vars.thumb_page = vars.thumb_page + vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }
+ });
+
+ }
+
+
+ /* Navigation Items
+ ----------------------------*/
+ $(vars.next_slide).click(function() {
+ api.nextSlide();
+ });
+
+ $(vars.prev_slide).click(function() {
+ api.prevSlide();
+ });
+
+ // Full Opacity on Hover
+ if(jQuery.support.opacity){
+ $(vars.prev_slide +','+vars.next_slide).mouseover(function() {
+ $(this).stop().animate({opacity:1},100);
+ }).mouseout(function(){
+ $(this).stop().animate({opacity:0.6},100);
+ });
+ }
+
+ if (api.options.thumbnail_navigation){
+ // Next thumbnail clicked
+ $(vars.next_thumb).click(function() {
+ api.nextSlide();
+ });
+ // Previous thumbnail clicked
+ $(vars.prev_thumb).click(function() {
+ api.prevSlide();
+ });
+ }
+
+ $(vars.play_button).click(function() {
+ api.playToggle();
+ });
+
+
+ /* Thumbnail Mouse Scrub
+ ----------------------------*/
+ if (api.options.mouse_scrub){
+ $(vars.thumb_tray).mousemove(function(e) {
+ var containerWidth = $(vars.thumb_tray).width(),
+ listWidth = $(vars.thumb_list).width();
+ if (listWidth > containerWidth){
+ var mousePos = 1,
+ diff = e.pageX - mousePos;
+ if (diff > 10 || diff < -10) {
+ mousePos = e.pageX;
+ newX = (containerWidth - listWidth) * (e.pageX/containerWidth);
+ diff = parseInt(Math.abs(parseInt($(vars.thumb_list).css('left'))-newX )).toFixed(0);
+ $(vars.thumb_list).stop().animate({'left':newX}, {duration:diff*3, easing:'easeOutExpo'});
+ }
+ }
+ });
+ }
+
+
+ /* Window Resize
+ ----------------------------*/
+ $(window).resize(function(){
+
+ // Delay progress bar on resize
+ if (api.options.progress_bar && !vars.in_animation){
+ if (vars.slideshow_interval) clearInterval(vars.slideshow_interval);
+ if (api.options.slides.length - 1 > 0) clearInterval(vars.slideshow_interval);
+
+ $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 );
+
+ if (!vars.progressDelay && api.options.slideshow){
+ // Delay slideshow from resuming so Chrome can refocus images
+ vars.progressDelay = setTimeout(function() {
+ if (!vars.is_paused){
+ theme.progressBar();
+ vars.slideshow_interval = setInterval(api.nextSlide, api.options.slide_interval);
+ }
+ vars.progressDelay = false;
+ }, 1000);
+ }
+ }
+
+ // Thumb Links
+ if (api.options.thumb_links && vars.thumb_tray.length){
+ // Update Thumb Interval & Page
+ vars.thumb_page = 0;
+ vars.thumb_interval = Math.floor($(vars.thumb_tray).width() / $('> li', vars.thumb_list).outerWidth(true)) * $('> li', vars.thumb_list).outerWidth(true);
+
+ // Adjust thumbnail markers
+ if ($(vars.thumb_list).width() > $(vars.thumb_tray).width()){
+ $(vars.thumb_back +','+vars.thumb_forward).fadeIn('fast');
+ $(vars.thumb_list).stop().animate({'left':0}, 200);
+ }else{
+ $(vars.thumb_back +','+vars.thumb_forward).fadeOut('fast');
+ }
+
+ }
+ });
+
+
+ },
+
+
+ /* Go To Slide
+ ----------------------------*/
+ goTo : function(){
+ if (api.options.progress_bar && !vars.is_paused){
+ $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 );
+ theme.progressBar();
+ }
+ },
+
+ /* Play & Pause Toggle
+ ----------------------------*/
+ playToggle : function(state){
+
+ if (state =='play'){
+ // If image, swap to pause
+ if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "pause.png");
+ if (api.options.progress_bar && !vars.is_paused) theme.progressBar();
+ }else if (state == 'pause'){
+ // If image, swap to play
+ if ($(vars.play_button).attr('src')) $(vars.play_button).attr("src", vars.image_path + "play.png");
+ if (api.options.progress_bar && vars.is_paused)$(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 );
+ }
+
+ },
+
+
+ /* Before Slide Transition
+ ----------------------------*/
+ beforeAnimation : function(direction){
+ if (api.options.progress_bar && !vars.is_paused) $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 );
+
+ /* Update Fields
+ ----------------------------*/
+ // Update slide caption
+ if ($(vars.slide_caption).length){
+ (api.getField('title')) ? $(vars.slide_caption).html(api.getField('title')) : $(vars.slide_caption).html('');
+ }
+ // Update slide number
+ if (vars.slide_current.length){
+ $(vars.slide_current).html(vars.current_slide + 1);
+ }
+
+
+ // Highlight current thumbnail and adjust row position
+ if (api.options.thumb_links){
+
+ $('.current-thumb').removeClass('current-thumb');
+ $('li', vars.thumb_list).eq(vars.current_slide).addClass('current-thumb');
+
+ // If thumb out of view
+ if ($(vars.thumb_list).width() > $(vars.thumb_tray).width()){
+ // If next slide direction
+ if (direction == 'next'){
+ if (vars.current_slide == 0){
+ vars.thumb_page = 0;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ } else if ($('.current-thumb').offset().left - $(vars.thumb_tray).offset().left >= vars.thumb_interval){
+ vars.thumb_page = vars.thumb_page - vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }
+ // If previous slide direction
+ }else if(direction == 'prev'){
+ if (vars.current_slide == api.options.slides.length - 1){
+ vars.thumb_page = Math.floor($(vars.thumb_list).width() / vars.thumb_interval) * -vars.thumb_interval;
+ if ($(vars.thumb_list).width() <= -vars.thumb_page) vars.thumb_page = vars.thumb_page + vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ } else if ($('.current-thumb').offset().left - $(vars.thumb_tray).offset().left < 0){
+ if (vars.thumb_page + vars.thumb_interval > 0) return false;
+ vars.thumb_page = vars.thumb_page + vars.thumb_interval;
+ $(vars.thumb_list).stop().animate({'left': vars.thumb_page}, {duration:500, easing:'easeOutExpo'});
+ }
+ }
+ }
+
+
+ }
+
+ },
+
+
+ /* After Slide Transition
+ ----------------------------*/
+ afterAnimation : function(){
+ if (api.options.progress_bar && !vars.is_paused) theme.progressBar(); // Start progress bar
+ },
+
+
+ /* Progress Bar
+ ----------------------------*/
+ progressBar : function(){
+ $(vars.progress_bar).stop().animate({left : -$(window).width()}, 0 ).animate({left:0}, api.options.slide_interval);
+ }
+
+
+ };
+
+
+ /* Theme Specific Variables
+ ----------------------------*/
+ $.supersized.themeVars = {
+
+ // Internal Variables
+ progress_delay : false, // Delay after resize before resuming slideshow
+ thumb_page : false, // Thumbnail page
+ thumb_interval : false, // Thumbnail interval
+ image_path : OC.webroot+"/apps/gallery/img/supersized/", // Default image path
+
+ // General Elements
+ play_button : '#pauseplay', // Play/Pause button
+ next_slide : '#nextslide', // Next slide button
+ prev_slide : '#prevslide', // Prev slide button
+ next_thumb : '#nextthumb', // Next slide thumb button
+ prev_thumb : '#prevthumb', // Prev slide thumb button
+
+ slide_caption : '#slidecaption', // Slide caption
+ slide_current : '.slidenumber', // Current slide number
+ slide_total : '.totalslides', // Total Slides
+ slide_list : '#slide-list', // Slide jump list
+
+ thumb_tray : '#thumb-tray', // Thumbnail tray
+ thumb_list : '#thumb-list', // Thumbnail list
+ thumb_forward : '#thumb-forward', // Cycles forward through thumbnail list
+ thumb_back : '#thumb-back', // Cycles backwards through thumbnail list
+ tray_arrow : '#tray-arrow', // Thumbnail tray button arrow
+ tray_button : '#tray-button', // Thumbnail tray button
+
+ progress_bar : '#progress-bar' // Progress bar
+
+ };
+
+ /* Theme Specific Options
+ ----------------------------*/
+ $.supersized.themeOptions = {
+
+ progress_bar : 1, // Timer for each slide
+ mouse_scrub : 0 // Thumbnails move with mouse
+
+ };
+
+
+})(jQuery);