PageSourceSearch

https://lamarlouisecurry.net/wp-content/plugins/slider-wd/js/jquery.featureCarouselslider.js?ver=2.2.53

js lamarlouisecurry.net collected 2026-10-02 02:02:37 UTC 28,455 bytes, 647 lines download raw bytes

1(function($){
2  $.fn.featureCarouselslider = function (options) {
3    // Adds support for multiple carousels on one page.
4    if (this.length > 1) {
5      this.each(function() {
6        $(this).featureCarouselslider(options);
7      });
8      return this;
9    }
10
11    // override the default options with user defined options
12    options = $.extend({}, $.fn.featureCarouselslider.defaults, options || {});
13
14    /* These are univeral values that are used throughout the plugin. Do not modify them
15     * unless you know what you're doing. Most of them feed off the options
16     * so most customization can be achieved by modifying the options values 
17    */
18    var pluginData = {      
19     
20      containerWidth:       0,
21      containerHeight:      0,
22      largeFeatureWidth:    0,
23      largeFeatureHeight:   0,
24      smallFeatureHeight:   0,
25      smallFeatureWidth:    0,       
26      totalFeatureCount:    $(this).children().first().children().first().children("span").length,
27      featuresContainer:    $(this),
28      featuresArray:        [],
29      containerIDTag:       "." + $(this).attr("id"),
30      timeoutVar:           null,
31      rotationsRemaining:   0,
32      itemsToAnimate:       0,
33      borderWidth:		      0,     
34      autoTime:             0   
35    };
36
37    /**
38     * Function to preload the images in the carousel if desired.
39     * This is not recommended if there are a lot of images in the carousel because
40     * it may take a while. Functionality does not depend on preloading the images 
41     */ 
42    var preload = function(callback) {
43      callback(); 
44    }
45    // Gets the feature container based on the number
46    var getContainer = function(featureNum) {
47      return pluginData.featuresArray[featureNum-1];
48    }
49
50    // get previous feature number
51    var getPreviousNum = function(num) {
52      if ((num - 1) == 0) {
53        return pluginData.totalFeatureCount;
54      } else {
55        return num - 1;
56      }
57    }
58
59    // get next feature number
60    var getNextNum = function(num) {
61      if ((num + 1) > pluginData.totalFeatureCount) {
62        return 1;
63      } else {
64        return num + 1;
65      }
66    }
67
68    /**
69     * Because there are several options the user can set for the width and height
70     * of the feature images, this function is used to determine which options were set
71     * and to set the appropriate dimensions used for a small and large feature	
72     */
73    var setupFeatureDimensions = function() {
74      // Set the height and width of the entire carousel container
75      options.containerWidth = pluginData.featuresContainer.width();
76      options.containerHeight = pluginData.featuresContainer.height();
77    
78      // Grab the first image for reference
79      var $firstFeatureImage = $(pluginData.containerIDTag).find(".wds_slider_car_image" + options.wds_number + ":first");
80 
81      // Large Feature Width
82      if (options.largeFeatureWidth > 1) {
83        pluginData.largeFeatureWidth = options.largeFeatureWidth;
84      }
85	    else if (options.largeFeatureWidth > 0 && options.largeFeatureWidth < 1) {
86        pluginData.largeFeatureWidth = $firstFeatureImage.width() * options.largeFeatureWidth;
87      }
88      else {
89        pluginData.largeFeatureWidth = $firstFeatureImage.outerWidth();
90      }
91      // Large Feature Height
92      if (options.largeFeatureHeight > 1) {
93        pluginData.largeFeatureHeight = options.largeFeatureHeight;
94      }
95      else if (options.largeFeatureHeight > 0 && options.largeFeatureHeight < 1) {
96        pluginData.largeFeatureHeight = $firstFeatureImage.height() * options.largeFeatureHeight;
97      }
98      else {
99        pluginData.largeFeatureHeight = $firstFeatureImage.outerHeight();
100      }
101    }
102
103    /**
104     * Function to take care of setting up various aspects of the carousel,
105     * most importantly the default positions for the features	
106     */
107    var setupCarousel = function() {
108      // Set the total feature count to the amount the user wanted to cutoff
109      if (options.displayCutoff > 0 && options.displayCutoff < pluginData.totalFeatureCount) {
110        pluginData.totalFeatureCount = options.displayCutoff;
111      }
112
113      // Fill in the features array .
114      pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).each(function (index) {
115        if (index < pluginData.totalFeatureCount) {
116          pluginData.featuresArray[index] = $(this);
117        }
118      });
119 
120      // Determine the total border width around the feature if there is one.
121      if (pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).first().css("borderLeftWidth") != "medium") {
122        pluginData.borderWidth = parseInt(pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).first().css("borderLeftWidth"))*2;
123      }
124      // Place all the features in a center hidden position to start off.
125      if (options.imagecount != 1) {
126        pluginData.featuresContainer
127        .find(".wds_slider_car_image" + options.wds_number).each(function () {
128          // Center all the features in the middle and hide them.
129          jQuery(this).css({
130            'left': (options.containerWidth / 2) - (options.largeFeatureWidth * options.smallFeaturePar / 2) - (pluginData.borderWidth / 2) - options.parf,
131            'width': options.largeFeatureWidth * options.smallFeaturePar * options.parametr / 100,
132            'height': options.largeFeatureHeight * options.smallFeaturePar * options.parametr / 100,
133            'top': options.smallFeatureOffset + options.topPadding + options.parf,
134            'opacity': 0,
135            'filter': 'Alpha(opacity=0)'
136          });
137        });
138      } 
139      else {
140        pluginData.featuresContainer
141        .find(".wds_slider_car_image" + options.wds_number).each(function () {
142          // Center all the features in the middle and hide them.
143          jQuery(this).css({
144            'left': 0,
145            'width': options.largeFeatureWidth * options.smallFeaturePar,
146            'height': options.largeFeatureHeight * options.smallFeaturePar,
147            'top': 0,
148            'opacity': 0,
149            'filter': 'Alpha(opacity=0)'
150          });
151        });
152      }        
153      // Set position to relative of captions if displaying below image.
154      if (options.captionBelow) {
155        pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).css('position','absolute');
156      }
157
158      // Figure out number of items that will rotate each time.
159      if (pluginData.totalFeatureCount < options.imagecount) {
160        pluginData.itemsToAnimate = pluginData.totalFeatureCount;  
161      }  else {
162        pluginData.itemsToAnimate = options.imagecount + 2 ;
163      }       
164    }
165
166    /**
167     * Here all the position data is set for the features.
168     * This is an important part of the carousel to keep track of where
169     * each feature within the carousel is	 
170     */
171    var setupFeaturePositions = function() {
172      // give all features a set number that won't change so they remember their
173      // original order
174      $.each(pluginData.featuresArray, function (i) {
175        $(this).data('setPosition', i + 1);
176      });
177
178      // Go back one - This is done because we call the move function right away, which
179      // shifts everything to the right. So we set the current center back one, so that
180      // it displays in the center when that happens
181
182      var oneBeforeStarting = getPreviousNum(window["wds_currentCenterNum"][options.wds_number]);
183      window["wds_currentCenterNum"][options.wds_number] = oneBeforeStarting;
184      // Center feature will be position 1
185      var $centerFeature = getContainer(oneBeforeStarting);
186
187      $centerFeature.data('position', 1);
188
189      // Everything before that center feature...
190      var $prevFeatures = $centerFeature.prevAll();
191      $prevFeatures.each(function (i) {
192        $(this).data('position', (pluginData.totalFeatureCount - i
192));
193      });
194
195      // And everything after that center feature...
196      var $nextFeatures = $centerFeature.nextAll();
197      $nextFeatures.each(function (i) {
198        if ($(this).data('setPosition') != undefined) {
199          $(this).data('position',(i + 2));
200        }
201      });
202
203    }
204
205    /**
206     * This function will set the autoplay for the carousel to
207     * automatically rotate it given the time in the options
208     * pass in TRUE to just clear the timer
209     */
210    var setTimer = function(stop) {
211      return;
212      /*// clear the timeout var if it exists
213      clearTimeout(pluginData.timeoutVar);
214
215      // set interval for moving if autoplay is set
216      if (!stop && options.autoPlay != 0) {
217        var autoTime = (Math.abs(options.autoPlay) < options.carouselSpeed) ? options.carouselSpeed : Math.abs(options.autoPlay);
218        pluginData.timeoutVar = setTimeout(function () {
219          (options.autoPlay > 0) ? initiateMove(true,1) : initiateMove(false,1);
220        }, autoTime);
221      }*/
222    }
223
224    // This is a helper function for the animateFeature function that
225    // will update the positions of all the features based on the direction
226    var rotatePositions = function(direction) {
227      $.each(pluginData.featuresArray, function () {
228        var newPos;
229        if (direction == false) {
230          newPos = getNextNum($(this).data().position);
231        } else {
232          newPos = getPreviousNum($(this).data().position);
233        }
234        $(this).data('position',newPos);
235      });
236    }
237
238    /* Animate the given feature to the given location. Valid locations are "left", "right", "center", "hidden".*/
239    var animateFeature = function($feature, direction, onload) {
240      if (typeof onload == "undefined") {
241        var onload = 0;
242      }
243      $feature.find(".wds_slideshow_image_" + options.wds_number).children().each(function() {
244        jQuery(this).hide();
245      });
246      $feature.find(".wds_video_hide" + options.wds_number).each(function() {
247        jQuery(this).show();
248      });
249      var new_width, new_height, new_top, new_left, new_zindex, new_padding, new_fade, new_fade1, new_left1, new_gray;
250      // Determine the old and new positions of the feature.
251      var oldPosition = $feature.data('position');
252      var newPosition;
253      if (direction == true) {
254        newPosition = getPreviousNum(oldPosition);
255      }
256      else {
257        newPosition = getNextNum(oldPosition);
258      }
259      // Callback for moving out of center pos.
260      if (oldPosition == 1) {
261        options.leavingCenter($feature);
262      }
263      var multiplier = Math.cos(options.carousel_degree / 180* Math.PI);
264      new_gray = "grayscale(0%)";
265	  // Caculate new new css values depending on where the feature will be located center.
266      if (newPosition == 1) {
267        new_width = pluginData.largeFeatureWidth;
268        new_height = pluginData.largeFeatureHeight;
269        new_top =(options.containerHeight / 2 - new_height / 2 );
270        new_zindex = $feature.css("z-index");
271        new_left = (options.containerWidth / 2) - (pluginData.largeFeatureWidth / 2) - (pluginData.borderWidth / 2);
272        new_fade = 1.0;
273        new_fade1 = 100;
274        new_f = "translateZ(0px) rotateY(0deg)";
275        new_gray = "grayscale(0%)";
276        $feature.find(".wds_slideshow_image_" + options.wds_number).children().each(function() {
277          jQuery(this).show();
278        });
279        $feature.find(".wds_video_hide" + options.wds_number).each(function() {
280          jQuery(this).hide();
281        });
282      }
283      else {
284
285        // Left.
286        if (newPosition <= pluginData.totalFeatureCount && (newPosition > pluginData.totalFeatureCount - options.imagecount / 2 + 1)) {
287
288          new_width = (pluginData.largeFeatureWidth * Math.pow(options.smallFeaturePar, pluginData.totalFeatureCount - newPosition + 1));
289          new_height = (pluginData.largeFeatureHeight * Math.pow(options.smallFeaturePar, pluginData.totalFeatureCount - newPosition + 1));
290          new_top = (options.containerHeight/ 2  - new_height / 2 ) ;
291          new_fade = 1 - options.carousel_transparency / 100;
292          new_fade1 = 100;
293          new_f = "translateX("+ (-1) * options.parametr * Math.abs(options.carousel_degree)  / multiplier +"px) translateZ("+ (-1) *options.parametr / multiplier * 2 * Math.abs(options.carousel_degree) + "px) rotateY("+ options.carousel_degree +"deg)";
294          new_gray = "grayscale("+ options.carousel_grayscale +"%)";
295          if(options.fit_containerWidth == false && options.smallFeaturePar < 1){
296            new_left = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2)-(pluginData.largeFeatureWidth * (1 - options.smallFeaturePar) * options.smallFeaturePar * (pluginData.totalFeatureCount - newPosition + 1));
297          } else if(options.fit_containerWidth == false && options.smallFeaturePar == 1){
298            new_left = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2)-(pluginData.largeFeatureWidth * ( options.smallFeaturePar) * options.smallFeaturePar * (pluginData.totalFeatureCount - newPosition + 1));
299          } else {
300              new_left1 = (options.containerWidth / 2 - pluginData.largeFeatureWidth / 2) / (options.imagecount / 2 - 0.5);
301              new_left =  ((options.containerWidth / 2) - (pluginData.largeFeatureWidth / 2) - (pluginData.borderWidth / 2)) - (new_left1 * (pluginData.totalFeatureCount - newPosition+1  ));
302          }
303        }
304        // Right.
305        else if (newPosition >
305= 2 && newPosition <= options.imagecount / 2 + 1) {
306          new_width = (pluginData.largeFeatureWidth * Math.pow(options.smallFeaturePar,newPosition - 1));
307          new_height =( pluginData.largeFeatureHeight * Math.pow(options.smallFeaturePar, newPosition - 1));
308          new_top = ( options.containerHeight / 2 - new_height / 2);
309          new_fade = 1 - options.carousel_transparency / 100;
310          new_fade1 = 100;
311          new_f = "translateX("+ options.parametr * Math.abs(options.carousel_degree) / multiplier   +"px) translateZ("+ (-1) * options.parametr / multiplier * 2 * Math.abs(options.carousel_degree) +"px) rotateY("+ (-1) * options.carousel_degree +"deg)" ;
312          new_gray = "grayscale("+ options.carousel_grayscale + "%)";
313          if (options.fit_containerWidth == false && options.smallFeaturePar < 1) {
314            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) + (pluginData.largeFeatureWidth * options.smallFeaturePar * (1 - options.smallFeaturePar) * (newPosition - 1)) - new_width;
315          } else if (options.fit_containerWidth == false && options.smallFeaturePar == 1) {
316            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) + (pluginData.largeFeatureWidth * options.smallFeaturePar * (options.smallFeaturePar) * (newPosition - 1)) - new_width;
317          } else {
318            new_left1 = ( (options.containerWidth / 2 -pluginData.largeFeatureWidth / 2)) / (options.imagecount / 2 - 0.5);
319            new_left = (options.containerWidth / 2 + pluginData.largeFeatureWidth / 2) - new_width + (new_left1 * (newPosition - 1));
320          }
321
322        }
323        // Hidden.
324        else {
325          new_left = (options.containerWidth / 2) - (pluginData.largeFeatureWidth * options.smallFeaturePar / 2) - (pluginData.borderWidth / 2);
326          new_fade = 0;
327          new_fade1 = 0;
328          new_f = "translateZ(0px) rotateY(0deg)";
329        }
330
331      }
332      // This code block takes care of hiding the feature information if the feature is leaving the center.
333      if (oldPosition == 1) {
334        // Slide up the story information.
335        $feature.find(".wds_slider_car_image" + options.wds_number).hide();
336      }
337
338      // Animate the feature div to its new location.
339      jQuery(".wds_slide_bg_" + options.wds_number).css('perspective', 1000);
340      jQuery(".wds_slide_container_" + options.wds_number).css({'zIndex': 99});
341      jQuery(".wds_line_timer_container_" + options.wds_number).css({'zIndex': 101});
342      jQuery(".wds_circle_timer_container_" + options.wds_number).css({'zIndex': 101});
343      jQuery(".wds_slide_" + options.wds_number).css({"transformStyle":"preserve-3d"});
344      $feature.css({
345        "-webkit-transform":new_f,
346        "-moz-transform:":new_f,
347        "-ms-transform":new_f,
348        "-o-transform":new_f,
349        "transform":new_f,
350        "-webkit-filter":new_gray,
351        "-moz-filter":new_gray,
352        "-ms-filter":new_gray,
353        "-o-filter":new_gray,
354        "filter":new_gray,
355        "progid":"DXImageTransform.Microsoft.BasicImage(grayscale=1)",}),
356      $feature
357        .animate(
358          {
359            width: new_width,
360            height: new_height,
361            top: new_top,
362            left: new_left,
363            opacity: new_fade,
364            filter: new_fade1
365          },
366          onload ? 0 : options.carouselSpeed,
367          options.animationEasing,
368          function () {
369            // Take feature info out of hiding if new position is center
370            if (newPosition == 1) {
371              // need to set the height to auto to accomodate caption if displayed below image
372              if (options.captionBelow)
373               $feature.css('height','auto');
374              // fade in the feature information
375              $feature.find(".wds_slider_car_image" + options.wds_number)
376                .fadeTo("fast",0.85);
377              // callback for moved to center
378              options.movedToCenter($feature);
379            }
380            // decrement the animation queue
381            pluginData.rotationsRemaining = pluginData.rotationsRemaining - 1;
382            // have to change the z-index after the animation is done
383            $feature.css("z-index", new_zindex);
384            // change trackers if using them
385            if (options.trackerIndividual || options.trackerSummation) {
386              // just update the tracker once; once the new center feature has arrived in center
387              if (newPosition == 1) {
388                // figure out what item was just in the center, and what item is now in the center
389                var newCenterItemNum = pluginData.featuresContainer.find(".wds_slider_car_image" + options.wds_number).index($feature) + 1;
390                var oldCenterItemNum;
391                if (direction == false) {
392                  oldCenterItemNum = getNextNum(newCenterItemNum);
393                }
394                else {
395                  oldCenterItemNum = getPreviousNum(newCenterItemNum);
396                }
397              }
398            }
399
400            // did all the the animations finish yet?
401            var divide = pluginData.rotationsRemaining / pluginData.itemsToAnimate;
402            if (divide % 1 == 0) {
403              // Set moving to false.
404                window["wds_currentlyMoving"][options.wds_number]   = false;
405              // Change positions for all items.
406              rotatePositions(direction);
407
408              // Move carousel again if queue is not empty.
409              if (pluginData.rotationsRemaining > 0)
410                move(direction);
411            }
412            // Reset timer and auto rotate again.
413            setTimer(false);
414          }
415        )
416        .end();
417    }
418
419    /* Move the carousel to the left or to the right. The features that
420     * will move into the four positions are calculated and then animated
421     * rotate to the RIGHT when direction is TRUE and
422     * rotate to the LEFT when direction is FALSE.
423     */
424    var move = function(direction, onload) {
425
426      // Set the carousel to currently moving
427        window["wds_currentlyMoving"][options.wds_number]  = true;
428      // Obtain the new feature positions based on the direction that the carousel is moving
429      var $newCenter, $newLefts, $newRights, $newHidden, $curNum;
430
431      if (direction == true) {
432        // Shift features to the left
433        $newCenter = getContainer(getNextNum(window["wds_currentCenterNum"][options.wds_number]));
434        $newLefts = [];
435        $curNum = window["wds_currentCenterNum"][options.wds_number];
436        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
437          $newLefts.push(getContainer($curNum));
438          $curNum = getPreviousNum($curNum);
439        }
440        $newRights = [];
441        $curNum = getNextNum(window["wds_currentCenterNum"][options.wds_number]);
442        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
443          $curNum = getNextNum($curNum);
444          $newRights.push(getContainer($curNum));
445        }
446          window["wds_currentCenterNum"][options.wds_number] = getNextNum(window["wds_currentCenterNum"][options.wds_number]);
447      }
448      else {
449        $newCenter = getContainer(getPreviousNum(window["wds_currentCenterNum"][options.wds_number]));
450        $newLefts = [];
451        $curNum = getPreviousNum(window["wds_currentCenterNum"][options.wds_number]);
452        for (var i = 1; i <= options.imagecount / 2 +1; ++i) {
453          $curNum = getPreviousNum($curNum);
454          $newLefts.push(getContainer($curNum));
455        }
456        $newRights = [];
457        $curNum = window["wds_currentCenterNum"][options.wds_number];
458        for (var i = 1; i <= options.imagecount / 2 + 1; ++i) {
459          $newRights.push(getContainer($curNum));
460          $curNum = getNextNum($curNum);
461        }
462          window["wds_currentCenterNum"][options.wds_number] = getPreviousNum(window["wds_currentCenterNum"][options.wds_number]);
463      }
464      // Animate the features into their new positions.
465      for (i = 0; i < $newLefts.length; i++) {
466        if (!direction) {
467          if ($newLefts.length - 2 > i) {
468            $newLefts[i].css("z-index", $newLefts.length - i + 3);
469          }
470        }
471        else {
472          $newLefts[i].css("z-index", $newLefts.length - i + 3);
473        }
474        animateFeature($newLefts[i], direction, onload);
475      }
476      $newCenter.css("z-index", Math.max($newLefts.length, $newRights.length) + 4);
477      animateFeature($newCenter, direction, onload);
478      for (i = 0; i < $newRights.length; i++) {
479        if (direction) {
480          if ($newRights.length - 2 > i) {
481            $newRights[i].css("z-index", $newRights.length - i + 3);
482          }
483        }
484        else {
485          $newRights[i].css("z-index", $newRights.length - i + 3);
486        }
487        animateFeature($newRights[i], direction, onload);
488      }
489    }
490
491    // This is used to relegate carousel movement throughout the plugin.
492    // It will only initiate a move if the carousel isn't currently moving.
493    // It will set the animation queue to the number of rotations given.
494    var initiateMove = function(direction, rotations, onload) {
495      if (typeof onload == "undefined") {
496        var onload = 0;
497      }
498      if (window["wds_currentlyMoving"][options.wds_number]  == false) {
499        var queue = rotations * pluginData.itemsToAnimate ;
500        pluginData.rotationsRemaining = queue ;
501        window["wds_set_filmstrip_class"](options.wds_number);
502        window["wds_set_dots_class"](options.wds_number);
503        move(direction, onload);
504      }
505    }
506
507    // Add event listener to all clicks within the features container
508    // This is done to disable any links that aren't within the center feature
509    $("a", pluginData.containerIDTag).on("click", function (event) {
510      // travel up to the container
511      var $parents = $(this).parentsUntil(pluginData.containerIDTag);
512      // now check each of the feature divs within it
513      $parents.each(function () {
514        var position = $(this).data('position');
515        // if there are more than just feature divs within the container, they will
516        // not have a position and it may come back as undefined. Throw these out
517        if (position != undefined) {
518          // if any of the links on a feature OTHER THAN the center feature were clicked,
519          // initiate a carousel move but then throw the link action away
520          if (position != 1) {
521            if (position == pluginData.totalFeatureCount) {
522              initiateMove(false,1);
523            } else if (position == 2) {
524              initiateMove(true, 1);
525            }
526            event.preventDefault();
527            return false;
528          // if the position WAS the center (i.e. 1), fire callback
529          } else {
530            options.clickedCenter($(this));
531          }
532        }
533      });
534    });
535
536    // Public functions.
537    this.initialize = function () {
538      jQuery("#wds_container2_" + options.wds_number).css({visibility: 'visible'});
539      jQuery(".wds_loading").hide();
540      // Call the preloader and pass in our callback, which is just a slew of function calls
541      // that should only be executed after the images have been loaded
542      preload(function () {
543        setupFeatureDimensions();
544
545        setupCarousel();
546        if (window["wds_currentlyMoving"][options.wds_number]  == false ) {
547          setupFeaturePositions();
548          initiateMove(true, 1, 1);
549        }
550      });
551      return this;
552    };
553
554    this.next = function() {
555      initiateMove(true, 1);
556    }
557    this.prev = function () {
558      initiateMove(false, 1);
559    }
560    this.shift = function (that) {
561      var position = $(that).data('position');
562      if (position == 1) {
563        return;
564      }
565      if (position > pluginData.totalFeatureCount / 2 + 1) {
566        initiateMove(false, pluginData.totalFeatureCount - position + 1);
567        options.carouselSpeed = 400;
568        options.animationEasing;
569      }
570      else {
571        initiateMove(true, position - 1);
572        options.carouselSpeed = 400;
573        options.animationEasing;
574      }
575    }
576    this.pause = function () {
577      options.autoPlay = false;
578      setTimer(true);
579    }
580    this.start = function () {
581      options.autoPlay = options.interval;
582      setTimer(false);
583    }
584    // Initialize the plugin.
585    return this.initialize();
586  };
587
588  $.fn.featureCarouselslider.defaults = {
589    // If zero, take original width and height of image
590    // If between 0 and 1, multiply by original width and height (acts as a percentage)
591    // If greater than one, use as a forced width/height for all of the images
592    largeFeatureWidth :   0,
593    largeFeatureHeight:		0,
594    containerWidth:       0,
595    containerHeight:      0,
596    fit_containerWidth:   0,
597    wds_number:           0,
598    // how much to pad the top of the carousel
599    topPadding:           20,
600    // spacing between the sides of the container
601    sidePadding:          50,
602    // the additional offset to pad the side features from the top of the carousel
603    smallFeatureOffset:		50,
604    //smallFeature parameters
605    smallFeaturePar:      0,
606    // indicates which feature to start the carousel at
607    startingFeature:      1,
608    // speed in milliseconds it takes to rotate the carousel
609    carouselSpeed:        400,
610    // time in milliseconds to set interval to autorotate the carousel
611    // set to zero to disable it, negative to go left
612    autoPlay:             4000,
613    carousel_degree: 50,
614    carousel_grayscale: 0,
615    carousel_transparency: 50,
616    interval:             true,
617    //imagecounts
618    imagecount:           7,
619    // with autoplay enabled, set this option to true to have the carousel pause rotating
620    // when a user hovers over any feature
621    pauseOnHover:         true,
622    // with autoplay enabled, set this option to completely stop the autorotate functionality
623    stopOnHover:          false,
624    // numbered blips can appear and be used to track the currently centered feature, as well as 
625    // allow the user to click a number to move to that feature. Set to false to not process these at all
626    // and true to process and display them//and true to process and display them
627    trackerIndividual:    true,
628    // a summation of the features can also be used to display an "x Of y" style of tracking
629    // this can be combined with the above option as well
630    trackerSummation:     true,
631    // Will only display this many features in the carousel
632    // set to zero to disable
633    displayCutoff:        0,
634    data:                 "",
635    // an easing can be specified for the animation of the carousel
636    animationEasing:      'swing',
637    // display captions below the image instead of on top
638    captionBelow:         false,
639    parf:                 0,
640    // callback function for when a feature has animated to the center
641    movedToCenter:        $.noop,
642    // callback function for when feature left center
643    leavingCenter:        $.noop,
644    // callback function for when center feature was clicked
645    clickedCenter:        $.noop
646  };
647})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.