scratch – Blame information for rev 58

Subversion Repositories:
Rev:
Rev Author Line No. Line
58 office 1 define( [
2 "./core",
3 "./var/document",
4 "./var/rcssNum",
5 "./var/rnothtmlwhite",
6 "./css/var/cssExpand",
7 "./css/var/isHiddenWithinTree",
8 "./css/var/swap",
9 "./css/adjustCSS",
10 "./data/var/dataPriv",
11 "./css/showHide",
12  
13 "./core/init",
14 "./queue",
15 "./deferred",
16 "./traversing",
17 "./manipulation",
18 "./css",
19 "./effects/Tween"
20 ], function( jQuery, document, rcssNum, rnothtmlwhite, cssExpand, isHiddenWithinTree, swap,
21 adjustCSS, dataPriv, showHide ) {
22  
23 "use strict";
24  
25 var
26 fxNow, timerId,
27 rfxtypes = /^(?:toggle|show|hide)$/,
28 rrun = /queueHooks$/;
29  
30 function raf() {
31 if ( timerId ) {
32 window.requestAnimationFrame( raf );
33 jQuery.fx.tick();
34 }
35 }
36  
37 // Animations created synchronously will run synchronously
38 function createFxNow() {
39 window.setTimeout( function() {
40 fxNow = undefined;
41 } );
42 return ( fxNow = jQuery.now() );
43 }
44  
45 // Generate parameters to create a standard animation
46 function genFx( type, includeWidth ) {
47 var which,
48 i = 0,
49 attrs = { height: type };
50  
51 // If we include width, step value is 1 to do all cssExpand values,
52 // otherwise step value is 2 to skip over Left and Right
53 includeWidth = includeWidth ? 1 : 0;
54 for ( ; i < 4; i += 2 - includeWidth ) {
55 which = cssExpand[ i ];
56 attrs[ "margin" + which ] = attrs[ "padding" + which ] = type;
57 }
58  
59 if ( includeWidth ) {
60 attrs.opacity = attrs.width = type;
61 }
62  
63 return attrs;
64 }
65  
66 function createTween( value, prop, animation ) {
67 var tween,
68 collection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ "*" ] ),
69 index = 0,
70 length = collection.length;
71 for ( ; index < length; index++ ) {
72 if ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {
73  
74 // We're done with this property
75 return tween;
76 }
77 }
78 }
79  
80 function defaultPrefilter( elem, props, opts ) {
81 var prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,
82 isBox = "width" in props || "height" in props,
83 anim = this,
84 orig = {},
85 style = elem.style,
86 hidden = elem.nodeType && isHiddenWithinTree( elem ),
87 dataShow = dataPriv.get( elem, "fxshow" );
88  
89 // Queue-skipping animations hijack the fx hooks
90 if ( !opts.queue ) {
91 hooks = jQuery._queueHooks( elem, "fx" );
92 if ( hooks.unqueued == null ) {
93 hooks.unqueued = 0;
94 oldfire = hooks.empty.fire;
95 hooks.empty.fire = function() {
96 if ( !hooks.unqueued ) {
97 oldfire();
98 }
99 };
100 }
101 hooks.unqueued++;
102  
103 anim.always( function() {
104  
105 // Ensure the complete handler is called before this completes
106 anim.always( function() {
107 hooks.unqueued--;
108 if ( !jQuery.queue( elem, "fx" ).length ) {
109 hooks.empty.fire();
110 }
111 } );
112 } );
113 }
114  
115 // Detect show/hide animations
116 for ( prop in props ) {
117 value = props[ prop ];
118 if ( rfxtypes.test( value ) ) {
119 delete props[ prop ];
120 toggle = toggle || value === "toggle";
121 if ( value === ( hidden ? "hide" : "show" ) ) {
122  
123 // Pretend to be hidden if this is a "show" and
124 // there is still data from a stopped show/hide
125 if ( value === "show" && dataShow && dataShow[ prop ] !== undefined ) {
126 hidden = true;
127  
128 // Ignore all other no-op show/hide data
129 } else {
130 continue;
131 }
132 }
133 orig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );
134 }
135 }
136  
137 // Bail out if this is a no-op like .hide().hide()
138 propTween = !jQuery.isEmptyObject( props );
139 if ( !propTween && jQuery.isEmptyObject( orig ) ) {
140 return;
141 }
142  
143 // Restrict "overflow" and "display" styles during box animations
144 if ( isBox && elem.nodeType === 1 ) {
145  
146 // Support: IE <=9 - 11, Edge 12 - 13
147 // Record all 3 overflow attributes because IE does not infer the shorthand
148 // from identically-valued overflowX and overflowY
149 opts.overflow = [ style.overflow, style.overflowX, style.overflowY ];
150  
151 // Identify a display type, preferring old show/hide data over the CSS cascade
152 restoreDisplay = dataShow && dataShow.display;
153 if ( restoreDisplay == null ) {
154 restoreDisplay = dataPriv.get( elem, "display" );
155 }
156 display = jQuery.css( elem, "display" );
157 if ( display === "none" ) {
158 if ( restoreDisplay ) {
159 display = restoreDisplay;
160 } else {
161  
162 // Get nonempty value(s) by temporarily forcing visibility
163 showHide( [ elem ], true );
164 restoreDisplay = elem.style.display || restoreDisplay;
165 display = jQuery.css( elem, "display" );
166 showHide( [ elem ] );
167 }
168 }
169  
170 // Animate inline elements as inline-block
171 if ( display === "inline" || display === "inline-block" && restoreDisplay != null ) {
172 if ( jQuery.css( elem, "float" ) === "none" ) {
173  
174 // Restore the original display value at the end of pure show/hide animations
175 if ( !propTween ) {
176 anim.done( function() {
177 style.display = restoreDisplay;
178 } );
179 if ( restoreDisplay == null ) {
180 display = style.display;
181 restoreDisplay = display === "none" ? "" : display;
182 }
183 }
184 style.display = "inline-block";
185 }
186 }
187 }
188  
189 if ( opts.overflow ) {
190 style.overflow = "hidden";
191 anim.always( function() {
192 style.overflow = opts.overflow[ 0 ];
193 style.overflowX = opts.overflow[ 1 ];
194 style.overflowY = opts.overflow[ 2 ];
195 } );
196 }
197  
198 // Implement show/hide animations
199 propTween = false;
200 for ( prop in orig ) {
201  
202 // General show/hide setup for this element animation
203 if ( !propTween ) {
204 if ( dataShow ) {
205 if ( "hidden" in dataShow ) {
206 hidden = dataShow.hidden;
207 }
208 } else {
209 dataShow = dataPriv.access( elem, "fxshow", { display: restoreDisplay } );
210 }
211  
212 // Store hidden/visible for toggle so `.stop().toggle()` "reverses"
213 if ( toggle ) {
214 dataShow.hidden = !hidden;
215 }
216  
217 // Show elements before animating them
218 if ( hidden ) {
219 showHide( [ elem ], true );
220 }
221  
222 /* eslint-disable no-loop-func */
223  
224 anim.done( function() {
225  
226 /* eslint-enable no-loop-func */
227  
228 // The final step of a "hide" animation is actually hiding the element
229 if ( !hidden ) {
230 showHide( [ elem ] );
231 }
232 dataPriv.remove( elem, "fxshow" );
233 for ( prop in orig ) {
234 jQuery.style( elem, prop, orig[ prop ] );
235 }
236 } );
237 }
238  
239 // Per-property setup
240 propTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );
241 if ( !( prop in dataShow ) ) {
242 dataShow[ prop ] = propTween.start;
243 if ( hidden ) {
244 propTween.end = propTween.start;
245 propTween.start = 0;
246 }
247 }
248 }
249 }
250  
251 function propFilter( props, specialEasing ) {
252 var index, name, easing, value, hooks;
253  
254 // camelCase, specialEasing and expand cssHook pass
255 for ( index in props ) {
256 name = jQuery.camelCase( index );
257 easing = specialEasing[ name ];
258 value = props[ index ];
259 if ( jQuery.isArray( value ) ) {
260 easing = value[ 1 ];
261 value = props[ index ] = value[ 0 ];
262 }
263  
264 if ( index !== name ) {
265 props[ name ] = value;
266 delete props[ index ];
267 }
268  
269 hooks = jQuery.cssHooks[ name ];
270 if ( hooks && "expand" in hooks ) {
271 value = hooks.expand( value );
272 delete props[ name ];
273  
274 // Not quite $.extend, this won't overwrite existing keys.
275 // Reusing 'index' because we have the correct "name"
276 for ( index in value ) {
277 if ( !( index in props ) ) {
278 props[ index ] = value[ index ];
279 specialEasing[ index ] = easing;
280 }
281 }
282 } else {
283 specialEasing[ name ] = easing;
284 }
285 }
286 }
287  
288 function Animation( elem, properties, options ) {
289 var result,
290 stopped,
291 index = 0,
292 length = Animation.prefilters.length,
293 deferred = jQuery.Deferred().always( function() {
294  
295 // Don't match elem in the :animated selector
296 delete tick.elem;
297 } ),
298 tick = function() {
299 if ( stopped ) {
300 return false;
301 }
302 var currentTime = fxNow || createFxNow(),
303 remaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),
304  
305 // Support: Android 2.3 only
306 // Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)
307 temp = remaining / animation.duration || 0,
308 percent = 1 - temp,
309 index = 0,
310 length = animation.tweens.length;
311  
312 for ( ; index < length; index++ ) {
313 < length; index++ ) { animation.tweens[ index ].run( percent );
314 < length; index++ ) { }
315  
316 < length; index++ ) { deferred.notifyWith( elem, [ animation, percent, remaining ] );
317  
318 < length; index++ ) { if ( percent < 1 && length ) {
319 < length; index++ ) {< 1 && length ) { return remaining;
320 < length; index++ ) {< 1 && length ) { } else {
321 < length; index++ ) {< 1 && length ) { deferred.resolveWith( elem, [ animation ] );
322 < length; index++ ) {< 1 && length ) { return false;
323 < length; index++ ) {< 1 && length ) { }
324 < length; index++ ) {< 1 && length ) { },
325 < length; index++ ) {< 1 && length ) { animation = deferred.promise( {
326 < length; index++ ) {< 1 && length ) { elem: elem,
327 < length; index++ ) {< 1 && length ) { props: jQuery.extend( {}, properties ),
328 < length; index++ ) {< 1 && length ) { opts: jQuery.extend( true, {
329 < length; index++ ) {< 1 && length ) { specialEasing: {},
330 < length; index++ ) {< 1 && length ) { easing: jQuery.easing._default
331 < length; index++ ) {< 1 && length ) { }, options ),
332 < length; index++ ) {< 1 && length ) { originalProperties: properties,
333 < length; index++ ) {< 1 && length ) { originalOptions: options,
334 < length; index++ ) {< 1 && length ) { startTime: fxNow || createFxNow(),
335 < length; index++ ) {< 1 && length ) { duration: options.duration,
336 < length; index++ ) {< 1 && length ) { tweens: [],
337 < length; index++ ) {< 1 && length ) { createTween: function( prop, end ) {
338 < length; index++ ) {< 1 && length ) { var tween = jQuery.Tween( elem, animation.opts, prop, end,
339 < length; index++ ) {< 1 && length ) { animation.opts.specialEasing[ prop ] || animation.opts.easing );
340 < length; index++ ) {< 1 && length ) { animation.tweens.push( tween );
341 < length; index++ ) {< 1 && length ) { return tween;
342 < length; index++ ) {< 1 && length ) { },
343 < length; index++ ) {< 1 && length ) { stop: function( gotoEnd ) {
344 < length; index++ ) {< 1 && length ) { var index = 0,
345  
346 < length; index++ ) {< 1 && length ) { // If we are going to the end, we want to run all the tweens
347 < length; index++ ) {< 1 && length ) { // otherwise we skip this part
348 < length; index++ ) {< 1 && length ) { length = gotoEnd ? animation.tweens.length : 0;
349 < length; index++ ) {< 1 && length ) { if ( stopped ) {
350 < length; index++ ) {< 1 && length ) { return this;
351 < length; index++ ) {< 1 && length ) { }
352 < length; index++ ) {< 1 && length ) { stopped = true;
353 < length; index++ ) {< 1 && length ) { for ( ; index < length; index++ ) {
354 < length; index++ ) {< 1 && length ) {< length; index++ ) { animation.tweens[ index ].run( 1 );
355 < length; index++ ) {< 1 && length ) {< length; index++ ) { }
356  
357 < length; index++ ) {< 1 && length ) {< length; index++ ) { // Resolve when we played the last frame; otherwise, reject
358 < length; index++ ) {< 1 && length ) {< length; index++ ) { if ( gotoEnd ) {
359 < length; index++ ) {< 1 && length ) {< length; index++ ) { deferred.notifyWith( elem, [ animation, 1, 0 ] );
360 < length; index++ ) {< 1 && length ) {< length; index++ ) { deferred.resolveWith( elem, [ animation, gotoEnd ] );
361 < length; index++ ) {< 1 && length ) {< length; index++ ) { } else {
362 < length; index++ ) {< 1 && length ) {< length; index++ ) { deferred.rejectWith( elem, [ animation, gotoEnd ] );
363 < length; index++ ) {< 1 && length ) {< length; index++ ) { }
364 < length; index++ ) {< 1 && length ) {< length; index++ ) { return this;
365 < length; index++ ) {< 1 && length ) {< length; index++ ) { }
366 < length; index++ ) {< 1 && length ) {< length; index++ ) { } ),
367 < length; index++ ) {< 1 && length ) {< length; index++ ) { props = animation.props;
368  
369 < length; index++ ) {< 1 && length ) {< length; index++ ) { propFilter( props, animation.opts.specialEasing );
370  
371 < length; index++ ) {< 1 && length ) {< length; index++ ) { for ( ; index < length; index++ ) {
372 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { result = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );
373 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { if ( result ) {
374 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { if ( jQuery.isFunction( result.stop ) ) {
375 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { jQuery._queueHooks( animation.elem, animation.opts.queue ).stop =
376 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { jQuery.proxy( result.stop, result );
377 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { }
378 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { return result;
379 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { }
380 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { }
381  
382 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { jQuery.map( props, createTween, animation );
383  
384 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { if ( jQuery.isFunction( animation.opts.start ) ) {
385 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { animation.opts.start.call( elem, animation );
386 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { }
387  
388 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { jQuery.fx.timer(
389 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { jQuery.extend( tick, {
390 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { elem: elem,
391 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { anim: animation,
392 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { queue: animation.opts.queue
393 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { } )
394 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { );
395  
396 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { // attach callbacks from options
397 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { return animation.progress( animation.opts.progress )
398 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { .done( animation.opts.done, animation.opts.complete )
399 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { .fail( animation.opts.fail )
400 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { .always( animation.opts.always );
401 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {}
402  
403 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {jQuery.Animation = jQuery.extend( Animation, {
404  
405 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { tweeners: {
406 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { "*": [ function( prop, value ) {
407 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { var tween = this.createTween( prop, value );
408 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { adjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );
409 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { return tween;
410 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { } ]
411 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { },
412  
413 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { tweener: function( props, callback ) {
414 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { if ( jQuery.isFunction( props ) ) {
415 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { callback = props;
416 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { props = [ "*" ];
417 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { } else {
418 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { props = props.match( rnothtmlwhite );
419 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { }
420  
421 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { var prop,
422 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { index = 0,
423 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { length = props.length;
424  
425 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) { for ( ; index < length; index++ ) {
426 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { prop = props[ index ];
427 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { Animation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];
428 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { Animation.tweeners[ prop ].unshift( callback );
429 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
430 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { },
431  
432 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { prefilters: [ defaultPrefilter ],
433  
434 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { prefilter: function( callback, prepend ) {
435 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( prepend ) {
436 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { Animation.prefilters.unshift( callback );
437 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } else {
438 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { Animation.prefilters.push( callback );
439 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
440 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
441 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {} );
442  
443 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.speed = function( speed, easing, fn ) {
444 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
445 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { complete: fn || !fn && easing ||
446 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.isFunction( speed ) && speed,
447 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { duration: speed,
448 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
449 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
450  
451 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Go to the end state if fx are off or if document is hidden
452 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( jQuery.fx.off || document.hidden ) {
453 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.duration = 0;
454  
455 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } else {
456 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( typeof opt.duration !== "number" ) {
457 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( opt.duration in jQuery.fx.speeds ) {
458 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.duration = jQuery.fx.speeds[ opt.duration ];
459  
460 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } else {
461 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.duration = jQuery.fx.speeds._default;
462 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
463 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
464 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
465  
466 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Normalize opt.queue - true/undefined/null -> "fx"
467 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( opt.queue == null || opt.queue === true ) {
468 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.queue = "fx";
469 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
470  
471 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Queueing
472 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.old = opt.complete;
473  
474 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.complete = function() {
475 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( jQuery.isFunction( opt.old ) ) {
476 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { opt.old.call( this );
477 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
478  
479 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( opt.queue ) {
480 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.dequeue( this, opt.queue );
481 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
482 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
483  
484 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return opt;
485 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {};
486  
487 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.fn.extend( {
488 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { fadeTo: function( speed, to, easing, callback ) {
489  
490 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Show any hidden elements after setting opacity to 0
491 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return this.filter( isHiddenWithinTree ).css( "opacity", 0 ).show()
492  
493 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Animate to the value specified
494 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { .end().animate( { opacity: to }, speed, easing, callback );
495 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { },
496 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { animate: function( prop, speed, easing, callback ) {
497 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var empty = jQuery.isEmptyObject( prop ),
498 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { optall = jQuery.speed( speed, easing, callback ),
499 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { doAnimation = function() {
500  
501 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Operate on a copy of prop so per-property easing won't be lost
502 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var anim = Animation( this, jQuery.extend( {}, prop ), optall );
503  
504 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Empty animations, or finishing resolves immediately
505 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( empty || dataPriv.get( this, "finish" ) ) {
506 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { anim.stop( true );
507 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
508 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
509 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { doAnimation.finish = doAnimation;
510  
511 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return empty || optall.queue === false ?
512 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { this.each( doAnimation ) :
513 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { this.queue( optall.queue, doAnimation );
514 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { },
515 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { stop: function( type, clearQueue, gotoEnd ) {
516 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var stopQueue = function( hooks ) {
517 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var stop = hooks.stop;
518 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { delete hooks.stop;
519 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { stop( gotoEnd );
520 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
521  
522 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( typeof type !== "string" ) {
523 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { gotoEnd = clearQueue;
524 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { clearQueue = type;
525 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { type = undefined;
526 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
527 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( clearQueue && type !== false ) {
528 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { this.queue( type || "fx", [] );
529 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
530  
531 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return this.each( function() {
532 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var dequeue = true,
533 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { index = type != null && type + "queueHooks",
534 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers = jQuery.timers,
535 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { data = dataPriv.get( this );
536  
537 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( index ) {
538 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( data[ index ] && data[ index ].stop ) {
539 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { stopQueue( data[ index ] );
540 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
541 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } else {
542 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { for ( index in data ) {
543 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {
544 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { stopQueue( data[ index ] );
545 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
546 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
547 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
548  
549 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { for ( index = timers.length; index--; ) {
550 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( timers[ index ].elem === this &&
551 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { ( type == null || timers[ index ].queue === type ) ) {
552  
553 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers[ index ].anim.stop( gotoEnd );
554 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { dequeue = false;
555 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers.splice( index, 1 );
556 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
557 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
558  
559 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Start the next in the queue if the last step wasn't forced.
560 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Timers currently will call their complete callbacks, which
561 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // will dequeue but only if they were gotoEnd.
562 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( dequeue || !gotoEnd ) {
563 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.dequeue( this, type );
564 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
565 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } );
566 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { },
567 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { finish: function( type ) {
568 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( type !== false ) {
569 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { type = type || "fx";
570 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
571 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return this.each( function() {
572 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var index,
573 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { data = dataPriv.get( this ),
574 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { queue = data[ type + "queue" ],
575 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { hooks = data[ type + "queueHooks" ],
576 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers = jQuery.timers,
577 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { length = queue ? queue.length : 0;
578  
579 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Enable finishing flag on private data
580 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { data.finish = true;
581  
582 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Empty the queue first
583 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.queue( this, type, [] );
584  
585 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( hooks && hooks.stop ) {
586 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { hooks.stop.call( this, true );
587 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
588  
589 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Look for any active animations, and finish them
590 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { for ( index = timers.length; index--; ) {
591 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( timers[ index ].elem === this && timers[ index ].queue === type ) {
592 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers[ index ].anim.stop( true );
593 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers.splice( index, 1 );
594 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
595 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
596  
597 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Look for any animations in the old queue and finish them
598 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { for ( index = 0; index < length; index++ ) {
599 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { if ( queue[ index ] && queue[ index ].finish ) {
600 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { queue[ index ].finish.call( this );
601 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
602 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
603  
604 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { // Turn off finishing flag
605 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { delete data.finish;
606 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { } );
607 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { }
608 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {} );
609  
610 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.each( [ "toggle", "show", "hide" ], function( i, name ) {
611 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var cssFn = jQuery.fn[ name ];
612 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.fn[ name ] = function( speed, easing, callback ) {
613 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return speed == null || typeof speed === "boolean" ?
614 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { cssFn.apply( this, arguments ) :
615 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { this.animate( genFx( name, true ), speed, easing, callback );
616 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
617 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {} );
618  
619 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {// Generate shortcuts for custom animations
620 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.each( {
621 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { slideDown: genFx( "show" ),
622 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { slideUp: genFx( "hide" ),
623 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { slideToggle: genFx( "toggle" ),
624 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { fadeIn: { opacity: "show" },
625 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { fadeOut: { opacity: "hide" },
626 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { fadeToggle: { opacity: "toggle" }
627 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {}, function( name, props ) {
628 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { jQuery.fn[ name ] = function( speed, easing, callback ) {
629 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { return this.animate( props, speed, easing, callback );
630 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { };
631 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {} );
632  
633 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.timers = [];
634 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {jQuery.fx.tick = function() {
635 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { var timer,
636 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { i = 0,
637 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { timers = jQuery.timers;
638  
639 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { fxNow = jQuery.now();
640  
641 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) { for ( ; i < timers.length; i++ ) {
642 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { timer = timers[ i ];
643  
644 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { // Checks the timer has not already been removed
645 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { if ( !timer() && timers[ i ] === timer ) {
646 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { timers.splice( i--, 1 );
647 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
648 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
649  
650 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { if ( !timers.length ) {
651 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { jQuery.fx.stop();
652 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
653 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { fxNow = undefined;
654 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {};
655  
656 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {jQuery.fx.timer = function( timer ) {
657 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { jQuery.timers.push( timer );
658 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { if ( timer() ) {
659 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { jQuery.fx.start();
660 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { } else {
661 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { jQuery.timers.pop();
662 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
663 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {};
664  
665 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {jQuery.fx.interval = 13;
666 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {jQuery.fx.start = function() {
667 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { if ( !timerId ) {
668 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { timerId = window.requestAnimationFrame ?
669 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { window.requestAnimationFrame( raf ) :
670 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { window.setInterval( jQuery.fx.tick, jQuery.fx.interval );
671 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
672 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {};
673  
674 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {jQuery.fx.stop = function() {
675 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { if ( window.cancelAnimationFrame ) {
676 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { window.cancelAnimationFrame( timerId );
677 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { } else {
678 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { window.clearInterval( timerId );
679 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { }
680  
681 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { timerId = null;
682 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {};
683  
684 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {jQuery.fx.speeds = {
685 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { slow: 600,
686 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { fast: 200,
687  
688 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { // Default speed
689 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) { _default: 400
690 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {};
691  
692 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {return jQuery;
693 < length; index++ ) {< 1 && length ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< length; index++ ) {< timers.length; i++ ) {} );