h2ocube_rails_assets 0.0.4 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. data/h2ocube_rails_assets.gemspec +1 -1
  2. data/vendor/assets/javascripts/jquery.fileupload.js +1 -1
  3. data/vendor/assets/javascripts/jquery.ui.js +2 -14914
  4. data/vendor/assets/javascripts/jquery.ui/jquery-ui.custom.js +14879 -0
  5. data/vendor/assets/javascripts/jquery.ui/jquery.ui.accordion.js +731 -0
  6. data/vendor/assets/javascripts/jquery.ui/jquery.ui.autocomplete.js +602 -0
  7. data/vendor/assets/javascripts/jquery.ui/jquery.ui.button.js +418 -0
  8. data/vendor/assets/javascripts/jquery.ui/jquery.ui.core.js +356 -0
  9. data/vendor/assets/javascripts/jquery.ui/jquery.ui.datepicker.js +1846 -0
  10. data/vendor/assets/javascripts/jquery.ui/jquery.ui.dialog.js +858 -0
  11. data/vendor/assets/javascripts/jquery.ui/jquery.ui.draggable.js +836 -0
  12. data/vendor/assets/javascripts/jquery.ui/jquery.ui.droppable.js +294 -0
  13. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-blind.js +82 -0
  14. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-bounce.js +113 -0
  15. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-clip.js +67 -0
  16. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-drop.js +65 -0
  17. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-explode.js +97 -0
  18. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-fade.js +30 -0
  19. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-fold.js +76 -0
  20. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-highlight.js +50 -0
  21. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-pulsate.js +63 -0
  22. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-scale.js +318 -0
  23. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-shake.js +74 -0
  24. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-slide.js +64 -0
  25. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect-transfer.js +47 -0
  26. data/vendor/assets/javascripts/jquery.ui/jquery.ui.effect.js +1276 -0
  27. data/vendor/assets/javascripts/jquery.ui/jquery.ui.menu.js +610 -0
  28. data/vendor/assets/javascripts/jquery.ui/jquery.ui.mouse.js +169 -0
  29. data/vendor/assets/javascripts/jquery.ui/jquery.ui.position.js +517 -0
  30. data/vendor/assets/javascripts/jquery.ui/jquery.ui.progressbar.js +105 -0
  31. data/vendor/assets/javascripts/jquery.ui/jquery.ui.resizable.js +801 -0
  32. data/vendor/assets/javascripts/jquery.ui/jquery.ui.selectable.js +261 -0
  33. data/vendor/assets/javascripts/jquery.ui/jquery.ui.slider.js +644 -0
  34. data/vendor/assets/javascripts/jquery.ui/jquery.ui.sortable.js +1096 -0
  35. data/vendor/assets/javascripts/jquery.ui/jquery.ui.spinner.js +478 -0
  36. data/vendor/assets/javascripts/jquery.ui/jquery.ui.tabs.js +1366 -0
  37. data/vendor/assets/javascripts/jquery.ui/jquery.ui.tooltip.js +398 -0
  38. data/vendor/assets/javascripts/{jquery.ui.widget.js → jquery.ui/jquery.ui.widget.js} +39 -34
  39. metadata +37 -9
