cycle2-rails 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,654 @@
1
+ /*!
2
+ * jQuery Cycle2 - Version: 20130502
3
+ * http://malsup.com/jquery/cycle2/
4
+ * Copyright (c) 2012 M. Alsup; Dual licensed: MIT/GPL
5
+ * Requires: jQuery v1.7 or later
6
+ */
7
+ ;(function($) {
8
+ "use strict";
9
+
10
+ var version = '20130409';
11
+
12
+ $.fn.cycle = function( options ) {
13
+ // fix mistakes with the ready state
14
+ var o;
15
+ if ( this.length === 0 && !$.isReady ) {
16
+ o = { s: this.selector, c: this.context };
17
+ $.fn.cycle.log('requeuing slideshow (dom not ready)');
18
+ $(function() {
19
+ $( o.s, o.c ).cycle(options);
20
+ });
21
+ return this;
22
+ }
23
+
24
+ return this.each(function() {
25
+ var data, opts, shortName, val;
26
+ var container = $(this);
27
+ var log = $.fn.cycle.log;
28
+
29
+ if ( container.data('cycle.opts') )
30
+ return; // already initialized
31
+
32
+ if ( container.data('cycle-log') === false ||
33
+ ( options && options.log === false ) ||
34
+ ( opts && opts.log === false) ) {
35
+ log = $.noop;
36
+ }
37
+
38
+ log('--c2 init--');
39
+ data = container.data();
40
+ for (var p in data) {
41
+ // allow props to be accessed sans 'cycle' prefix and log the overrides
42
+ if (data.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {
43
+ val = data[p];
44
+ shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);
45
+ log(shortName+':', val, '('+typeof val +')');
46
+ data[shortName] = val;
47
+ }
48
+ }
49
+
50
+ opts = $.extend( {}, $.fn.cycle.defaults, data, options || {});
51
+
52
+ opts.timeoutId = 0;
53
+ opts.paused = opts.paused || false; // #57
54
+ opts.container = container;
55
+ opts._maxZ = opts.maxZ;
56
+
57
+ opts.API = $.extend ( { _container: container }, $.fn.cycle.API );
58
+ opts.API.log = log;
59
+ opts.API.trigger = function( eventName, args ) {
60
+ opts.container.trigger( eventName, args );
61
+ return opts.API;
62
+ };
63
+
64
+ container.data( 'cycle.opts', opts );
65
+ container.data( 'cycle.API', opts.API );
66
+
67
+ // opportunity for plugins to modify opts and API
68
+ opts.API.trigger('cycle-bootstrap', [ opts, opts.API ]);
69
+
70
+ opts.API.addInitialSlides();
71
+ opts.API.preInitSlideshow();
72
+
73
+ if ( opts.slides.length )
74
+ opts.API.initSlideshow();
75
+ });
76
+ };
77
+
78
+ $.fn.cycle.API = {
79
+ opts: function() {
80
+ return this._container.data( 'cycle.opts' );
81
+ },
82
+ addInitialSlides: function() {
83
+ var opts = this.opts();
84
+ var slides = opts.slides;
85
+ opts.slideCount = 0;
86
+ opts.slides = $(); // empty set
87
+
88
+ // add slides that already exist
89
+ slides = slides.jquery ? slides : opts.container.find( slides );
90
+
91
+ if ( opts.random ) {
92
+ slides.sort(function() {return Math.random() - 0.5;});
93
+ }
94
+
95
+ opts.API.add( slides );
96
+ },
97
+
98
+ preInitSlideshow: function() {
99
+ var opts = this.opts();
100
+ opts.API.trigger('cycle-pre-initialize', [ opts ]);
101
+ var tx = $.fn.cycle.transitions[opts.fx];
102
+ if (tx && $.isFunction(tx.preInit))
103
+ tx.preInit( opts );
104
+ opts._preInitialized = true;
105
+ },
106
+
107
+ postInitSlideshow: function() {
108
+ var opts = this.opts();
109
+ opts.API.trigger('cycle-post-initialize', [ opts ]);
110
+ var tx = $.fn.cycle.transitions[opts.fx];
111
+ if (tx && $.isFunction(tx.postInit))
112
+ tx.postInit( opts );
113
+ },
114
+
115
+ initSlideshow: function() {
116
+ var opts = this.opts();
117
+ var pauseObj = opts.container;
118
+ var slideOpts;
119
+ opts.API.calcFirstSlide();
120
+
121
+ if ( opts.container.css('position') == 'static' )
122
+ opts.container.css('position', 'relative');
123
+
124
+ $(opts.slides[opts.currSlide]).css('opacity',1).show();
125
+ opts.API.stackSlides( opts.slides[opts.currSlide], opts.slides[opts.nextSlide], !opts.reverse );
126
+
127
+ if ( opts.pauseOnHover ) {
128
+ // allow pauseOnHover to specify an element
129
+ if ( opts.pauseOnHover !== true )
130
+ pauseObj = $( opts.pauseOnHover );
131
+
132
+ pauseObj.hover(
133
+ function(){ opts.API.pause( true ); },
134
+ function(){ opts.API.resume( true ); }
135
+ );
136
+ }
137
+
138
+ // stage initial transition
139
+ if ( opts.timeout ) {
140
+ slideOpts = opts.API.getSlideOpts( opts.nextSlide );
141
+ opts.API.queueTransition( slideOpts, slideOpts.timeout + opts.delay );
142
+ }
143
+
144
+ opts._initialized = true;
145
+ opts.API.updateView( true );
146
+ opts.API.trigger('cycle-initialized', [ opts ]);
147
+ opts.API.postInitSlideshow();
148
+ },
149
+
150
+ pause: function( hover ) {
151
+ var opts = this.opts(),
152
+ slideOpts = opts.API.getSlideOpts(),
153
+ alreadyPaused = opts.hoverPaused || opts.paused;
154
+
155
+ if ( hover )
156
+ opts.hoverPaused = true;
157
+ else
158
+ opts.paused = true;
159
+
160
+ if ( ! alreadyPaused ) {
161
+ opts.container.addClass('cycle-paused');
162
+ opts.API.trigger('cycle-paused', [ opts ]).log('cycle-paused');
163
+
164
+ if ( slideOpts.timeout ) {
165
+ clearTimeout( opts.timeoutId );
166
+ opts.timeoutId = 0;
167
+
168
+ // determine how much time is left for the current slide
169
+ opts._remainingTimeout -= ( $.now() - opts._lastQueue );
170
+ if ( opts._remainingTimeout < 0 || isNaN(opts._remainingTimeout) )
171
+ opts._remainingTimeout = undefined;
172
+ }
173
+ }
174
+ },
175
+
176
+ resume: function( hover ) {
177
+ var opts = this.opts(),
178
+ alreadyResumed = !opts.hoverPaused && !opts.paused,
179
+ remaining;
180
+
181
+ if ( hover )
182
+ opts.hoverPaused = false;
183
+ else
184
+ opts.paused = false;
185
+
186
+ if ( ! alreadyResumed ) {
187
+ opts.container.removeClass('cycle-paused');
188
+ opts.API.queueTransition( opts.API.getSlideOpts(), opts._remainingTimeout );
189
+ opts.API.trigger('cycle-resumed', [ opts, opts._remainingTimeout ] ).log('cycle-resumed');
190
+ }
191
+ },
192
+
193
+ add: function( slides, prepend ) {
194
+ var opts = this.opts();
195
+ var oldSlideCount = opts.slideCount;
196
+ var startSlideshow = false;
197
+ var len;
198
+
199
+ if ( $.type(slides) == 'string')
200
+ slides = $.trim( slides );
201
+
202
+ $( slides ).each(function(i) {
203
+ var slideOpts;
204
+ var slide = $(this);
205
+
206
+ if ( prepend )
207
+ opts.container.prepend( slide );
208
+ else
209
+ opts.container.append( slide );
210
+
211
+ opts.slideCount++;
212
+ slideOpts = opts.API.buildSlideOpts( slide );
213
+
214
+ if ( prepend )
215
+ opts.slides = $( slide ).add( opts.slides );
216
+ else
217
+ opts.slides = opts.slides.add( slide );
218
+
219
+ opts.API.initSlide( slideOpts, slide, --opts._maxZ );
220
+
221
+ slide.data('cycle.opts', slideOpts);
222
+ opts.API.trigger('cycle-slide-added', [ opts, slideOpts, slide ]);
223
+ });
224
+
225
+ opts.API.updateView( true );
226
+
227
+ startSlideshow = opts._preInitialized && (oldSlideCount < 2 && opts.slideCount >= 1);
228
+ if ( startSlideshow ) {
229
+ if ( !opts._initialized )
230
+ opts.API.initSlideshow();
231
+ else if ( opts.timeout ) {
232
+ len = opts.slides.length;
233
+ opts.nextSlide = opts.reverse ? len - 1 : 1;
234
+ if ( !opts.timeoutId ) {
235
+ opts.API.queueTransition( opts );
236
+ }
237
+ }
238
+ }
239
+ },
240
+
241
+ calcFirstSlide: function() {
242
+ var opts = this.opts();
243
+ var firstSlideIndex;
244
+ firstSlideIndex = parseInt( opts.startingSlide || 0, 10 );
245
+ if (firstSlideIndex >= opts.slides.length || firstSlideIndex < 0)
246
+ firstSlideIndex = 0;
247
+
248
+ opts.currSlide = firstSlideIndex;
249
+ if ( opts.reverse ) {
250
+ opts.nextSlide = firstSlideIndex - 1;
251
+ if (opts.nextSlide < 0)
252
+ opts.nextSlide = opts.slides.length - 1;
253
+ }
254
+ else {
255
+ opts.nextSlide = firstSlideIndex + 1;
256
+ if (opts.nextSlide == opts.slides.length)
257
+ opts.nextSlide = 0;
258
+ }
259
+ },
260
+
261
+ calcNextSlide: function() {
262
+ var opts = this.opts();
263
+ var roll;
264
+ if ( opts.reverse ) {
265
+ roll = (opts.nextSlide - 1) < 0;
266
+ opts.nextSlide = roll ? opts.slideCount - 1 : opts.nextSlide-1;
267
+ opts.currSlide = roll ? 0 : opts.nextSlide+1;
268
+ }
269
+ else {
270
+ roll = (opts.nextSlide + 1) == opts.slides.length;
271
+ opts.nextSlide = roll ? 0 : opts.nextSlide+1;
272
+ opts.currSlide = roll ? opts.slides.length-1 : opts.nextSlide-1;
273
+ }
274
+ },
275
+
276
+ calcTx: function( slideOpts, manual ) {
277
+ var opts = slideOpts;
278
+ var tx;
279
+ if ( manual && opts.manualFx )
280
+ tx = $.fn.cycle.transitions[opts.manualFx];
281
+ if ( !tx )
282
+ tx = $.fn.cycle.transitions[opts.fx];
283
+
284
+ if (!tx) {
285
+ tx = $.fn.cycle.transitions.fade;
286
+ opts.API.log('Transition "' + opts.fx + '" not found. Using fade.');
287
+ }
288
+ return tx;
289
+ },
290
+
291
+ prepareTx: function( manual, fwd ) {
292
+ var opts = this.opts();
293
+ var after, curr, next, slideOpts, tx;
294
+
295
+ if ( opts.slideCount < 2 ) {
296
+ opts.timeoutId = 0;
297
+ return;
298
+ }
299
+ if ( manual && ( !opts.busy || opts.manualTrump ) ) {
300
+ opts.API.stopTransition();
301
+ opts.busy = false;
302
+ clearTimeout(opts.timeoutId);
303
+ opts.timeoutId = 0;
304
+ }
305
+ if ( opts.busy )
306
+ return;
307
+ if ( opts.timeoutId === 0 && !manual )
308
+ return;
309
+
310
+ curr = opts.slides[opts.currSlide];
311
+ next = opts.slides[opts.nextSlide];
312
+ slideOpts = opts.API.getSlideOpts( opts.nextSlide );
313
+ tx = opts.API.calcTx( slideOpts, manual );
314
+
315
+ opts._tx = tx;
316
+
317
+ if ( manual && slideOpts.manualSpeed !== undefined )
318
+ slideOpts.speed = slideOpts.manualSpeed;
319
+
320
+ // if ( opts.nextSlide === opts.currSlide )
321
+ // opts.API.calcNextSlide();
322
+
323
+ // ensure that:
324
+ // 1. advancing to a different slide
325
+ // 2. this is either a manual event (prev/next, pager, cmd) or
326
+ // a timer event and slideshow is not paused
327
+ if ( opts.nextSlide != opts.currSlide &&
328
+ (manual || (!opts.paused && !opts.hoverPaused && opts.timeout) )) { // #62
329
+
330
+ opts.API.trigger('cycle-before', [ slideOpts, curr, next, fwd ]);
331
+ if ( tx.before )
332
+ tx.before( slideOpts, curr, next, fwd );
333
+
334
+ after = function() {
335
+ opts.busy = false;
336
+ // #76; bail if slideshow has been destroyed
337
+ if (! opts.container.data( 'cycle.opts' ) )
338
+ return;
339
+
340
+ if (tx.after)
341
+ tx.after( slideOpts, curr, next, fwd );
342
+ opts.API.trigger('cycle-after', [ slideOpts, curr, next, fwd ]);
343
+ opts.API.queueTransition( slideOpts);
344
+ opts.API.updateView( true );
345
+ };
346
+
347
+ opts.busy = true;
348
+ if (tx.transition)
349
+ tx.transition(slideOpts, curr, next, fwd, after);
350
+ else
351
+ opts.API.doTransition( slideOpts, curr, next, fwd, after);
352
+
353
+ opts.API.calcNextSlide();
354
+ opts.API.updateView();
355
+ } else {
356
+ opts.API.queueTransition( slideOpts );
357
+ }
358
+ },
359
+
360
+ // perform the actual animation
361
+ doTransition: function( slideOpts, currEl, nextEl, fwd, callback) {
362
+ var opts = slideOpts;
363
+ var curr = $(currEl), next = $(nextEl);
364
+ var fn = function() {
365
+ // make sure animIn has something so that callback doesn't trigger immediately
366
+ next.animate(opts.animIn || { opacity: 1}, opts.speed, opts.easeIn || opts.easing, callback);
367
+ };
368
+
369
+ next.css(opts.cssBefore || {});
370
+ curr.animate(opts.animOut || {}, opts.speed, opts.easeOut || opts.easing, function() {
371
+ curr.css(opts.cssAfter || {});
372
+ if (!opts.sync) {
373
+ fn();
374
+ }
375
+ });
376
+ if (opts.sync) {
377
+ fn();
378
+ }
379
+ },
380
+
381
+ queueTransition: function( slideOpts, specificTimeout ) {
382
+ var opts = this.opts();
383
+ var timeout = specificTimeout !== undefined ? specificTimeout : slideOpts.timeout;
384
+ if (opts.nextSlide === 0 && --opts.loop === 0) {
385
+ opts.API.log('terminating; loop=0');
386
+ opts.timeout = 0;
387
+ if ( timeout ) {
388
+ setTimeout(function() {
389
+ opts.API.trigger('cycle-finished', [ opts ]);
390
+ }, timeout);
391
+ }
392
+ else {
393
+ opts.API.trigger('cycle-finished', [ opts ]);
394
+ }
395
+ // reset nextSlide
396
+ opts.nextSlide = opts.currSlide;
397
+ return;
398
+ }
399
+ if ( timeout ) {
400
+ opts._lastQueue = $.now();
401
+ if ( specificTimeout === undefined )
402
+ opts._remainingTimeout = slideOpts.timeout;
403
+
404
+ if ( !opts.paused && ! opts.hoverPaused ) {
405
+ opts.timeoutId = setTimeout(function() {
406
+ opts.API.prepareTx( false, !opts.reverse );
407
+ }, timeout );
408
+ }
409
+ }
410
+ },
411
+
412
+ stopTransition: function() {
413
+ var opts = this.opts();
414
+ if ( opts.slides.filter(':animated').length ) {
415
+ opts.slides.stop(false, true);
416
+ opts.API.trigger('cycle-transition-stopped', [ opts ]);
417
+ }
418
+
419
+ if ( opts._tx && opts._tx.stopTransition )
420
+ opts._tx.stopTransition( opts );
421
+ },
422
+
423
+ // advance slide forward or back
424
+ advanceSlide: function( val ) {
425
+ var opts = this.opts();
426
+ clearTimeout(opts.timeoutId);
427
+ opts.timeoutId = 0;
428
+ opts.nextSlide = opts.currSlide + val;
429
+
430
+ if (opts.nextSlide < 0)
431
+ opts.nextSlide = opts.slides.length - 1;
432
+ else if (opts.nextSlide >= opts.slides.length)
433
+ opts.nextSlide = 0;
434
+
435
+ opts.API.prepareTx( true, val >= 0 );
436
+ return false;
437
+ },
438
+
439
+ buildSlideOpts: function( slide ) {
440
+ var opts = this.opts();
441
+ var val, shortName;
442
+ var slideOpts = slide.data() || {};
443
+ for (var p in slideOpts) {
444
+ // allow props to be accessed sans 'cycle' prefix and log the overrides
445
+ if (slideOpts.hasOwnProperty(p) && /^cycle[A-Z]+/.test(p) ) {
446
+ val = slideOpts[p];
447
+ shortName = p.match(/^cycle(.*)/)[1].replace(/^[A-Z]/, lowerCase);
448
+ opts.API.log('['+(opts.slideCount-1)+']', shortName+':', val, '('+typeof val +')');
449
+ slideOpts[shortName] = val;
450
+ }
451
+ }
452
+
453
+ slideOpts = $.extend( {}, $.fn.cycle.defaults, opts, slideOpts );
454
+ slideOpts.slideNum = opts.slideCount;
455
+
456
+ try {
457
+ // these props should always be read from the master state object
458
+ delete slideOpts.API;
459
+ delete slideOpts.slideCount;
460
+ delete slideOpts.currSlide;
461
+ delete slideOpts.nextSlide;
462
+ delete slideOpts.slides;
463
+ } catch(e) {
464
+ // no op
465
+ }
466
+ return slideOpts;
467
+ },
468
+
469
+ getSlideOpts: function( index ) {
470
+ var opts = this.opts();
471
+ if ( index === undefined )
472
+ index = opts.currSlide;
473
+
474
+ var slide = opts.slides[index];
475
+ var slideOpts = $(slide).data('cycle.opts');
476
+ return $.extend( {}, opts, slideOpts );
477
+ },
478
+
479
+ initSlide: function( slideOpts, slide, suggestedZindex ) {
480
+ var opts = this.opts();
481
+ slide.css( slideOpts.slideCss || {} );
482
+ if ( suggestedZindex > 0 )
483
+ slide.css( 'zIndex', suggestedZindex );
484
+
485
+ // ensure that speed settings are sane
486
+ if ( isNaN( slideOpts.speed ) )
487
+ slideOpts.speed = $.fx.speeds[slideOpts.speed] || $.fx.speeds._default;
488
+ if ( !slideOpts.sync )
489
+ slideOpts.speed = slideOpts.speed / 2;
490
+
491
+ slide.addClass( opts.slideClass );
492
+ },
493
+
494
+ updateView: function( isAfter ) {
495
+ var opts = this.opts();
496
+ if ( !opts._initialized )
497
+ return;
498
+ var slideOpts = opts.API.getSlideOpts();
499
+ var currSlide = opts.slides[ opts.currSlide ];
500
+
501
+ if ( ! isAfter ) {
502
+ opts.API.trigger('cycle-update-view-before', [ opts, slideOpts, currSlide ]);
503
+ if ( opts.updateView < 0 )
504
+ return;
505
+ }
506
+
507
+ if ( opts.slideActiveClass ) {
508
+ opts.slides.removeClass( opts.slideActiveClass )
509
+ .eq( opts.currSlide ).addClass( opts.slideActiveClass );
510
+ }
511
+
512
+ if ( isAfter && opts.hideNonActive )
513
+ opts.slides.filter( ':not(.' + opts.slideActiveClass + ')' ).hide();
514
+
515
+ opts.API.trigger('cycle-update-view', [ opts, slideOpts, currSlide, isAfter ]);
516
+ opts.API.trigger('cycle-update-view-after', [ opts, slideOpts, currSlide ]);
517
+ },
518
+
519
+ getComponent: function( name ) {
520
+ var opts = this.opts();
521
+ var selector = opts[name];
522
+ if (typeof selector === 'string') {
523
+ // if selector is a child, sibling combinator, adjancent selector then use find, otherwise query full dom
524
+ return (/^\s*[\>|\+|~]/).test( selector ) ? opts.container.find( selector ) : $( selector );
525
+ }
526
+ if (selector.jquery)
527
+ return selector;
528
+
529
+ return $(selector);
530
+ },
531
+
532
+ stackSlides: function( curr, next, fwd ) {
533
+ var opts = this.opts();
534
+ if ( !curr ) {
535
+ curr = opts.slides[opts.currSlide];
536
+ next = opts.slides[opts.nextSlide];
537
+ fwd = !opts.reverse;
538
+ }
539
+
540
+ // reset the zIndex for the common case:
541
+ // curr slide on top, next slide beneath, and the rest in order to be shown
542
+ $(curr).css('zIndex', opts.maxZ);
543
+
544
+ var i;
545
+ var z = opts.maxZ - 2;
546
+ var len = opts.slideCount;
547
+ if (fwd) {
548
+ for ( i = opts.currSlide + 1; i < len; i++ )
549
+ $( opts.slides[i] ).css( 'zIndex', z-- );
550
+ for ( i = 0; i < opts.currSlide; i++ )
551
+ $( opts.slides[i] ).css( 'zIndex', z-- );
552
+ }
553
+ else {
554
+ for ( i = opts.currSlide - 1; i >= 0; i-- )
555
+ $( opts.slides[i] ).css( 'zIndex', z-- );
556
+ for ( i = len - 1; i > opts.currSlide; i-- )
557
+ $( opts.slides[i] ).css( 'zIndex', z-- );
558
+ }
559
+
560
+ $(next).css('zIndex', opts.maxZ - 1);
561
+ },
562
+
563
+ getSlideIndex: function( el ) {
564
+ return this.opts().slides.index( el );
565
+ }
566
+
567
+ }; // API
568
+
569
+ // default logger
570
+ $.fn.cycle.log = function log() {
571
+ /*global console:true */
572
+ if (window.console && console.log)
573
+ console.log('[cycle2] ' + Array.prototype.join.call(arguments, ' ') );
574
+ };
575
+
576
+ $.fn.cycle.version = function() { return 'Cycle2: ' + version; };
577
+
578
+ // helper functions
579
+
580
+ function lowerCase(s) {
581
+ return (s || '').toLowerCase();
582
+ }
583
+
584
+ // expose transition object
585
+ $.fn.cycle.transitions = {
586
+ custom: {
587
+ },
588
+ none: {
589
+ before: function( opts, curr, next, fwd ) {
590
+ opts.API.stackSlides( next, curr, fwd );
591
+ opts.cssBefore = { opacity: 1, display: 'block' };
592
+ }
593
+ },
594
+ fade: {
595
+ before: function( opts, curr, next, fwd ) {
596
+ var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
597
+ opts.API.stackSlides( curr, next, fwd );
598
+ opts.cssBefore = $.extend(css, { opacity: 0, display: 'block' });
599
+ opts.animIn = { opacity: 1 };
600
+ opts.animOut = { opacity: 0 };
601
+ }
602
+ },
603
+ fadeout: {
604
+ before: function( opts , curr, next, fwd ) {
605
+ var css = opts.API.getSlideOpts( opts.nextSlide ).slideCss || {};
606
+ opts.API.stackSlides( curr, next, fwd );
607
+ opts.cssBefore = $.extend(css, { opacity: 1, display: 'block' });
608
+ opts.animOut = { opacity: 0 };
609
+ }
610
+ },
611
+ scrollHorz: {
612
+ before: function( opts, curr, next, fwd ) {
613
+ opts.API.stackSlides( curr, next, fwd );
614
+ var w = opts.container.css('overflow','hidden').width();
615
+ opts.cssBefore = { left: fwd ? w : - w, top: 0, opacity: 1, display: 'block' };
616
+ opts.cssAfter = { zIndex: opts._maxZ - 2, left: 0 };
617
+ opts.animIn = { left: 0 };
618
+ opts.animOut = { left: fwd ? -w : w };
619
+ }
620
+ }
621
+ };
622
+
623
+ // @see: http://jquery.malsup.com/cycle2/api
624
+ $.fn.cycle.defaults = {
625
+ allowWrap: true,
626
+ autoSelector: '.cycle-slideshow[data-cycle-auto-init!=false]',
627
+ delay: 0,
628
+ easing: null,
629
+ fx: 'fade',
630
+ hideNonActive: true,
631
+ loop: 0,
632
+ manualFx: undefined,
633
+ manualSpeed: undefined,
634
+ manualTrump: true,
635
+ maxZ: 100,
636
+ pauseOnHover: false,
637
+ reverse: false,
638
+ slideActiveClass: 'cycle-slide-active',
639
+ slideClass: 'cycle-slide',
640
+ slideCss: { position: 'absolute', top: 0, left: 0 },
641
+ slides: '> img',
642
+ speed: 500,
643
+ startingSlide: 0,
644
+ sync: true,
645
+ timeout: 4000,
646
+ updateView: -1
647
+ };
648
+
649
+ // automatically find and run slideshows
650
+ $(document).ready(function() {
651
+ $( $.fn.cycle.defaults.autoSelector ).cycle();
652
+ });
653
+
654
+ })(jQuery);