web/res/js/fancybox/helpers/jquery.fancybox-buttons.js
author Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
Sun, 24 Nov 2013 03:13:33 +0100
changeset 988 954019f62866
permissions -rwxr-xr-x
update lib, First version of a event edition form.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
988
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     1
 /*!
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     2
 * Buttons helper for fancyBox
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     3
 * version: 1.0.5 (Mon, 15 Oct 2012)
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     4
 * @requires fancyBox v2.0 or later
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     5
 *
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     6
 * Usage:
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     7
 *     $(".fancybox").fancybox({
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     8
 *         helpers : {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
     9
 *             buttons: {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    10
 *                 position : 'top'
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    11
 *             }
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    12
 *         }
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    13
 *     });
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    14
 *
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    15
 */
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    16
(function ($) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    17
	//Shortcut for fancyBox object
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    18
	var F = $.fancybox;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    19
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    20
	//Add helper object
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    21
	F.helpers.buttons = {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    22
		defaults : {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    23
			skipSingle : false, // disables if gallery contains single image
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    24
			position   : 'top', // 'top' or 'bottom'
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    25
			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:;"></a></li></ul></div>'
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    26
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    27
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    28
		list : null,
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    29
		buttons: null,
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    30
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    31
		beforeLoad: function (opts, obj) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    32
			//Remove self if gallery do not have at least two items
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    33
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    34
			if (opts.skipSingle && obj.group.length < 2) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    35
				obj.helpers.buttons = false;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    36
				obj.closeBtn = true;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    37
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    38
				return;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    39
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    40
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    41
			//Increase top margin to give space for buttons
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    42
			obj.margin[ opts.position === 'bottom' ? 2 : 0 ] += 30;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    43
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    44
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    45
		onPlayStart: function () {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    46
			if (this.buttons) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    47
				this.buttons.play.attr('title', 'Pause slideshow').addClass('btnPlayOn');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    48
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    49
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    50
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    51
		onPlayEnd: function () {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    52
			if (this.buttons) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    53
				this.buttons.play.attr('title', 'Start slideshow').removeClass('btnPlayOn');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    54
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    55
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    56
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    57
		afterShow: function (opts, obj) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    58
			var buttons = this.buttons;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    59
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    60
			if (!buttons) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    61
				this.list = $(opts.tpl).addClass(opts.position).appendTo('body');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    62
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    63
				buttons = {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    64
					prev   : this.list.find('.btnPrev').click( F.prev ),
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    65
					next   : this.list.find('.btnNext').click( F.next ),
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    66
					play   : this.list.find('.btnPlay').click( F.play ),
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    67
					toggle : this.list.find('.btnToggle').click( F.toggle ),
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    68
					close  : this.list.find('.btnClose').click( F.close )
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    69
				}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    70
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    71
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    72
			//Prev
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    73
			if (obj.index > 0 || obj.loop) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    74
				buttons.prev.removeClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    75
			} else {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    76
				buttons.prev.addClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    77
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    78
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    79
			//Next / Play
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    80
			if (obj.loop || obj.index < obj.group.length - 1) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    81
				buttons.next.removeClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    82
				buttons.play.removeClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    83
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    84
			} else {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    85
				buttons.next.addClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    86
				buttons.play.addClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    87
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    88
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    89
			this.buttons = buttons;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    90
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    91
			this.onUpdate(opts, obj);
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    92
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    93
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    94
		onUpdate: function (opts, obj) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    95
			var toggle;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    96
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    97
			if (!this.buttons) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    98
				return;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
    99
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   100
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   101
			toggle = this.buttons.toggle.removeClass('btnDisabled btnToggleOn');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   102
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   103
			//Size toggle button
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   104
			if (obj.canShrink) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   105
				toggle.addClass('btnToggleOn');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   106
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   107
			} else if (!obj.canExpand) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   108
				toggle.addClass('btnDisabled');
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   109
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   110
		},
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   111
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   112
		beforeClose: function () {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   113
			if (this.list) {
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   114
				this.list.remove();
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   115
			}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   116
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   117
			this.list    = null;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   118
			this.buttons = null;
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   119
		}
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   120
	};
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   121
954019f62866 update lib,
Yves-Marie Haussonne <1218002+ymph@users.noreply.github.com>
parents:
diff changeset
   122
}(jQuery));