@@ -0,0 +1,731 @@
1
+ /*!
2
+ * jQuery UI Accordion 1.9.2
3
+ * http://jqueryui.com
4
+ *
5
+ * Copyright 2012 jQuery Foundation and other contributors
6
+ * Released under the MIT license.
7
+ * http://jquery.org/license
8
+ *
9
+ * http://api.jqueryui.com/accordion/
10
+ *
11
+ * Depends:
12
+ * jquery.ui.core.js
13
+ * jquery.ui.widget.js
14
+ */
15
+ (function( $, undefined ) {
16
+
17
+ var uid = 0,
18
+ hideProps = {},
19
+ showProps = {};
20
+
21
+ hideProps.height = hideProps.paddingTop = hideProps.paddingBottom =
22
+ hideProps.borderTopWidth = hideProps.borderBottomWidth = "hide";
23
+ showProps.height = showProps.paddingTop = showProps.paddingBottom =
24
+ showProps.borderTopWidth = showProps.borderBottomWidth = "show";
25
+
26
+ $.widget( "ui.accordion", {
27
+ version: "1.9.2",
28
+ options: {
29
+ active: 0,
30
+ animate: {},
31
+ collapsible: false,
32
+ event: "click",
33
+ header: "> li > :first-child,> :not(li):even",
34
+ heightStyle: "auto",
35
+ icons: {
36
+ activeHeader: "ui-icon-triangle-1-s",
37
+ header: "ui-icon-triangle-1-e"
38
+ },
39
+
40
+ // callbacks
41
+ activate: null,
42
+ beforeActivate: null
43
+ },
44
+
45
+ _create: function() {
46
+ var accordionId = this.accordionId = "ui-accordion-" +
47
+ (this.element.attr( "id" ) || ++uid),
48
+ options = this.options;
49
+
50
+ this.prevShow = this.prevHide = $();
51
+ this.element.addClass( "ui-accordion ui-widget ui-helper-reset" );
52
+
53
+ this.headers = this.element.find( options.header )
54
+ .addClass( "ui-accordion-header ui-helper-reset ui-state-default ui-corner-all" );
55
+ this._hoverable( this.headers );
56
+ this._focusable( this.headers );
57
+
58
+ this.headers.next()
59
+ .addClass( "ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom" )
60
+ .hide();
61
+
62
+ // don't allow collapsible: false and active: false / null
63
+ if ( !options.collapsible && (options.active === false || options.active == null) ) {
64
+ options.active = 0;
65
+ }
66
+ // handle negative values
67
+ if ( options.active < 0 ) {
68
+ options.active += this.headers.length;
69
+ }
70
+ this.active = this._findActive( options.active )
71
+ .addClass( "ui-accordion-header-active ui-state-active" )
72
+ .toggleClass( "ui-corner-all ui-corner-top" );
73
+ this.active.next()
74
+ .addClass( "ui-accordion-content-active" )
75
+ .show();
76
+
77
+ this._createIcons();
78
+ this.refresh();
79
+
80
+ // ARIA
81
+ this.element.attr( "role", "tablist" );
82
+
83
+ this.headers
84
+ .attr( "role", "tab" )
85
+ .each(function( i ) {
86
+ var header = $( this ),
87
+ headerId = header.attr( "id" ),
88
+ panel = header.next(),
89
+ panelId = panel.attr( "id" );
90
+ if ( !headerId ) {
91
+ headerId = accordionId + "-header-" + i;
92
+ header.attr( "id", headerId );
93
+ }
94
+ if ( !panelId ) {
95
+ panelId = accordionId + "-panel-" + i;
96
+ panel.attr( "id", panelId );
97
+ }
98
+ header.attr( "aria-controls", panelId );
99
+ panel.attr( "aria-labelledby", headerId );
100
+ })
101
+ .next()
102
+ .attr( "role", "tabpanel" );
103
+
104
+ this.headers
105
+ .not( this.active )
106
+ .attr({
107
+ "aria-selected": "false",
108
+ tabIndex: -1
109
+ })
110
+ .next()
111
+ .attr({
112
+ "aria-expanded": "false",
113
+ "aria-hidden": "true"
114
+ })
115
+ .hide();
116
+
117
+ // make sure at least one header is in the tab order
118
+ if ( !this.active.length ) {
119
+ this.headers.eq( 0 ).attr( "tabIndex", 0 );
120
+ } else {
121
+ this.active.attr({
122
+ "aria-selected": "true",
123
+ tabIndex: 0
124
+ })
125
+ .next()
126
+ .attr({
127
+ "aria-expanded": "true",
128
+ "aria-hidden": "false"
129
+ });
130
+ }
131
+
132
+ this._on( this.headers, { keydown: "_keydown" });
133
+ this._on( this.headers.next(), { keydown: "_panelKeyDown" });
134
+ this._setupEvents( options.event );
135
+ },
136
+
137
+ _getCreateEventData: function() {
138
+ return {
139
+ header: this.active,
140
+ content: !this.active.length ? $() : this.active.next()
141
+ };
142
+ },
143
+
144
+ _createIcons: function() {
145
+ var icons = this.options.icons;
146
+ if ( icons ) {
147
+ $( "<span>" )
148
+ .addClass( "ui-accordion-header-icon ui-icon " + icons.header )
149
+ .prependTo( this.headers );
150
+ this.active.children( ".ui-accordion-header-icon" )
151
+ .removeClass( icons.header )
152
+ .addClass( icons.activeHeader );
153
+ this.headers.addClass( "ui-accordion-icons" );
154
+ }
155
+ },
156
+
157
+ _destroyIcons: function() {
158
+ this.headers
159
+ .removeClass( "ui-accordion-icons" )
160
+ .children( ".ui-accordion-header-icon" )
161
+ .remove();
162
+ },
163
+
164
+ _destroy: function() {
165
+ var contents;
166
+
167
+ // clean up main element
168
+ this.element
169
+ .removeClass( "ui-accordion ui-widget ui-helper-reset" )
170
+ .removeAttr( "role" );
171
+
172
+ // clean up headers
173
+ this.headers
174
+ .removeClass( "ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top" )
175
+ .removeAttr( "role" )
176
+ .removeAttr( "aria-selected" )
177
+ .removeAttr( "aria-controls" )
178
+ .removeAttr( "tabIndex" )
179
+ .each(function() {
180
+ if ( /^ui-accordion/.test( this.id ) ) {
181
+ this.removeAttribute( "id" );
182
+ }
183
+ });
184
+ this._destroyIcons();
185
+
186
+ // clean up content panels
187
+ contents = this.headers.next()
188
+ .css( "display", "" )
189
+ .removeAttr( "role" )
190
+ .removeAttr( "aria-expanded" )
191
+ .removeAttr( "aria-hidden" )
192
+ .removeAttr( "aria-labelledby" )
193
+ .removeClass( "ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled" )
194
+ .each(function() {
195
+ if ( /^ui-accordion/.test( this.id ) ) {
196
+ this.removeAttribute( "id" );
197
+ }
198
+ });
199
+ if ( this.options.heightStyle !== "content" ) {
200
+ contents.css( "height", "" );
201
+ }
202
+ },
203
+
204
+ _setOption: function( key, value ) {
205
+ if ( key === "active" ) {
206
+ // _activate() will handle invalid values and update this.options
207
+ this._activate( value );
208
+ return;
209
+ }
210
+
211
+ if ( key === "event" ) {
212
+ if ( this.options.event ) {
213
+ this._off( this.headers, this.options.event );
214
+ }
215
+ this._setupEvents( value );
216
+ }
217
+
218
+ this._super( key, value );
219
+
220
+ // setting collapsible: false while collapsed; open first panel
221
+ if ( key === "collapsible" && !value && this.options.active === false ) {
222
+ this._activate( 0 );
223
+ }
224
+
225
+ if ( key === "icons" ) {
226
+ this._destroyIcons();
227
+ if ( value ) {
228
+ this._createIcons();
229
+ }
230
+ }
231
+
232
+ // #5332 - opacity doesn't cascade to positioned elements in IE
233
+ // so we need to add the disabled class to the headers and panels
234
+ if ( key === "disabled" ) {
235
+ this.headers.add( this.headers.next() )
236
+ .toggleClass( "ui-state-disabled", !!value );
237
+ }
238
+ },
239
+
240
+ _keydown: function( event ) {
241
+ if ( event.altKey || event.ctrlKey ) {
242
+ return;
243
+ }
244
+
245
+ var keyCode = $.ui.keyCode,
246
+ length = this.headers.length,
247
+ currentIndex = this.headers.index( event.target ),
248
+ toFocus = false;
249
+
250
+ switch ( event.keyCode ) {
251
+ case keyCode.RIGHT:
252
+ case keyCode.DOWN:
253
+ toFocus = this.headers[ ( currentIndex + 1 ) % length ];
254
+ break;
255
+ case keyCode.LEFT:
256
+ case keyCode.UP:
257
+ toFocus = this.headers[ ( currentIndex - 1 + length ) % length ];
258
+ break;
259
+ case keyCode.SPACE:
260
+ case keyCode.ENTER:
261
+ this._eventHandler( event );
262
+ break;
263
+ case keyCode.HOME:
264
+ toFocus = this.headers[ 0 ];
265
+ break;
266
+ case keyCode.END:
267
+ toFocus = this.headers[ length - 1 ];
268
+ break;
269
+ }
270
+
271
+ if ( toFocus ) {
272
+ $( event.target ).attr( "tabIndex", -1 );
273
+ $( toFocus ).attr( "tabIndex", 0 );
274
+ toFocus.focus();
275
+ event.preventDefault();
276
+ }
277
+ },
278
+
279
+ _panelKeyDown : function( event ) {
280
+ if ( event.keyCode === $.ui.keyCode.UP && event.ctrlKey ) {
281
+ $( event.currentTarget ).prev().focus();
282
+ }
283
+ },
284
+
285
+ refresh: function() {
286
+ var maxHeight, overflow,
287
+ heightStyle = this.options.heightStyle,
288
+ parent = this.element.parent();
289
+
290
+
291
+ if ( heightStyle === "fill" ) {
292
+ // IE 6 treats height like minHeight, so we need to turn off overflow
293
+ // in order to get a reliable height
294
+ // we use the minHeight support test because we assume that only
295
+ // browsers that don't support minHeight will treat height as minHeight
296
+ if ( !$.support.minHeight ) {
297
+ overflow = parent.css( "overflow" );
298
+ parent.css( "overflow", "hidden");
299
+ }
300
+ maxHeight = parent.height();
301
+ this.element.siblings( ":visible" ).each(function() {
302
+ var elem = $( this ),
303
+ position = elem.css( "position" );
304
+
305
+ if ( position === "absolute" || position === "fixed" ) {
306
+ return;
307
+ }
308
+ maxHeight -= elem.outerHeight( true );
309
+ });
310
+ if ( overflow ) {
311
+ parent.css( "overflow", overflow );
312
+ }
313
+
314
+ this.headers.each(function() {
315
+ maxHeight -= $( this ).outerHeight( true );
316
+ });
317
+
318
+ this.headers.next()
319
+ .each(function() {
320
+ $( this ).height( Math.max( 0, maxHeight -
321
+ $( this ).innerHeight() + $( this ).height() ) );
322
+ })
323
+ .css( "overflow", "auto" );
324
+ } else if ( heightStyle === "auto" ) {
325
+ maxHeight = 0;
326
+ this.headers.next()
327
+ .each(function() {
328
+ maxHeight = Math.max( maxHeight, $( this ).css( "height", "" ).height() );
329
+ })
330
+ .height( maxHeight );
331
+ }
332
+ },
333
+
334
+ _activate: function( index ) {
335
+ var active = this._findActive( index )[ 0 ];
336
+
337
+ // trying to activate the already active panel
338
+ if ( active === this.active[ 0 ] ) {
339
+ return;
340
+ }
341
+
342
+ // trying to collapse, simulate a click on the currently active header
343
+ active = active || this.active[ 0 ];
344
+
345
+ this._eventHandler({
346
+ target: active,
347
+ currentTarget: active,
348
+ preventDefault: $.noop
349
+ });
350
+ },
351
+
352
+ _findActive: function( selector ) {
353
+ return typeof selector === "number" ? this.headers.eq( selector ) : $();
354
+ },
355
+
356
+ _setupEvents: function( event ) {
357
+ var events = {};
358
+ if ( !event ) {
359
+ return;
360
+ }
361
+ $.each( event.split(" "), function( index, eventName ) {
362
+ events[ eventName ] = "_eventHandler";
363
+ });
364
+ this._on( this.headers, events );
365
+ },
366
+
367
+ _eventHandler: function( event ) {
368
+ var options = this.options,
369
+ active = this.active,
370
+ clicked = $( event.currentTarget ),
371
+ clickedIsActive = clicked[ 0 ] === active[ 0 ],
372
+ collapsing = clickedIsActive && options.collapsible,
373
+ toShow = collapsing ? $() : clicked.next(),
374
+ toHide = active.next(),
375
+ eventData = {
376
+ oldHeader: active,
377
+ oldPanel: toHide,
378
+ newHeader: collapsing ? $() : clicked,
379
+ newPanel: toShow
380
+ };
381
+
382
+ event.preventDefault();
383
+
384
+ if (
385
+ // click on active header, but not collapsible
386
+ ( clickedIsActive && !options.collapsible ) ||
387
+ // allow canceling activation
388
+ ( this._trigger( "beforeActivate", event, eventData ) === false ) ) {
389
+ return;
390
+ }
391
+
392
+ options.active = collapsing ? false : this.headers.index( clicked );
393
+
394
+ // when the call to ._toggle() comes after the class changes
395
+ // it causes a very odd bug in IE 8 (see #6720)
396
+ this.active = clickedIsActive ? $() : clicked;
397
+ this._toggle( eventData );
398
+
399
+ // switch classes
400
+ // corner classes on the previously active header stay after the animation
401
+ active.removeClass( "ui-accordion-header-active ui-state-active" );
402
+ if ( options.icons ) {
403
+ active.children( ".ui-accordion-header-icon" )
404
+ .removeClass( options.icons.activeHeader )
405
+ .addClass( options.icons.header );
406
+ }
407
+
408
+ if ( !clickedIsActive ) {
409
+ clicked
410
+ .removeClass( "ui-corner-all" )
411
+ .addClass( "ui-accordion-header-active ui-state-active ui-corner-top" );
412
+ if ( options.icons ) {
413
+ clicked.children( ".ui-accordion-header-icon" )
414
+ .removeClass( options.icons.header )
415
+ .addClass( options.icons.activeHeader );
416
+ }
417
+
418
+ clicked
419
+ .next()
420
+ .addClass( "ui-accordion-content-active" );
421
+ }
422
+ },
423
+
424
+ _toggle: function( data ) {
425
+ var toShow = data.newPanel,
426
+ toHide = this.prevShow.length ? this.prevShow : data.oldPanel;
427
+
428
+ // handle activating a panel during the animation for another activation
429
+ this.prevShow.add( this.prevHide ).stop( true, true );
430
+ this.prevShow = toShow;
431
+ this.prevHide = toHide;
432
+
433
+ if ( this.options.animate ) {
434
+ this._animate( toShow, toHide, data );
435
+ } else {
436
+ toHide.hide();
437
+ toShow.show();
438
+ this._toggleComplete( data );
439
+ }
440
+
441
+ toHide.attr({
442
+ "aria-expanded": "false",
443
+ "aria-hidden": "true"
444
+ });
445
+ toHide.prev().attr( "aria-selected", "false" );
446
+ // if we're switching panels, remove the old header from the tab order
447
+ // if we're opening from collapsed state, remove the previous header from the tab order
448
+ // if we're collapsing, then keep the collapsing header in the tab order
449
+ if ( toShow.length && toHide.length ) {
450
+ toHide.prev().attr( "tabIndex", -1 );
451
+ } else if ( toShow.length ) {
452
+ this.headers.filter(function() {
453
+ return $( this ).attr( "tabIndex" ) === 0;
454
+ })
455
+ .attr( "tabIndex", -1 );
456
+ }
457
+
458
+ toShow
459
+ .attr({
460
+ "aria-expanded": "true",
461
+ "aria-hidden": "false"
462
+ })
463
+ .prev()
464
+ .attr({
465
+ "aria-selected": "true",
466
+ tabIndex: 0
467
+ });
468
+ },
469
+
470
+ _animate: function( toShow, toHide, data ) {
471
+ var total, easing, duration,
472
+ that = this,
473
+ adjust = 0,
474
+ down = toShow.length &&
475
+ ( !toHide.length || ( toShow.index() < toHide.index() ) ),
476
+ animate = this.options.animate || {},
477
+ options = down && animate.down || animate,
478
+ complete = function() {
479
+ that._toggleComplete( data );
480
+ };
481
+
482
+ if ( typeof options === "number" ) {
483
+ duration = options;
484
+ }
485
+ if ( typeof options === "string" ) {
486
+ easing = options;
487
+ }
488
+ // fall back from options to animation in case of partial down settings
489
+ easing = easing || options.easing || animate.easing;
490
+ duration = duration || options.duration || animate.duration;
491
+
492
+ if ( !toHide.length ) {
493
+ return toShow.animate( showProps, duration, easing, complete );
494
+ }
495
+ if ( !toShow.length ) {
496
+ return toHide.animate( hideProps, duration, easing, complete );
497
+ }
498
+
499
+ total = toShow.show().outerHeight();
500
+ toHide.animate( hideProps, {
501
+ duration: duration,
502
+ easing: easing,
503
+ step: function( now, fx ) {
504
+ fx.now = Math.round( now );
505
+ }
506
+ });
507
+ toShow
508
+ .hide()
509
+ .animate( showProps, {
510
+ duration: duration,
511
+ easing: easing,
512
+ complete: complete,
513
+ step: function( now, fx ) {
514
+ fx.now = Math.round( now );
515
+ if ( fx.prop !== "height" ) {
516
+ adjust += fx.now;
517
+ } else if ( that.options.heightStyle !== "content" ) {
518
+ fx.now = Math.round( total - toHide.outerHeight() - adjust );
519
+ adjust = 0;
520
+ }
521
+ }
522
+ });
523
+ },
524
+
525
+ _toggleComplete: function( data ) {
526
+ var toHide = data.oldPanel;
527
+
528
+ toHide
529
+ .removeClass( "ui-accordion-content-active" )
530
+ .prev()
531
+ .removeClass( "ui-corner-top" )
532
+ .addClass( "ui-corner-all" );
533
+
534
+ // Work around for rendering bug in IE (#5421)
535
+ if ( toHide.length ) {
536
+ toHide.parent()[0].className = toHide.parent()[0].className;
537
+ }
538
+
539
+ this._trigger( "activate", null, data );
540
+ }
541
+ });
542
+
543
+
544
+
545
+ // DEPRECATED
546
+ if ( $.uiBackCompat !== false ) {
547
+ // navigation options
548
+ (function( $, prototype ) {
549
+ $.extend( prototype.options, {
550
+ navigation: false,
551
+ navigationFilter: function() {
552
+ return this.href.toLowerCase() === location.href.toLowerCase();
553
+ }
554
+ });
555
+
556
+ var _create = prototype._create;
557
+ prototype._create = function() {
558
+ if ( this.options.navigation ) {
559
+ var that = this,
560
+ headers = this.element.find( this.options.header ),
561
+ content = headers.next(),
562
+ current = headers.add( content )
563
+ .find( "a" )
564
+ .filter( this.options.navigationFilter )
565
+ [ 0 ];
566
+ if ( current ) {
567
+ headers.add( content ).each( function( index ) {
568
+ if ( $.contains( this, current ) ) {
569
+ that.options.active = Math.floor( index / 2 );
570
+ return false;
571
+ }
572
+ });
573
+ }
574
+ }
575
+ _create.call( this );
576
+ };
577
+ }( jQuery, jQuery.ui.accordion.prototype ) );
578
+
579
+ // height options
580
+ (function( $, prototype ) {
581
+ $.extend( prototype.options, {
582
+ heightStyle: null, // remove default so we fall back to old values
583
+ autoHeight: true, // use heightStyle: "auto"
584
+ clearStyle: false, // use heightStyle: "content"
585
+ fillSpace: false // use heightStyle: "fill"
586
+ });
587
+
588
+ var _create = prototype._create,
589
+ _setOption = prototype._setOption;
590
+
591
+ $.extend( prototype, {
592
+ _create: function() {
593
+ this.options.heightStyle = this.options.heightStyle ||
594
+ this._mergeHeightStyle();
595
+
596
+ _create.call( this );
597
+ },
598
+
599
+ _setOption: function( key ) {
600
+ if ( key === "autoHeight" || key === "clearStyle" || key === "fillSpace" ) {
601
+ this.options.heightStyle = this._mergeHeightStyle();
602
+ }
603
+ _setOption.apply( this, arguments );
604
+ },
605
+
606
+ _mergeHeightStyle: function() {
607
+ var options = this.options;
608
+
609
+ if ( options.fillSpace ) {
610
+ return "fill";
611
+ }
612
+
613
+ if ( options.clearStyle ) {
614
+ return "content";
615
+ }
616
+
617
+ if ( options.autoHeight ) {
618
+ return "auto";
619
+ }
620
+ }
621
+ });
622
+ }( jQuery, jQuery.ui.accordion.prototype ) );
623
+
624
+ // icon options
625
+ (function( $, prototype ) {
626
+ $.extend( prototype.options.icons, {
627
+ activeHeader: null, // remove default so we fall back to old values
628
+ headerSelected: "ui-icon-triangle-1-s"
629
+ });
630
+
631
+ var _createIcons = prototype._createIcons;
632
+ prototype._createIcons = function() {
633
+ if ( this.options.icons ) {
634
+ this.options.icons.activeHeader = this.options.icons.activeHeader ||
635
+ this.options.icons.headerSelected;
636
+ }
637
+ _createIcons.call( this );
638
+ };
639
+ }( jQuery, jQuery.ui.accordion.prototype ) );
640
+
641
+ // expanded active option, activate method
642
+ (function( $, prototype ) {
643
+ prototype.activate = prototype._activate;
644
+
645
+ var _findActive = prototype._findActive;
646
+ prototype._findActive = function( index ) {
647
+ if ( index === -1 ) {
648
+ index = false;
649
+ }
650
+ if ( index && typeof index !== "number" ) {
651
+ index = this.headers.index( this.headers.filter( index ) );
652
+ if ( index === -1 ) {
653
+ index = false;
654
+ }
655
+ }
656
+ return _findActive.call( this, index );
657
+ };
658
+ }( jQuery, jQuery.ui.accordion.prototype ) );
659
+
660
+ // resize method
661
+ jQuery.ui.accordion.prototype.resize = jQuery.ui.accordion.prototype.refresh;
662
+
663
+ // change events
664
+ (function( $, prototype ) {
665
+ $.extend( prototype.options, {
666
+ change: null,
667
+ changestart: null
668
+ });
669
+
670
+ var _trigger = prototype._trigger;
671
+ prototype._trigger = function( type, event, data ) {
672
+ var ret = _trigger.apply( this, arguments );
673
+ if ( !ret ) {
674
+ return false;
675
+ }
676
+
677
+ if ( type === "beforeActivate" ) {
678
+ ret = _trigger.call( this, "changestart", event, {
679
+ oldHeader: data.oldHeader,
680
+ oldContent: data.oldPanel,
681
+ newHeader: data.newHeader,
682
+ newContent: data.newPanel
683
+ });
684
+ } else if ( type === "activate" ) {
685
+ ret = _trigger.call( this, "change", event, {
686
+ oldHeader: data.oldHeader,
687
+ oldContent: data.oldPanel,
688
+ newHeader: data.newHeader,
689
+ newContent: data.newPanel
690
+ });
691
+ }
692
+ return ret;
693
+ };
694
+ }( jQuery, jQuery.ui.accordion.prototype ) );
695
+
696
+ // animated option
697
+ // NOTE: this only provides support for "slide", "bounceslide", and easings
698
+ // not the full $.ui.accordion.animations API
699
+ (function( $, prototype ) {
700
+ $.extend( prototype.options, {
701
+ animate: null,
702
+ animated: "slide"
703
+ });
704
+
705
+ var _create = prototype._create;
706
+ prototype._create = function() {
707
+ var options = this.options;
708
+ if ( options.animate === null ) {
709
+ if ( !options.animated ) {
710
+ options.animate = false;
711
+ } else if ( options.animated === "slide" ) {
712
+ options.animate = 300;
713
+ } else if ( options.animated === "bounceslide" ) {
714
+ options.animate = {
715
+ duration: 200,
716
+ down: {
717
+ easing: "easeOutBounce",
718
+ duration: 1000
719
+ }
720
+ };
721
+ } else {
722
+ options.animate = options.animated;
723
+ }
724
+ }
725
+
726
+ _create.call( this );
727
+ };
728
+ }( jQuery, jQuery.ui.accordion.prototype ) );
729
+ }
730
+
731
+ })( jQuery );