client/player/js/ui/jquery.ui.tabs.js
author hurons
Wed, 09 Jun 2010 16:48:35 +0200
changeset 1 436d4791d7ac
child 57 3a3c15c462f8
permissions -rw-r--r--
premier version du player test de commit
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     1
/*
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     2
 * jQuery UI Tabs 1.8.1
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     3
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     4
 * Copyright (c) 2010 AUTHORS.txt (http://jqueryui.com/about)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     5
 * Dual licensed under the MIT (MIT-LICENSE.txt)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     6
 * and GPL (GPL-LICENSE.txt) licenses.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     7
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     8
 * http://docs.jquery.com/UI/Tabs
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
     9
 *
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    10
 * Depends:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    11
 *	jquery.ui.core.js
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    12
 *	jquery.ui.widget.js
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    13
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    14
(function($) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    15
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    16
var tabId = 0,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    17
	listId = 0;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    18
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    19
$.widget("ui.tabs", {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    20
	options: {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    21
		add: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    22
		ajaxOptions: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    23
		cache: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    24
		cookie: null, // e.g. { expires: 7, path: '/', domain: 'jquery.com', secure: true }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    25
		collapsible: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    26
		disable: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    27
		disabled: [],
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    28
		enable: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    29
		event: 'click',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    30
		fx: null, // e.g. { height: 'toggle', opacity: 'toggle', duration: 200 }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    31
		idPrefix: 'ui-tabs-',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    32
		load: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    33
		panelTemplate: '<div></div>',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    34
		remove: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    35
		select: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    36
		show: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    37
		spinner: '<em>Loading&#8230;</em>',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    38
		tabTemplate: '<li><a href="#{href}"><span>#{label}</span></a></li>'
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    39
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    40
	_create: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    41
		this._tabify(true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    42
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    43
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    44
	_setOption: function(key, value) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    45
		if (key == 'selected') {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    46
			if (this.options.collapsible && value == this.options.selected) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    47
				return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    48
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    49
			this.select(value);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    50
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    51
		else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    52
			this.options[key] = value;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    53
			this._tabify();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    54
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    55
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    56
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    57
	_tabId: function(a) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    58
		return a.title && a.title.replace(/\s/g, '_').replace(/[^A-Za-z0-9\-_:\.]/g, '') ||
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    59
			this.options.idPrefix + (++tabId);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    60
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    61
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    62
	_sanitizeSelector: function(hash) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    63
		return hash.replace(/:/g, '\\:'); // we need this because an id may contain a ":"
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    64
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    65
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    66
	_cookie: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    67
		var cookie = this.cookie || (this.cookie = this.options.cookie.name || 'ui-tabs-' + (++listId));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    68
		return $.cookie.apply(null, [cookie].concat($.makeArray(arguments)));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    69
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    70
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    71
	_ui: function(tab, panel) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    72
		return {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    73
			tab: tab,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    74
			panel: panel,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    75
			index: this.anchors.index(tab)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    76
		};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    77
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    78
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    79
	_cleanup: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    80
		// restore all former loading tabs labels
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    81
		this.lis.filter('.ui-state-processing').removeClass('ui-state-processing')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    82
				.find('span:data(label.tabs)')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    83
				.each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    84
					var el = $(this);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    85
					el.html(el.data('label.tabs')).removeData('label.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    86
				});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    87
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    88
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    89
	_tabify: function(init) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    90
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    91
		this.list = this.element.find('ol,ul').eq(0);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    92
		this.lis = $('li:has(a[href])', this.list);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    93
		this.anchors = this.lis.map(function() { return $('a', this)[0]; });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    94
		this.panels = $([]);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    95
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    96
		var self = this, o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    97
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    98
		var fragmentId = /^#.+/; // Safari 2 reports '#' for an empty hash
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    99
		this.anchors.each(function(i, a) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   100
			var href = $(a).attr('href');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   101
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   102
			// For dynamically created HTML that contains a hash as href IE < 8 expands
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   103
			// such href to the full page url with hash and then misinterprets tab as ajax.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   104
			// Same consideration applies for an added tab with a fragment identifier
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   105
			// since a[href=#fragment-identifier] does unexpectedly not match.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   106
			// Thus normalize href attribute...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   107
			var hrefBase = href.split('#')[0], baseEl;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   108
			if (hrefBase && (hrefBase === location.toString().split('#')[0] ||
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   109
					(baseEl = $('base')[0]) && hrefBase === baseEl.href)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   110
				href = a.hash;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   111
				a.href = href;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   112
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   113
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   114
			// inline tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   115
			if (fragmentId.test(href)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   116
				self.panels = self.panels.add(self._sanitizeSelector(href));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   117
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   118
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   119
			// remote tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   120
			else if (href != '#') { // prevent loading the page itself if href is just "#"
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   121
				$.data(a, 'href.tabs', href); // required for restore on destroy
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   122
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   123
				// TODO until #3808 is fixed strip fragment identifier from url
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   124
				// (IE fails to load from such url)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   125
				$.data(a, 'load.tabs', href.replace(/#.*$/, '')); // mutable data
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   126
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   127
				var id = self._tabId(a);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   128
				a.href = '#' + id;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   129
				var $panel = $('#' + id);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   130
				if (!$panel.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   131
					$panel = $(o.panelTemplate).attr('id', id).addClass('ui-tabs-panel ui-widget-content ui-corner-bottom')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   132
						.insertAfter(self.panels[i - 1] || self.list);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   133
					$panel.data('destroy.tabs', true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   134
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   135
				self.panels = self.panels.add($panel);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   136
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   137
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   138
			// invalid tab href
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   139
			else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   140
				o.disabled.push(i);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   141
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   142
		});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   143
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   144
		// initialization from scratch
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   145
		if (init) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   146
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   147
			// attach necessary classes for styling
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   148
			this.element.addClass('ui-tabs ui-widget ui-widget-content ui-corner-all');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   149
			this.list.addClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   150
			this.lis.addClass('ui-state-default ui-corner-top');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   151
			this.panels.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   152
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   153
			// Selected tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   154
			// use "selected" option or try to retrieve:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   155
			// 1. from fragment identifier in url
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   156
			// 2. from cookie
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   157
			// 3. from selected class attribute on <li>
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   158
			if (o.selected === undefined) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   159
				if (location.hash) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   160
					this.anchors.each(function(i, a) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   161
						if (a.hash == location.hash) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   162
							o.selected = i;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   163
							return false; // break
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   164
						}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   165
					});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   166
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   167
				if (typeof o.selected != 'number' && o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   168
					o.selected = parseInt(self._cookie(), 10);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   169
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   170
				if (typeof o.selected != 'number' && this.lis.filter('.ui-tabs-selected').length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   171
					o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   172
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   173
				o.selected = o.selected || (this.lis.length ? 0 : -1);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   174
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   175
			else if (o.selected === null) { // usage of null is deprecated, TODO remove in next release
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   176
				o.selected = -1;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   177
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   178
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   179
			// sanity check - default to first tab...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   180
			o.selected = ((o.selected >= 0 && this.anchors[o.selected]) || o.selected < 0) ? o.selected : 0;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   181
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   182
			// Take disabling tabs via class attribute from HTML
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   183
			// into account and update option properly.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   184
			// A selected tab cannot become disabled.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   185
			o.disabled = $.unique(o.disabled.concat(
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   186
				$.map(this.lis.filter('.ui-state-disabled'),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   187
					function(n, i) { return self.lis.index(n); } )
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   188
			)).sort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   189
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   190
			if ($.inArray(o.selected, o.disabled) != -1) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   191
				o.disabled.splice($.inArray(o.selected, o.disabled), 1);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   192
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   193
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   194
			// highlight selected tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   195
			this.panels.addClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   196
			this.lis.removeClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   197
			if (o.selected >= 0 && this.anchors.length) { // check for length avoids error when initializing empty list
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   198
				this.panels.eq(o.selected).removeClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   199
				this.lis.eq(o.selected).addClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   200
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   201
				// seems to be expected behavior that the show callback is fired
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   202
				self.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   203
					self._trigger('show', null, self._ui(self.anchors[o.selected], self.panels[o.selected]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   204
				});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   205
				
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   206
				this.load(o.selected);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   207
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   208
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   209
			// clean up to avoid memory leaks in certain versions of IE 6
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   210
			$(window).bind('unload', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   211
				self.lis.add(self.anchors).unbind('.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   212
				self.lis = self.anchors = self.panels = null;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   213
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   214
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   215
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   216
		// update selected after add/remove
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   217
		else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   218
			o.selected = this.lis.index(this.lis.filter('.ui-tabs-selected'));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   219
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   220
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   221
		// update collapsible
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   222
		this.element[o.collapsible ? 'addClass' : 'removeClass']('ui-tabs-collapsible');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   223
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   224
		// set or update cookie after init and add/remove respectively
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   225
		if (o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   226
			this._cookie(o.selected, o.cookie);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   227
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   228
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   229
		// disable tabs
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   230
		for (var i = 0, li; (li = this.lis[i]); i++) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   231
			$(li)[$.inArray(i, o.disabled) != -1 &&
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   232
				!$(li).hasClass('ui-tabs-selected') ? 'addClass' : 'removeClass']('ui-state-disabled');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   233
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   234
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   235
		// reset cache if switching from cached to not cached
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   236
		if (o.cache === false) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   237
			this.anchors.removeData('cache.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   238
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   239
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   240
		// remove all handlers before, tabify may run on existing tabs after add or option change
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   241
		this.lis.add(this.anchors).unbind('.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   242
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   243
		if (o.event != 'mouseover') {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   244
			var addState = function(state, el) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   245
				if (el.is(':not(.ui-state-disabled)')) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   246
					el.addClass('ui-state-' + state);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   247
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   248
			};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   249
			var removeState = function(state, el) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   250
				el.removeClass('ui-state-' + state);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   251
			};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   252
			this.lis.bind('mouseover.tabs', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   253
				addState('hover', $(this));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   254
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   255
			this.lis.bind('mouseout.tabs', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   256
				removeState('hover', $(this));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   257
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   258
			this.anchors.bind('focus.tabs', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   259
				addState('focus', $(this).closest('li'));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   260
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   261
			this.anchors.bind('blur.tabs', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   262
				removeState('focus', $(this).closest('li'));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   263
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   264
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   265
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   266
		// set up animations
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   267
		var hideFx, showFx;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   268
		if (o.fx) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   269
			if ($.isArray(o.fx)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   270
				hideFx = o.fx[0];
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   271
				showFx = o.fx[1];
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   272
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   273
			else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   274
				hideFx = showFx = o.fx;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   275
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   276
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   277
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   278
		// Reset certain styles left over from animation
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   279
		// and prevent IE's ClearType bug...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   280
		function resetStyle($el, fx) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   281
			$el.css({ display: '' });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   282
			if (!$.support.opacity && fx.opacity) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   283
				$el[0].style.removeAttribute('filter');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   284
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   285
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   286
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   287
		// Show a tab...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   288
		var showTab = showFx ?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   289
			function(clicked, $show) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   290
				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   291
				$show.hide().removeClass('ui-tabs-hide') // avoid flicker that way
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   292
					.animate(showFx, showFx.duration || 'normal', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   293
						resetStyle($show, showFx);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   294
						self._trigger('show', null, self._ui(clicked, $show[0]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   295
					});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   296
			} :
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   297
			function(clicked, $show) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   298
				$(clicked).closest('li').addClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   299
				$show.removeClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   300
				self._trigger('show', null, self._ui(clicked, $show[0]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   301
			};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   302
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   303
		// Hide a tab, $show is optional...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   304
		var hideTab = hideFx ?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   305
			function(clicked, $hide) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   306
				$hide.animate(hideFx, hideFx.duration || 'normal', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   307
					self.lis.removeClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   308
					$hide.addClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   309
					resetStyle($hide, hideFx);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   310
					self.element.dequeue("tabs");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   311
				});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   312
			} :
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   313
			function(clicked, $hide, $show) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   314
				self.lis.removeClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   315
				$hide.addClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   316
				self.element.dequeue("tabs");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   317
			};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   318
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   319
		// attach tab event handler, unbind to avoid duplicates from former tabifying...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   320
		this.anchors.bind(o.event + '.tabs', function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   321
			var el = this, $li = $(this).closest('li'), $hide = self.panels.filter(':not(.ui-tabs-hide)'),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   322
					$show = $(self._sanitizeSelector(this.hash));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   323
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   324
			// If tab is already selected and not collapsible or tab disabled or
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   325
			// or is already loading or click callback returns false stop here.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   326
			// Check if click handler returns false last so that it is not executed
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   327
			// for a disabled or loading tab!
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   328
			if (($li.hasClass('ui-tabs-selected') && !o.collapsible) ||
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   329
				$li.hasClass('ui-state-disabled') ||
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   330
				$li.hasClass('ui-state-processing') ||
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   331
				self._trigger('select', null, self._ui(this, $show[0])) === false) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   332
				this.blur();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   333
				return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   334
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   335
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   336
			o.selected = self.anchors.index(this);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   337
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   338
			self.abort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   339
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   340
			// if tab may be closed
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   341
			if (o.collapsible) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   342
				if ($li.hasClass('ui-tabs-selected')) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   343
					o.selected = -1;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   344
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   345
					if (o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   346
						self._cookie(o.selected, o.cookie);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   347
					}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   348
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   349
					self.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   350
						hideTab(el, $hide);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   351
					}).dequeue("tabs");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   352
					
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   353
					this.blur();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   354
					return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   355
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   356
				else if (!$hide.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   357
					if (o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   358
						self._cookie(o.selected, o.cookie);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   359
					}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   360
					
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   361
					self.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   362
						showTab(el, $show);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   363
					});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   364
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   365
					self.load(self.anchors.index(this)); // TODO make passing in node possible, see also http://dev.jqueryui.com/ticket/3171
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   366
					
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   367
					this.blur();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   368
					return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   369
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   370
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   371
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   372
			if (o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   373
				self._cookie(o.selected, o.cookie);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   374
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   375
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   376
			// show new tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   377
			if ($show.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   378
				if ($hide.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   379
					self.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   380
						hideTab(el, $hide);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   381
					});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   382
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   383
				self.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   384
					showTab(el, $show);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   385
				});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   386
				
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   387
				self.load(self.anchors.index(this));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   388
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   389
			else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   390
				throw 'jQuery UI Tabs: Mismatching fragment identifier.';
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   391
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   392
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   393
			// Prevent IE from keeping other link focussed when using the back button
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   394
			// and remove dotted border from clicked link. This is controlled via CSS
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   395
			// in modern browsers; blur() removes focus from address bar in Firefox
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   396
			// which can become a usability and annoying problem with tabs('rotate').
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   397
			if ($.browser.msie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   398
				this.blur();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   399
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   400
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   401
		});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   402
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   403
		// disable click in any case
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   404
		this.anchors.bind('click.tabs', function(){return false;});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   405
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   406
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   407
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   408
	destroy: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   409
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   410
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   411
		this.abort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   412
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   413
		this.element.unbind('.tabs')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   414
			.removeClass('ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   415
			.removeData('tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   416
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   417
		this.list.removeClass('ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   418
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   419
		this.anchors.each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   420
			var href = $.data(this, 'href.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   421
			if (href) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   422
				this.href = href;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   423
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   424
			var $this = $(this).unbind('.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   425
			$.each(['href', 'load', 'cache'], function(i, prefix) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   426
				$this.removeData(prefix + '.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   427
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   428
		});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   429
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   430
		this.lis.unbind('.tabs').add(this.panels).each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   431
			if ($.data(this, 'destroy.tabs')) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   432
				$(this).remove();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   433
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   434
			else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   435
				$(this).removeClass([
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   436
					'ui-state-default',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   437
					'ui-corner-top',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   438
					'ui-tabs-selected',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   439
					'ui-state-active',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   440
					'ui-state-hover',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   441
					'ui-state-focus',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   442
					'ui-state-disabled',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   443
					'ui-tabs-panel',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   444
					'ui-widget-content',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   445
					'ui-corner-bottom',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   446
					'ui-tabs-hide'
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   447
				].join(' '));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   448
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   449
		});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   450
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   451
		if (o.cookie) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   452
			this._cookie(null, o.cookie);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   453
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   454
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   455
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   456
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   457
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   458
	add: function(url, label, index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   459
		if (index === undefined) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   460
			index = this.anchors.length; // append by default
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   461
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   462
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   463
		var self = this, o = this.options,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   464
			$li = $(o.tabTemplate.replace(/#\{href\}/g, url).replace(/#\{label\}/g, label)),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   465
			id = !url.indexOf('#') ? url.replace('#', '') : this._tabId($('a', $li)[0]);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   466
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   467
		$li.addClass('ui-state-default ui-corner-top').data('destroy.tabs', true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   468
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   469
		// try to find an existing element before creating a new one
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   470
		var $panel = $('#' + id);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   471
		if (!$panel.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   472
			$panel = $(o.panelTemplate).attr('id', id).data('destroy.tabs', true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   473
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   474
		$panel.addClass('ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   475
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   476
		if (index >= this.lis.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   477
			$li.appendTo(this.list);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   478
			$panel.appendTo(this.list[0].parentNode);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   479
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   480
		else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   481
			$li.insertBefore(this.lis[index]);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   482
			$panel.insertBefore(this.panels[index]);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   483
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   484
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   485
		o.disabled = $.map(o.disabled,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   486
			function(n, i) { return n >= index ? ++n : n; });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   487
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   488
		this._tabify();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   489
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   490
		if (this.anchors.length == 1) { // after tabify
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   491
			o.selected = 0;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   492
			$li.addClass('ui-tabs-selected ui-state-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   493
			$panel.removeClass('ui-tabs-hide');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   494
			this.element.queue("tabs", function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   495
				self._trigger('show', null, self._ui(self.anchors[0], self.panels[0]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   496
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   497
				
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   498
			this.load(0);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   499
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   500
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   501
		// callback
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   502
		this._trigger('add', null, this._ui(this.anchors[index], this.panels[index]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   503
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   504
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   505
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   506
	remove: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   507
		var o = this.options, $li = this.lis.eq(index).remove(),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   508
			$panel = this.panels.eq(index).remove();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   509
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   510
		// If selected tab was removed focus tab to the right or
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   511
		// in case the last tab was removed the tab to the left.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   512
		if ($li.hasClass('ui-tabs-selected') && this.anchors.length > 1) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   513
			this.select(index + (index + 1 < this.anchors.length ? 1 : -1));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   514
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   515
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   516
		o.disabled = $.map($.grep(o.disabled, function(n, i) { return n != index; }),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   517
			function(n, i) { return n >= index ? --n : n; });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   518
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   519
		this._tabify();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   520
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   521
		// callback
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   522
		this._trigger('remove', null, this._ui($li.find('a')[0], $panel[0]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   523
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   524
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   525
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   526
	enable: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   527
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   528
		if ($.inArray(index, o.disabled) == -1) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   529
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   530
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   531
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   532
		this.lis.eq(index).removeClass('ui-state-disabled');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   533
		o.disabled = $.grep(o.disabled, function(n, i) { return n != index; });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   534
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   535
		// callback
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   536
		this._trigger('enable', null, this._ui(this.anchors[index], this.panels[index]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   537
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   538
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   539
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   540
	disable: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   541
		var self = this, o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   542
		if (index != o.selected) { // cannot disable already selected tab
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   543
			this.lis.eq(index).addClass('ui-state-disabled');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   544
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   545
			o.disabled.push(index);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   546
			o.disabled.sort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   547
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   548
			// callback
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   549
			this._trigger('disable', null, this._ui(this.anchors[index], this.panels[index]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   550
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   551
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   552
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   553
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   554
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   555
	select: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   556
		if (typeof index == 'string') {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   557
			index = this.anchors.index(this.anchors.filter('[href$=' + index + ']'));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   558
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   559
		else if (index === null) { // usage of null is deprecated, TODO remove in next release
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   560
			index = -1;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   561
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   562
		if (index == -1 && this.options.collapsible) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   563
			index = this.options.selected;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   564
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   565
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   566
		this.anchors.eq(index).trigger(this.options.event + '.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   567
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   568
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   569
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   570
	load: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   571
		var self = this, o = this.options, a = this.anchors.eq(index)[0], url = $.data(a, 'load.tabs');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   572
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   573
		this.abort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   574
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   575
		// not remote or from cache
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   576
		if (!url || this.element.queue("tabs").length !== 0 && $.data(a, 'cache.tabs')) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   577
			this.element.dequeue("tabs");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   578
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   579
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   580
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   581
		// load remote from here on
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   582
		this.lis.eq(index).addClass('ui-state-processing');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   583
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   584
		if (o.spinner) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   585
			var span = $('span', a);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   586
			span.data('label.tabs', span.html()).html(o.spinner);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   587
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   588
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   589
		this.xhr = $.ajax($.extend({}, o.ajaxOptions, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   590
			url: url,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   591
			success: function(r, s) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   592
				$(self._sanitizeSelector(a.hash)).html(r);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   593
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   594
				// take care of tab labels
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   595
				self._cleanup();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   596
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   597
				if (o.cache) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   598
					$.data(a, 'cache.tabs', true); // if loaded once do not load them again
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   599
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   600
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   601
				// callbacks
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   602
				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   603
				try {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   604
					o.ajaxOptions.success(r, s);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   605
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   606
				catch (e) {}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   607
			},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   608
			error: function(xhr, s, e) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   609
				// take care of tab labels
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   610
				self._cleanup();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   611
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   612
				// callbacks
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   613
				self._trigger('load', null, self._ui(self.anchors[index], self.panels[index]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   614
				try {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   615
					// Passing index avoid a race condition when this method is
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   616
					// called after the user has selected another tab.
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   617
					// Pass the anchor that initiated this request allows
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   618
					// loadError to manipulate the tab content panel via $(a.hash)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   619
					o.ajaxOptions.error(xhr, s, index, a);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   620
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   621
				catch (e) {}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   622
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   623
		}));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   624
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   625
		// last, so that load event is fired before show...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   626
		self.element.dequeue("tabs");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   627
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   628
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   629
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   630
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   631
	abort: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   632
		// stop possibly running animations
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   633
		this.element.queue([]);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   634
		this.panels.stop(false, true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   635
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   636
		// "tabs" queue must not contain more than two elements,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   637
		// which are the callbacks for the latest clicked tab...
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   638
		this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   639
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   640
		// terminate pending requests from other tabs
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   641
		if (this.xhr) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   642
			this.xhr.abort();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   643
			delete this.xhr;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   644
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   645
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   646
		// take care of tab labels
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   647
		this._cleanup();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   648
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   649
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   650
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   651
	url: function(index, url) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   652
		this.anchors.eq(index).removeData('cache.tabs').data('load.tabs', url);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   653
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   654
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   655
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   656
	length: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   657
		return this.anchors.length;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   658
	}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   659
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   660
});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   661
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   662
$.extend($.ui.tabs, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   663
	version: '1.8.1'
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   664
});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   665
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   666
/*
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   667
 * Tabs Extensions
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   668
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   669
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   670
/*
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   671
 * Rotate
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   672
 */
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   673
$.extend($.ui.tabs.prototype, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   674
	rotation: null,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   675
	rotate: function(ms, continuing) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   676
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   677
		var self = this, o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   678
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   679
		var rotate = self._rotate || (self._rotate = function(e) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   680
			clearTimeout(self.rotation);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   681
			self.rotation = setTimeout(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   682
				var t = o.selected;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   683
				self.select( ++t < self.anchors.length ? t : 0 );
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   684
			}, ms);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   685
			
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   686
			if (e) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   687
				e.stopPropagation();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   688
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   689
		});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   690
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   691
		var stop = self._unrotate || (self._unrotate = !continuing ?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   692
			function(e) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   693
				if (e.clientX) { // in case of a true click
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   694
					self.rotate(null);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   695
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   696
			} :
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   697
			function(e) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   698
				t = o.selected;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   699
				rotate();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   700
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   701
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   702
		// start rotation
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   703
		if (ms) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   704
			this.element.bind('tabsshow', rotate);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   705
			this.anchors.bind(o.event + '.tabs', stop);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   706
			rotate();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   707
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   708
		// stop rotation
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   709
		else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   710
			clearTimeout(self.rotation);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   711
			this.element.unbind('tabsshow', rotate);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   712
			this.anchors.unbind(o.event + '.tabs', stop);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   713
			delete this._rotate;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   714
			delete this._unrotate;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   715
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   716
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   717
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   718
	}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   719
});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   720
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   721
})(jQuery);