client/player/js/ui/jquery.ui.accordion.js
author ymh <ymh.work@gmail.com>
Tue, 15 Jun 2010 00:28:52 +0200
changeset 44 704480d8fb14
parent 1 436d4791d7ac
child 57 3a3c15c462f8
permissions -rw-r--r--
Added tag V00.07 for changeset 365124aa9efd
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 Accordion 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/Accordion
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
$.widget("ui.accordion", {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    17
	options: {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    18
		active: 0,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    19
		animated: 'slide',
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    20
		autoHeight: true,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    21
		clearStyle: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    22
		collapsible: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    23
		event: "click",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    24
		fillSpace: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    25
		header: "> li > :first-child,> :not(li):even",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    26
		icons: {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    27
			header: "ui-icon-triangle-1-e",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    28
			headerSelected: "ui-icon-triangle-1-s"
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    29
		},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    30
		navigation: false,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    31
		navigationFilter: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    32
			return this.href.toLowerCase() == location.href.toLowerCase();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    33
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    34
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    35
	_create: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    36
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    37
		var o = this.options, self = this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    38
		this.running = 0;
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
		this.element.addClass("ui-accordion ui-widget ui-helper-reset");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    41
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    42
		// in lack of child-selectors in CSS we need to mark top-LIs in a UL-accordion for some IE-fix
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    43
		if (this.element[0].nodeName == "UL") {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    44
			this.element.children("li").addClass("ui-accordion-li-fix");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    45
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    46
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    47
		this.headers = this.element.find(o.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    48
			.bind("mouseenter.accordion", function(){ $(this).addClass('ui-state-hover'); })
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    49
			.bind("mouseleave.accordion", function(){ $(this).removeClass('ui-state-hover'); })
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    50
			.bind("focus.accordion", function(){ $(this).addClass('ui-state-focus'); })
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    51
			.bind("blur.accordion", function(){ $(this).removeClass('ui-state-focus'); });
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    52
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    53
		this.headers
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    54
			.next()
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    55
				.addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
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
		if ( o.navigation ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    58
			var current = this.element.find("a").filter(o.navigationFilter);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    59
			if ( current.length ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    60
				var header = current.closest(".ui-accordion-header");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    61
				if ( header.length ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    62
					// anchor within header
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    63
					this.active = header;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    64
				} else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    65
					// anchor within content
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    66
					this.active = current.closest(".ui-accordion-content").prev();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    67
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    68
			}
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
		this.active = this._findActive(this.active || o.active).toggleClass("ui-state-default").toggleClass("ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    72
		this.active.next().addClass('ui-accordion-content-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    73
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    74
		//Append icon elements
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    75
		this._createIcons();
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
		this.resize();
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
		//ARIA
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    80
		this.element.attr('role','tablist');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    81
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    82
		this.headers
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    83
			.attr('role','tab')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    84
			.bind('keydown', function(event) { return self._keydown(event); })
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    85
			.next()
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    86
			.attr('role','tabpanel');
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
		this.headers
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    89
			.not(this.active || "")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    90
			.attr('aria-expanded','false')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    91
			.attr("tabIndex", "-1")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    92
			.next()
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    93
			.hide();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    94
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    95
		// make sure at least one header is in the tab order
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    96
		if (!this.active.length) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    97
			this.headers.eq(0).attr('tabIndex','0');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    98
		} else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
    99
			this.active
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   100
				.attr('aria-expanded','true')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   101
				.attr('tabIndex', '0');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   102
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   103
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   104
		// only need links in taborder for Safari
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   105
		if (!$.browser.safari)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   106
			this.headers.find('a').attr('tabIndex','-1');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   107
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   108
		if (o.event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   109
			this.headers.bind((o.event) + ".accordion", function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   110
				self._clickHandler.call(self, event, this);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   111
				event.preventDefault();
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
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   115
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   116
	
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   117
	_createIcons: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   118
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   119
		if (o.icons) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   120
			$("<span/>").addClass("ui-icon " + o.icons.header).prependTo(this.headers);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   121
			this.active.find(".ui-icon").toggleClass(o.icons.header).toggleClass(o.icons.headerSelected);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   122
			this.element.addClass("ui-accordion-icons");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   123
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   124
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   125
	
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   126
	_destroyIcons: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   127
		this.headers.children(".ui-icon").remove();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   128
		this.element.removeClass("ui-accordion-icons");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   129
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   130
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   131
	destroy: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   132
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   133
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   134
		this.element
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   135
			.removeClass("ui-accordion ui-widget ui-helper-reset")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   136
			.removeAttr("role")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   137
			.unbind('.accordion')
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   138
			.removeData('accordion');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   139
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   140
		this.headers
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   141
			.unbind(".accordion")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   142
			.removeClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-corner-top")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   143
			.removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   144
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   145
		this.headers.find("a").removeAttr("tabIndex");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   146
		this._destroyIcons();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   147
		var contents = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   148
		if (o.autoHeight || o.fillHeight) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   149
			contents.css("height", "");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   150
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   151
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   152
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   153
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   154
	
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   155
	_setOption: function(key, value) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   156
		$.Widget.prototype._setOption.apply(this, arguments);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   157
			
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   158
		if (key == "active") {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   159
			this.activate(value);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   160
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   161
		if (key == "icons") {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   162
			this._destroyIcons();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   163
			if (value) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   164
				this._createIcons();
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
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   168
	},
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
	_keydown: function(event) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   171
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   172
		var o = this.options, keyCode = $.ui.keyCode;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   173
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   174
		if (o.disabled || event.altKey || event.ctrlKey)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   175
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   176
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   177
		var length = this.headers.length;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   178
		var currentIndex = this.headers.index(event.target);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   179
		var toFocus = false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   180
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   181
		switch(event.keyCode) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   182
			case keyCode.RIGHT:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   183
			case keyCode.DOWN:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   184
				toFocus = this.headers[(currentIndex + 1) % length];
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   185
				break;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   186
			case keyCode.LEFT:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   187
			case keyCode.UP:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   188
				toFocus = this.headers[(currentIndex - 1 + length) % length];
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   189
				break;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   190
			case keyCode.SPACE:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   191
			case keyCode.ENTER:
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   192
				this._clickHandler({ target: event.target }, event.target);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   193
				event.preventDefault();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   194
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   195
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   196
		if (toFocus) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   197
			$(event.target).attr('tabIndex','-1');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   198
			$(toFocus).attr('tabIndex','0');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   199
			toFocus.focus();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   200
			return false;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   201
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   202
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   203
		return true;
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
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   207
	resize: function() {
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
		var o = this.options, maxHeight;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   210
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   211
		if (o.fillSpace) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   212
			
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   213
			if($.browser.msie) { var defOverflow = this.element.parent().css('overflow'); this.element.parent().css('overflow', 'hidden'); }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   214
			maxHeight = this.element.parent().height();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   215
			if($.browser.msie) { this.element.parent().css('overflow', defOverflow); }
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   216
	
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   217
			this.headers.each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   218
				maxHeight -= $(this).outerHeight(true);
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
			this.headers.next().each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   222
    		   $(this).height(Math.max(0, maxHeight - $(this).innerHeight() + $(this).height()));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   223
			}).css('overflow', 'auto');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   224
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   225
		} else if ( o.autoHeight ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   226
			maxHeight = 0;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   227
			this.headers.next().each(function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   228
				maxHeight = Math.max(maxHeight, $(this).height());
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   229
			}).height(maxHeight);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   230
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   231
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   232
		return this;
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
	activate: function(index) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   236
		// TODO this gets called on init, changing the option without an explicit call for that
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   237
		this.options.active = index;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   238
		// call clickHandler with custom event
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   239
		var active = this._findActive(index)[0];
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   240
		this._clickHandler({ target: active }, active);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   241
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   242
		return this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   243
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   244
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   245
	_findActive: function(selector) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   246
		return selector
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   247
			? typeof selector == "number"
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   248
				? this.headers.filter(":eq(" + selector + ")")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   249
				: this.headers.not(this.headers.not(selector))
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   250
			: selector === false
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.headers.filter(":eq(0)");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   253
	},
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
	// TODO isn't event.target enough? why the seperate target argument?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   256
	_clickHandler: function(event, target) {
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
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   259
		if (o.disabled)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   260
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   261
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   262
		// called only when using activate(false) to close all parts programmatically
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   263
		if (!event.target) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   264
			if (!o.collapsible)
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   265
				return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   266
			this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   267
				.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   268
			this.active.next().addClass('ui-accordion-content-active');
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   269
			var toHide = this.active.next(),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   270
				data = {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   271
					options: o,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   272
					newHeader: $([]),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   273
					oldHeader: o.active,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   274
					newContent: $([]),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   275
					oldContent: toHide
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
				toShow = (this.active = $([]));
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   278
			this._toggle(toShow, toHide, data);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   279
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   280
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   281
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   282
		// get the click target
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   283
		var clicked = $(event.currentTarget || target);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   284
		var clickedIsActive = clicked[0] == this.active[0];
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
		// TODO the option is changed, is that correct?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   287
		// TODO if it is correct, shouldn't that happen after determining that the click is valid?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   288
		o.active = o.collapsible && clickedIsActive ? false : $('.ui-accordion-header', this.element).index(clicked);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   289
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   290
		// if animations are still active, or the active header is the target, ignore click
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   291
		if (this.running || (!o.collapsible && clickedIsActive)) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   292
			return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   293
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   294
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   295
		// switch classes
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   296
		this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   297
			.find(".ui-icon").removeClass(o.icons.headerSelected).addClass(o.icons.header);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   298
		if (!clickedIsActive) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   299
			clicked.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top")
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   300
				.find(".ui-icon").removeClass(o.icons.header).addClass(o.icons.headerSelected);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   301
			clicked.next().addClass('ui-accordion-content-active');
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
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   304
		// find elements to show and hide
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   305
		var toShow = clicked.next(),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   306
			toHide = this.active.next(),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   307
			data = {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   308
				options: o,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   309
				newHeader: clickedIsActive && o.collapsible ? $([]) : clicked,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   310
				oldHeader: this.active,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   311
				newContent: clickedIsActive && o.collapsible ? $([]) : toShow,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   312
				oldContent: toHide
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   313
			},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   314
			down = this.headers.index( this.active[0] ) > this.headers.index( clicked[0] );
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   315
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   316
		this.active = clickedIsActive ? $([]) : clicked;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   317
		this._toggle(toShow, toHide, data, clickedIsActive, down);
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
		return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   320
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   321
	},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   322
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   323
	_toggle: function(toShow, toHide, data, clickedIsActive, down) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   324
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   325
		var o = this.options, self = this;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   326
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   327
		this.toShow = toShow;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   328
		this.toHide = toHide;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   329
		this.data = data;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   330
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   331
		var complete = function() { if(!self) return; return self._completed.apply(self, arguments); };
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   332
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   333
		// trigger changestart event
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   334
		this._trigger("changestart", null, this.data);
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
		// count elements to animate
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   337
		this.running = toHide.size() === 0 ? toShow.size() : toHide.size();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   338
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   339
		if (o.animated) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   340
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   341
			var animOptions = {};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   342
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   343
			if ( o.collapsible && clickedIsActive ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   344
				animOptions = {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   345
					toShow: $([]),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   346
					toHide: toHide,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   347
					complete: complete,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   348
					down: down,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   349
					autoHeight: o.autoHeight || o.fillSpace
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   350
				};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   351
			} else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   352
				animOptions = {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   353
					toShow: toShow,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   354
					toHide: toHide,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   355
					complete: complete,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   356
					down: down,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   357
					autoHeight: o.autoHeight || o.fillSpace
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   358
				};
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
			if (!o.proxied) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   362
				o.proxied = o.animated;
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
			if (!o.proxiedDuration) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   366
				o.proxiedDuration = o.duration;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   367
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   368
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   369
			o.animated = $.isFunction(o.proxied) ?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   370
				o.proxied(animOptions) : o.proxied;
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
			o.duration = $.isFunction(o.proxiedDuration) ?
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   373
				o.proxiedDuration(animOptions) : o.proxiedDuration;
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
			var animations = $.ui.accordion.animations,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   376
				duration = o.duration,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   377
				easing = o.animated;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   378
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   379
			if (easing && !animations[easing] && !$.easing[easing]) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   380
				easing = 'slide';
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
			if (!animations[easing]) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   383
				animations[easing] = function(options) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   384
					this.slide(options, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   385
						easing: easing,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   386
						duration: duration || 700
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   387
					});
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
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   390
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   391
			animations[easing](animOptions);
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
		} else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   394
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   395
			if (o.collapsible && clickedIsActive) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   396
				toShow.toggle();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   397
			} else {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   398
				toHide.hide();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   399
				toShow.show();
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
			complete(true);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   403
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   404
		}
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
		// TODO assert that the blur and focus triggers are really necessary, remove otherwise
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   407
		toHide.prev().attr('aria-expanded','false').attr("tabIndex", "-1").blur();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   408
		toShow.prev().attr('aria-expanded','true').attr("tabIndex", "0").focus();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   409
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
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   412
	_completed: function(cancel) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   413
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   414
		var o = this.options;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   415
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   416
		this.running = cancel ? 0 : --this.running;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   417
		if (this.running) return;
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
		if (o.clearStyle) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   420
			this.toShow.add(this.toHide).css({
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   421
				height: "",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   422
				overflow: ""
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
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   425
		
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   426
		// other classes are removed before the animation; this one needs to stay until completed
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   427
		this.toHide.removeClass("ui-accordion-content-active");
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
		this._trigger('change', null, this.data);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   430
	}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   431
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   432
});
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
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   435
$.extend($.ui.accordion, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   436
	version: "1.8.1",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   437
	animations: {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   438
		slide: function(options, additions) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   439
			options = $.extend({
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   440
				easing: "swing",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   441
				duration: 300
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   442
			}, options, additions);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   443
			if ( !options.toHide.size() ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   444
				options.toShow.animate({height: "show"}, options);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   445
				return;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   446
			}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   447
			if ( !options.toShow.size() ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   448
				options.toHide.animate({height: "hide"}, options);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   449
				return;
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
			var overflow = options.toShow.css('overflow'),
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   452
				percentDone = 0,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   453
				showProps = {},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   454
				hideProps = {},
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   455
				fxAttrs = [ "height", "paddingTop", "paddingBottom" ],
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   456
				originalWidth;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   457
			// fix width before calculating height of hidden element
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   458
			var s = options.toShow;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   459
			originalWidth = s[0].style.width;
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   460
			s.width( parseInt(s.parent().width(),10) - parseInt(s.css("paddingLeft"),10) - parseInt(s.css("paddingRight"),10) - (parseInt(s.css("borderLeftWidth"),10) || 0) - (parseInt(s.css("borderRightWidth"),10) || 0) );
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
			$.each(fxAttrs, function(i, prop) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   463
				hideProps[prop] = 'hide';
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   464
				
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   465
				var parts = ('' + $.css(options.toShow[0], prop)).match(/^([\d+-.]+)(.*)$/);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   466
				showProps[prop] = {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   467
					value: parts[1],
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   468
					unit: parts[2] || 'px'
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   469
				};
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   470
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   471
			options.toShow.css({ height: 0, overflow: 'hidden' }).show();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   472
			options.toHide.filter(":hidden").each(options.complete).end().filter(":visible").animate(hideProps,{
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   473
				step: function(now, settings) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   474
					// only calculate the percent when animating height
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   475
					// IE gets very inconsistent results when animating elements
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   476
					// with small values, which is common for padding
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   477
					if (settings.prop == 'height') {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   478
						percentDone = ( settings.end - settings.start === 0 ) ? 0 :
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   479
							(settings.now - settings.start) / (settings.end - settings.start);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   480
					}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   481
					
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   482
					options.toShow[0].style[settings.prop] =
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   483
						(percentDone * showProps[settings.prop].value) + showProps[settings.prop].unit;
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
				duration: options.duration,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   486
				easing: options.easing,
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   487
				complete: function() {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   488
					if ( !options.autoHeight ) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   489
						options.toShow.css("height", "");
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   490
					}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   491
					options.toShow.css("width", originalWidth);
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   492
					options.toShow.css({overflow: overflow});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   493
					options.complete();
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   494
				}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   495
			});
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
		bounceslide: function(options) {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   498
			this.slide(options, {
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   499
				easing: options.down ? "easeOutBounce" : "swing",
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   500
				duration: options.down ? 1000 : 200
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   501
			});
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   502
		}
436d4791d7ac premier version du player test de commit
hurons
parents:
diff changeset
   503
	}
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
})(jQuery);