danielebarchiesi@2: (function ($) { danielebarchiesi@2: Drupal.viewsSlideshow = Drupal.viewsSlideshow || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Views Slideshow Controls danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowControls = Drupal.viewsSlideshowControls || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the play hook for controls. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowControls.play = function (options) { danielebarchiesi@2: // Route the control call to the correct control type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type].play == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type].play(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type].play == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type].play(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the pause hook for controls. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowControls.pause = function (options) { danielebarchiesi@2: // Route the control call to the correct control type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type].pause == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].top.type].pause(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type].pause == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowControls[options.slideshowID].bottom.type].pause(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Views Slideshow Text Controls danielebarchiesi@2: */ danielebarchiesi@2: danielebarchiesi@2: // Add views slieshow api calls for views slideshow text controls. danielebarchiesi@2: Drupal.behaviors.viewsSlideshowControlsText = { danielebarchiesi@2: attach: function (context) { danielebarchiesi@2: danielebarchiesi@2: // Process previous link danielebarchiesi@2: $('.views_slideshow_controls_text_previous:not(.views-slideshow-controls-text-previous-processed)', context).addClass('views-slideshow-controls-text-previous-processed').each(function() { danielebarchiesi@2: var uniqueID = $(this).attr('id').replace('views_slideshow_controls_text_previous_', ''); danielebarchiesi@2: $(this).click(function() { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'previousSlide', "slideshowID": uniqueID }); danielebarchiesi@2: return false; danielebarchiesi@2: }); danielebarchiesi@2: }); danielebarchiesi@2: danielebarchiesi@2: // Process next link danielebarchiesi@2: $('.views_slideshow_controls_text_next:not(.views-slideshow-controls-text-next-processed)', context).addClass('views-slideshow-controls-text-next-processed').each(function() { danielebarchiesi@2: var uniqueID = $(this).attr('id').replace('views_slideshow_controls_text_next_', ''); danielebarchiesi@2: $(this).click(function() { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'nextSlide', "slideshowID": uniqueID }); danielebarchiesi@2: return false; danielebarchiesi@2: }); danielebarchiesi@2: }); danielebarchiesi@2: danielebarchiesi@2: // Process pause link danielebarchiesi@2: $('.views_slideshow_controls_text_pause:not(.views-slideshow-controls-text-pause-processed)', context).addClass('views-slideshow-controls-text-pause-processed').each(function() { danielebarchiesi@2: var uniqueID = $(this).attr('id').replace('views_slideshow_controls_text_pause_', ''); danielebarchiesi@2: $(this).click(function() { danielebarchiesi@2: if (Drupal.settings.viewsSlideshow[uniqueID].paused) { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": uniqueID, "force": true }); danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": uniqueID, "force": true }); danielebarchiesi@2: } danielebarchiesi@2: return false; danielebarchiesi@2: }); danielebarchiesi@2: }); danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: Drupal.viewsSlideshowControlsText = Drupal.viewsSlideshowControlsText || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the pause hook for text controls. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowControlsText.pause = function (options) { danielebarchiesi@2: var pauseText = Drupal.theme.prototype['viewsSlideshowControlsPause'] ? Drupal.theme('viewsSlideshowControlsPause') : ''; danielebarchiesi@2: $('#views_slideshow_controls_text_pause_' + options.slideshowID + ' a').text(pauseText); danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the play hook for text controls. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowControlsText.play = function (options) { danielebarchiesi@2: var playText = Drupal.theme.prototype['viewsSlideshowControlsPlay'] ? Drupal.theme('viewsSlideshowControlsPlay') : ''; danielebarchiesi@2: $('#views_slideshow_controls_text_pause_' + options.slideshowID + ' a').text(playText); danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: // Theme the resume control. danielebarchiesi@2: Drupal.theme.prototype.viewsSlideshowControlsPause = function () { danielebarchiesi@2: return Drupal.t('Resume'); danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: // Theme the pause control. danielebarchiesi@2: Drupal.theme.prototype.viewsSlideshowControlsPlay = function () { danielebarchiesi@2: return Drupal.t('Pause'); danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Views Slideshow Pager danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPager = Drupal.viewsSlideshowPager || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the transitionBegin hook for pagers. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPager.transitionBegin = function (options) { danielebarchiesi@2: // Route the pager call to the correct pager type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].transitionBegin == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].transitionBegin(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].transitionBegin == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].transitionBegin(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the goToSlide hook for pagers. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPager.goToSlide = function (options) { danielebarchiesi@2: // Route the pager call to the correct pager type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].goToSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].goToSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].goToSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].goToSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the previousSlide hook for pagers. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPager.previousSlide = function (options) { danielebarchiesi@2: // Route the pager call to the correct pager type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].previousSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].previousSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].previousSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].previousSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the nextSlide hook for pagers. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPager.nextSlide = function (options) { danielebarchiesi@2: // Route the pager call to the correct pager type. danielebarchiesi@2: // Need to use try catch so we don't have to check to make sure every part danielebarchiesi@2: // of the object is defined. danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].nextSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].top.type].nextSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: try { danielebarchiesi@2: if (typeof Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type != "undefined" && typeof Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].nextSlide == 'function') { danielebarchiesi@2: Drupal[Drupal.settings.viewsSlideshowPager[options.slideshowID].bottom.type].nextSlide(options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: catch(err) { danielebarchiesi@2: // Don't need to do anything on error. danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Views Slideshow Pager Fields danielebarchiesi@2: */ danielebarchiesi@2: danielebarchiesi@2: // Add views slieshow api calls for views slideshow pager fields. danielebarchiesi@2: Drupal.behaviors.viewsSlideshowPagerFields = { danielebarchiesi@2: attach: function (context) { danielebarchiesi@2: // Process pause on hover. danielebarchiesi@2: $('.views_slideshow_pager_field:not(.views-slideshow-pager-field-processed)', context).addClass('views-slideshow-pager-field-processed').each(function() { danielebarchiesi@2: // Parse out the location and unique id from the full id. danielebarchiesi@2: var pagerInfo = $(this).attr('id').split('_'); danielebarchiesi@2: var location = pagerInfo[2]; danielebarchiesi@2: pagerInfo.splice(0, 3); danielebarchiesi@2: var uniqueID = pagerInfo.join('_'); danielebarchiesi@2: danielebarchiesi@2: // Add the activate and pause on pager hover event to each pager item. danielebarchiesi@2: if (Drupal.settings.viewsSlideshowPagerFields[uniqueID][location].activatePauseOnHover) { danielebarchiesi@2: $(this).children().each(function(index, pagerItem) { danielebarchiesi@2: var mouseIn = function() { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'goToSlide', "slideshowID": uniqueID, "slideNum": index }); danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'pause', "slideshowID": uniqueID }); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: var mouseOut = function() { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'play', "slideshowID": uniqueID }); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: if (jQuery.fn.hoverIntent) { danielebarchiesi@2: $(pagerItem).hoverIntent(mouseIn, mouseOut); danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: $(pagerItem).hover(mouseIn, mouseOut); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: }); danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: $(this).children().each(function(index, pagerItem) { danielebarchiesi@2: $(pagerItem).click(function() { danielebarchiesi@2: Drupal.viewsSlideshow.action({ "action": 'goToSlide', "slideshowID": uniqueID, "slideNum": index }); danielebarchiesi@2: }); danielebarchiesi@2: }); danielebarchiesi@2: } danielebarchiesi@2: }); danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: Drupal.viewsSlideshowPagerFields = Drupal.viewsSlideshowPagerFields || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the transitionBegin hook for pager fields pager. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPagerFields.transitionBegin = function (options) { danielebarchiesi@2: for (pagerLocation in Drupal.settings.viewsSlideshowPager[options.slideshowID]) { danielebarchiesi@2: // Remove active class from pagers danielebarchiesi@2: $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').removeClass('active'); danielebarchiesi@2: danielebarchiesi@2: // Add active class to active pager. danielebarchiesi@2: $('#views_slideshow_pager_field_item_'+ pagerLocation + '_' + options.slideshowID + '_' + options.slideNum).addClass('active'); danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the goToSlide hook for pager fields pager. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPagerFields.goToSlide = function (options) { danielebarchiesi@2: for (pagerLocation in Drupal.settings.viewsSlideshowPager[options.slideshowID]) { danielebarchiesi@2: // Remove active class from pagers danielebarchiesi@2: $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').removeClass('active'); danielebarchiesi@2: danielebarchiesi@2: // Add active class to active pager. danielebarchiesi@2: $('#views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '_' + options.slideNum).addClass('active'); danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the previousSlide hook for pager fields pager. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPagerFields.previousSlide = function (options) { danielebarchiesi@2: for (pagerLocation in Drupal.settings.viewsSlideshowPager[options.slideshowID]) { danielebarchiesi@2: // Get the current active pager. danielebarchiesi@2: var pagerNum = $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"].active').attr('id').replace('views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '_', ''); danielebarchiesi@2: danielebarchiesi@2: // If we are on the first pager then activate the last pager. danielebarchiesi@2: // Otherwise activate the previous pager. danielebarchiesi@2: if (pagerNum == 0) { danielebarchiesi@2: pagerNum = $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').length() - 1; danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: pagerNum--; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Remove active class from pagers danielebarchiesi@2: $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').removeClass('active'); danielebarchiesi@2: danielebarchiesi@2: // Add active class to active pager. danielebarchiesi@2: $('#views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '_' + pagerNum).addClass('active'); danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the nextSlide hook for pager fields pager. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowPagerFields.nextSlide = function (options) { danielebarchiesi@2: for (pagerLocation in Drupal.settings.viewsSlideshowPager[options.slideshowID]) { danielebarchiesi@2: // Get the current active pager. danielebarchiesi@2: var pagerNum = $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"].active').attr('id').replace('views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '_', ''); danielebarchiesi@2: var totalPagers = $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').length(); danielebarchiesi@2: danielebarchiesi@2: // If we are on the last pager then activate the first pager. danielebarchiesi@2: // Otherwise activate the next pager. danielebarchiesi@2: pagerNum++; danielebarchiesi@2: if (pagerNum == totalPagers) { danielebarchiesi@2: pagerNum = 0; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Remove active class from pagers danielebarchiesi@2: $('[id^="views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '"]').removeClass('active'); danielebarchiesi@2: danielebarchiesi@2: // Add active class to active pager. danielebarchiesi@2: $('#views_slideshow_pager_field_item_' + pagerLocation + '_' + options.slideshowID + '_' + slideNum).addClass('active'); danielebarchiesi@2: } danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Views Slideshow Slide Counter danielebarchiesi@2: */ danielebarchiesi@2: danielebarchiesi@2: Drupal.viewsSlideshowSlideCounter = Drupal.viewsSlideshowSlideCounter || {}; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * Implement the transitionBegin for the slide counter. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshowSlideCounter.transitionBegin = function (options) { danielebarchiesi@2: $('#views_slideshow_slide_counter_' + options.slideshowID + ' .num').text(options.slideNum + 1); danielebarchiesi@2: }; danielebarchiesi@2: danielebarchiesi@2: /** danielebarchiesi@2: * This is used as a router to process actions for the slideshow. danielebarchiesi@2: */ danielebarchiesi@2: Drupal.viewsSlideshow.action = function (options) { danielebarchiesi@2: // Set default values for our return status. danielebarchiesi@2: var status = { danielebarchiesi@2: 'value': true, danielebarchiesi@2: 'text': '' danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // If an action isn't specified return false. danielebarchiesi@2: if (typeof options.action == 'undefined' || options.action == '') { danielebarchiesi@2: status.value = false; danielebarchiesi@2: status.text = Drupal.t('There was no action specified.'); danielebarchiesi@2: return error; danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // If we are using pause or play switch paused state accordingly. danielebarchiesi@2: if (options.action == 'pause') { danielebarchiesi@2: Drupal.settings.viewsSlideshow[options.slideshowID].paused = 1; danielebarchiesi@2: // If the calling method is forcing a pause then mark it as such. danielebarchiesi@2: if (options.force) { danielebarchiesi@2: Drupal.settings.viewsSlideshow[options.slideshowID].pausedForce = 1; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: else if (options.action == 'play') { danielebarchiesi@2: // If the slideshow isn't forced pause or we are forcing a play then play danielebarchiesi@2: // the slideshow. danielebarchiesi@2: // Otherwise return telling the calling method that it was forced paused. danielebarchiesi@2: if (!Drupal.settings.viewsSlideshow[options.slideshowID].pausedForce || options.force) { danielebarchiesi@2: Drupal.settings.viewsSlideshow[options.slideshowID].paused = 0; danielebarchiesi@2: Drupal.settings.viewsSlideshow[options.slideshowID].pausedForce = 0; danielebarchiesi@2: } danielebarchiesi@2: else { danielebarchiesi@2: status.value = false; danielebarchiesi@2: status.text += ' ' + Drupal.t('This slideshow is forced paused.'); danielebarchiesi@2: return status; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // We use a switch statement here mainly just to limit the type of actions danielebarchiesi@2: // that are available. danielebarchiesi@2: switch (options.action) { danielebarchiesi@2: case "goToSlide": danielebarchiesi@2: case "transitionBegin": danielebarchiesi@2: case "transitionEnd": danielebarchiesi@2: // The three methods above require a slide number. Checking if it is danielebarchiesi@2: // defined and it is a number that is an integer. danielebarchiesi@2: if (typeof options.slideNum == 'undefined' || typeof options.slideNum !== 'number' || parseInt(options.slideNum) != (options.slideNum - 0)) { danielebarchiesi@2: status.value = false; danielebarchiesi@2: status.text = Drupal.t('An invalid integer was specified for slideNum.'); danielebarchiesi@2: } danielebarchiesi@2: case "pause": danielebarchiesi@2: case "play": danielebarchiesi@2: case "nextSlide": danielebarchiesi@2: case "previousSlide": danielebarchiesi@2: // Grab our list of methods. danielebarchiesi@2: var methods = Drupal.settings.viewsSlideshow[options.slideshowID]['methods']; danielebarchiesi@2: danielebarchiesi@2: // if the calling method specified methods that shouldn't be called then danielebarchiesi@2: // exclude calling them. danielebarchiesi@2: var excludeMethodsObj = {}; danielebarchiesi@2: if (typeof options.excludeMethods !== 'undefined') { danielebarchiesi@2: // We need to turn the excludeMethods array into an object so we can use the in danielebarchiesi@2: // function. danielebarchiesi@2: for (var i=0; i < excludeMethods.length; i++) { danielebarchiesi@2: excludeMethodsObj[excludeMethods[i]] = ''; danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: danielebarchiesi@2: // Call every registered method and don't call excluded ones. danielebarchiesi@2: for (i = 0; i < methods[options.action].length; i++) { danielebarchiesi@2: if (Drupal[methods[options.action][i]] != undefined && typeof Drupal[methods[options.action][i]][options.action] == 'function' && !(methods[options.action][i] in excludeMethodsObj)) { danielebarchiesi@2: Drupal[methods[options.action][i]][options.action](options); danielebarchiesi@2: } danielebarchiesi@2: } danielebarchiesi@2: break; danielebarchiesi@2: danielebarchiesi@2: // If it gets here it's because it's an invalid action. danielebarchiesi@2: default: danielebarchiesi@2: status.value = false; danielebarchiesi@2: status.text = Drupal.t('An invalid action "!action" was specified.', { "!action": options.action }); danielebarchiesi@2: } danielebarchiesi@2: return status; danielebarchiesi@2: }; danielebarchiesi@2: })(jQuery);