| /*! |
| * Buttons helper for fancyBox |
| * version: 1.0.2 |
| * @requires fancyBox v2.0 or later |
| * |
| * Usage: |
| * $(".fancybox").fancybox({ |
| * buttons: { |
| * position : 'top' |
| * } |
| * }); |
| * |
| * Options: |
| * tpl - HTML template |
| * position - 'top' or 'bottom' |
| * |
| */ |
| (function ($) { |
| //Shortcut for fancyBox object |
| var F = $.fancybox; |
| |
| //Add helper object |
| F.helpers.buttons = { |
| tpl: '<div id="fancybox-buttons"><ul><li><a class="btnPrev" title="Previous" href="javascript:;"></a></li><li><a class="btnPlay" title="Start slideshow" href="javascript:;"></a></li><li><a class="btnNext" title="Next" href="javascript:;"></a></li><li><a class="btnToggle" title="Toggle size" href="javascript:;"></a></li><li><a class="btnClose" title="Close" href="javascript:jQuery.fancybox.close();"></a></li></ul></div>', |
| list: null, |
| buttons: {}, |
| |
| update: function () { |
| var toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn'); |
| |
| //Size toggle button |
| if (F.current.canShrink) { |
| toggle.addClass('btnToggleOn'); |
| |
| } else if (!F.current.canExpand) { |
| toggle.addClass('btnDisabled'); |
| } |
| }, |
| |
| beforeLoad: function (opts) { |
| //Remove self if gallery do not have at least two items |
| if (F.group.length < 2) { |
| F.coming.helpers.buttons = false; |
| F.coming.closeBtn = true; |
| |
| return; |
| } |
| |
| //Increase top margin to give space for buttons |
| F.coming.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30; |
| }, |
| |
| onPlayStart: function () { |
| if (this.list) { |
| this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn'); |
| } |
| }, |
| |
| onPlayEnd: function () { |
| if (this.list) { |
| this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn'); |
| } |
| }, |
| |
| afterShow: function (opts) { |
| var buttons; |
| |
| if (!this.list) { |
| this.list = $(opts.tpl || this.tpl).addClass(opts.position || 'top').appendTo('body'); |
| |
| this.buttons = { |
| prev : this.list.find('.btnPrev').click( F.prev ), |
| next : this.list.find('.btnNext').click( F.next ), |
| play : this.list.find('.btnPlay').click( F.play ), |
| toggle : this.list.find('.btnToggle').click( F.toggle ) |
| } |
| } |
| |
| buttons = this.buttons; |
| |
| //Prev |
| if (F.current.index > 0 || F.current.loop) { |
| buttons.prev.removeClass('btnDisabled'); |
| } else { |
| buttons.prev.addClass('btnDisabled'); |
| } |
| |
| //Next / Play |
| if (F.current.loop || F.current.index < F.group.length - 1) { |
| buttons.next.removeClass('btnDisabled'); |
| buttons.play.removeClass('btnDisabled'); |
| |
| } else { |
| buttons.next.addClass('btnDisabled'); |
| buttons.play.addClass('btnDisabled'); |
| } |
| |
| this.update(); |
| }, |
| |
| onUpdate: function () { |
| this.update(); |
| }, |
| |
| beforeClose: function () { |
| if (this.list) { |
| this.list.remove(); |
| } |
| |
| this.list = null; |
| this.buttons = {}; |
| } |
| }; |
| |
| }(jQuery)); |