/** * @file * Views Slideshow Xtra Javascript. */ (function ($) { Drupal.viewsSlideshowXtra = Drupal.viewsSlideshowXtra || {}; var pageX = 0, pageY = 0, timeout; Drupal.viewsSlideshowXtra.transitionBegin = function (options) { // Find our views slideshow xtra elements $('[id^="views-slideshow-xtra-"]:not(.views-slideshow-xtra-processed)').addClass('views-slideshow-xtra-processed').each(function() { // Get the slide box. var slideArea = $(this).parent().parent().find('.views_slideshow_main'); // Remove the views slideshow xtra html from the dom var xtraHTML = $(this).detach(); // Attach the views slideshow xtra html to below the main slide. $(xtraHTML).appendTo(slideArea); // Get the offsets of the slide and the views slideshow xtra elements var slideAreaOffset = slideArea.offset(); var xtraOffset = $(this).offset(); // Move the views slideshow xtra element over the top of the slide. var marginMove = slideAreaOffset.top - xtraOffset.top; $(this).css({'margin-top': marginMove + 'px'}); // Move type=text slide elements into place. var slideData = Drupal.settings.viewsSlideshowXtra[options.slideshowID].slideInfo.text; var slideNum = 0; for (slide in slideData) { var items = slideData[slide]; var itemNum = 0; for (item in items) { //alert('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-text-' + slideNum + '-' + itemNum); $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-text-' + slideNum + '-' + itemNum).css({ 'width': slideArea.width() }); itemNum++; } slideNum++; } // Move type=link slide elements into place. var slideData = Drupal.settings.viewsSlideshowXtra[options.slideshowID].slideInfo.link; var slideNum = 0; for (slide in slideData) { var items = slideData[slide]; var itemNum = 0; for (item in items) { //alert('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-link-' + slideNum + '-' + itemNum); $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-link-' + slideNum + '-' + itemNum).css({ 'width': slideArea.width() }); itemNum++; } slideNum++; } // Move type=image slide elements into place. var slideData = Drupal.settings.viewsSlideshowXtra[options.slideshowID].slideInfo.image; var slideNum = 0; for (slide in slideData) { var items = slideData[slide]; var itemNum = 0; for (item in items) { //alert('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-image-' + slideNum + '-' + itemNum); $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-image-' + slideNum + '-' + itemNum).css({ 'width': slideArea.width() }); itemNum++; } slideNum++; } var settings = Drupal.settings.viewsSlideshowXtra[options.slideshowID]; if (settings.pauseAfterMouseMove) { //if(true) { slideArea.mousemove(function(e) { if (pageX - e.pageX > 5 || pageY - e.pageY > 5) { Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": options.slideshowID }); clearTimeout(timeout); timeout = setTimeout(function() { Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": options.slideshowID }); }, 2000); } pageX = e.pageX; pageY = e.pageY; }); } }); // TODO Find a better way to detect if xtra module is enabled but this is not // an xtra slideshow. This seems to work but its probably not the right way. //if (Drupal.settings.viewsSlideshowXtra[options.slideshowID]) { THIS DOES NOT WORK! if ('viewsSlideshowXtra' in Drupal.settings) { var settings = Drupal.settings.viewsSlideshowXtra[options.slideshowID]; // Hide elements either by fading or not if (settings.displayDelayFade) { $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-row').fadeOut(); } else { $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-row').hide(); } settings.currentTransitioningSlide = options.slideNum; // Pause from showing the text and links however long the user decides. setTimeout(function() { if (options.slideNum == settings.currentTransitioningSlide) { if (settings.displayDelayFade) { $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-row-' + options.slideNum).fadeIn(); } else { $('#views-slideshow-xtra-' + options.slideshowID + ' .views-slideshow-xtra-row-' + options.slideNum).show(); } } }, settings.displayDelay ); } }; })(jQuery); /* */